This commit is contained in:
rjc%netscape.com 1999-08-21 09:23:13 +00:00
Родитель 0a4a95a2ea
Коммит f616ca55cb
1 изменённых файлов: 39 добавлений и 0 удалений

Просмотреть файл

@ -113,6 +113,7 @@ private:
static nsIRDFResource *kNC_Site;
static nsIRDFResource *kNC_Engine;
static nsIRDFResource *kNC_HTML;
static nsIRDFResource *kNC_Banner;
char *mLine;
@ -286,6 +287,7 @@ nsIRDFResource *SearchDataSourceCallback::kNC_Site;
nsIRDFResource *SearchDataSourceCallback::kNC_Engine;
nsIRDFResource *SearchDataSourceCallback::kNC_loading;
nsIRDFResource *SearchDataSourceCallback::kNC_HTML;
nsIRDFResource *SearchDataSourceCallback::kNC_Banner;
static const char kEngineProtocol[] = "engine://";
static const char kSearchProtocol[] = "internetsearch:";
@ -1746,6 +1748,7 @@ SearchDataSourceCallback::SearchDataSourceCallback(nsIRDFDataSource *ds, nsIRDFR
gRDFService->GetResource(NC_NAMESPACE_URI "Engine", &kNC_Engine);
gRDFService->GetResource(NC_NAMESPACE_URI "loading", &kNC_loading);
gRDFService->GetResource(NC_NAMESPACE_URI "HTML", &kNC_HTML);
gRDFService->GetResource(NC_NAMESPACE_URI "Banner", &kNC_Banner);
}
}
@ -1776,6 +1779,7 @@ SearchDataSourceCallback::~SearchDataSourceCallback()
NS_RELEASE(kNC_Engine);
NS_RELEASE(kNC_loading);
NS_RELEASE(kNC_HTML);
NS_RELEASE(kNC_Banner);
}
}
@ -1922,6 +1926,7 @@ SearchDataSourceCallback::OnStopRequest(nsIURI* aURL, nsresult aStatus, const PR
nsAutoString resultListStartStr(""), resultListEndStr("");
nsAutoString resultItemStartStr(""), resultItemEndStr("");
nsAutoString relevanceStartStr(""), relevanceEndStr("");
nsAutoString bannerStartStr(""), bannerEndStr("");
SearchDataSource::GetData(data, "interpret", "resultListStart", resultListStartStr);
SearchDataSource::GetData(data, "interpret", "resultListEnd", resultListEndStr);
@ -1929,6 +1934,8 @@ SearchDataSourceCallback::OnStopRequest(nsIURI* aURL, nsresult aStatus, const PR
SearchDataSource::GetData(data, "interpret", "resultItemEnd", resultItemEndStr);
SearchDataSource::GetData(data, "interpret", "relevanceStart", relevanceStartStr);
SearchDataSource::GetData(data, "interpret", "relevanceEnd", relevanceEndStr);
SearchDataSource::GetData(data, "interpret", "bannerStart", bannerStartStr);
SearchDataSource::GetData(data, "interpret", "bannerEnd", bannerEndStr);
#if 0
char *cStr;
@ -1976,6 +1983,32 @@ SearchDataSourceCallback::OnStopRequest(nsIURI* aURL, nsresult aStatus, const PR
}
#endif
// look for banner once in entire document
nsCOMPtr<nsIRDFLiteral> bannerLiteral;
if ((bannerStartStr.Length() > 0) && (bannerEndStr.Length() > 0))
{
PRInt32 bannerStart = htmlResults.Find(bannerStartStr, PR_TRUE);
if (bannerStart >= 0)
{
nsAutoString htmlCopy(htmlResults);
htmlCopy.Cut(0, bannerStart + bannerStartStr.Length());
PRInt32 bannerEnd = htmlCopy.Find(bannerEndStr, PR_TRUE);
if (bannerEnd > 0)
{
htmlCopy.Truncate(bannerEnd);
if (htmlCopy.Length() > 0)
{
const PRUnichar *bannerUni = htmlCopy.GetUnicode();
if (bannerUni)
{
gRDFService->GetLiteral(bannerUni, getter_AddRefs(bannerLiteral));
}
}
}
}
}
if (resultListStartStr.Length() > 0)
{
PRInt32 resultListStart = htmlResults.Find(resultListStartStr, PR_TRUE);
@ -2156,6 +2189,12 @@ SearchDataSourceCallback::OnStopRequest(nsIURI* aURL, nsresult aStatus, const PR
}
}
}
// set banner (if we have one)
if (bannerLiteral)
{
mDataSource->Assert(res, kNC_Banner, bannerLiteral, PR_TRUE);
}
// look for Site (if it isn't already set)
nsCOMPtr<nsIRDFNode> oldSiteRes = nsnull;