open directory related stuff

git-svn-id: svn://10.0.0.236/trunk@19158 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
guha%netscape.com
1999-02-01 16:32:37 +00:00
parent 97751ac24a
commit 2ec8c99af4
4 changed files with 54 additions and 43 deletions

View File

@@ -26,6 +26,18 @@ void describeItem (WriteClientProc callBack, void* obj, RDF_Resource u) ;
void describeItemSimple (WriteClientProc callBack, void* obj, RDF_Resource u) ;
extern int startsWith(const char* prefix, const char* pattern);
RDF_Resource gNarrow;
RDF_Resource gLink;
RDF_Resource gName;
RDF_Resource gTopic;
RDF_Resource gDesc;
RDF_Resource gEditor;
RDF_Resource gNewsGroup;
char* gTemplate;
int gInited = 0;
#define MAX_TEMPLATE_SIZE 20000
RDF_Resource
getNodeFromQuery (char* query) {
RDF_Resource ans;
@@ -49,9 +61,9 @@ void
listParents(WriteClientProc callBack, void* obj, RDF_Resource node, int depth) {
RDF_Resource narrow = RDF_GetResource("narrow", 1);
RDF_Resource parent = RDF_OnePropSource(0, node, narrow);
RDF_Resource name = RDF_GetResource("name", 1);
char* id = RDF_ResourceID(node);
char* nm = (char*) RDF_OnePropValue(0, node, name, RDF_STRING_TYPE);
char* nm = (char*) RDF_OnePropValue(0, node, gName, RDF_STRING_TYPE);
char* cnm = strrchr(id, '/');
char buff[500];
if (!nm || strchr(nm, '/')) nm = (cnm ? cnm + 1 : id);
@@ -72,17 +84,6 @@ cookiePropValue (char* cookie, char* prop) {
}
}
RDF_Resource gNarrow;
RDF_Resource gLink;
RDF_Resource gName;
RDF_Resource gTopic;
RDF_Resource gDesc;
RDF_Resource gEditor;
RDF_Resource gNewsGroup;
char* gTemplate;
int gInited = 0;
#define MAX_TEMPLATE_SIZE 20000
void
Init () {
if (!gInited) {
@@ -92,9 +93,9 @@ Init () {
gInited = 1;
gNarrow = RDF_GetResource("narrow", 1);
gLink = RDF_GetResource("link", 1);
gName = RDF_GetResource("name", 1);
gName = RDF_GetResource("Title", 1);
gTopic = RDF_GetResource("Topic", 1);
gDesc = RDF_GetResource("description", 1);
gDesc = RDF_GetResource("Description", 1);
gEditor = RDF_GetResource("editor", 1);
gNewsGroup = RDF_GetResource("newsGroup", 1);
gTemplate = (char*) malloc(MAX_TEMPLATE_SIZE+1);
@@ -147,10 +148,10 @@ listSubTopics (WriteClientProc callBack, void* obj, RDF_Resource node, char* coo
if (w != 0) (*callBack)(obj, "</td>");
(*callBack)(obj, "</UL>\n<TD width=\"40%\" valign=top><UL><FONT Face=\"sans-serif, Arial, Helvetica\">\n<UL>\n");
}
u = subTopicList[w];
u = subTopicList[n-w-1];
id = RDF_ResourceID(u);
if (p == gNarrow) {
sprintf(buff, "<li><a href=\"OpenDir?browse=%s\">%s</a>\n", id, resourceName(u));
sprintf(buff, "<li><a href=\"OpenDir?browse=%s\"><B>%s</B></a>\n", id, resourceName(u));
} else {
char* des = (char*) RDF_OnePropValue(0, u, gDesc, RDF_STRING_TYPE);
sprintf(buff, "<li><a href=\"%s\">%s</a> %s %s\n", id, resourceName(u),
@@ -182,8 +183,13 @@ AnswerOpenDirQuery (WriteClientProc callBack, void* obj, char *query, char* cook
listSubTopics(callBack, obj, node, cookie, gNarrow);
} else if (startsWith("&TopicItems;", pbegin)) {
listSubTopics(callBack, obj, node, cookie, gLink);
}
} else if (startsWith("&TopicAddURL;", pbegin)) {
(*callBack)(obj, "http://directory.mozilla.org/cgi-bin/add.cgi?where=");
(*callBack)(obj, RDF_ResourceID(node));
} else if (startsWith("&TopicBecomeEditor;", pbegin)) {
(*callBack)(obj, "http://directory.mozilla.org/cgi-bin/apply.cgi?where=");
(*callBack)(obj, RDF_ResourceID(node));
}
begin = pbegin + (strchr(pbegin, ';') - pbegin) + 1;
}
@@ -195,7 +201,7 @@ AnswerOpenDirQuery (WriteClientProc callBack, void* obj, char *query, char* cook
void describeCategory (WriteClientProc callBack, void* obj, RDF_Resource u) {
char buff[1000];
sprintf(buff, "<li><B><a href=\"OpenDir?browse=%s\">%s</a></B>", RDF_ResourceID(u),
RDF_ResourceID(u));
RDF_ResourceID(u));
(*callBack)(obj, buff);
}
@@ -219,9 +225,9 @@ stToProp (char c) {
if (!c || (c == 'a')) {
return 0;
} else if (c == 'n') {
return RDF_GetResource("name", 1);
return gName;
} else if (c == 'd') {
return RDF_GetResource("description", 1);
return gDesc;
} else return 0;
}
@@ -229,7 +235,6 @@ void
AnswerSearchQuery (WriteClientProc callBack, void* obj, char *query, char* cookie) {
char st = cookiePropValue(cookie, "searchTarget");
RDF_Cursor c = RDFGS_Search(0, query, stToProp(st));
RDF_Resource name = RDF_GetResource("name", 1);
RDF_Resource topic = RDF_GetResource("Topic", 1);
RDF_Resource type = RDF_GetResource("type", 1);
RDF_Resource u ;
@@ -286,8 +291,7 @@ AnswerSearchQuery (WriteClientProc callBack, void* obj, char *query, char* cooki
void
describeItemSimple (WriteClientProc callBack, void* obj, RDF_Resource u) {
char buff[5000];
RDF_Resource name = RDF_GetResource("name", 1);
char* nm = (char*) RDF_OnePropValue(0, u, name, RDF_STRING_TYPE);
char* nm = (char*) RDF_OnePropValue(0, u, gName, RDF_STRING_TYPE);
char* id = RDF_ResourceID(u);
sprintf(buff, "<li><a href=\"%s\">%s</a>", id, (nm ? nm : id));
(*callBack)(obj, buff);
@@ -296,11 +300,9 @@ describeItemSimple (WriteClientProc callBack, void* obj, RDF_Resource u) {
void
describeItem (WriteClientProc callBack, void* obj, RDF_Resource u) {
char buff[5000];
RDF_Resource name = RDF_GetResource("name", 1);
RDF_Resource desc = RDF_GetResource("description", 1);
char* nm = (char*) RDF_OnePropValue(0, u, name, RDF_STRING_TYPE);
char* nm = (char*) RDF_OnePropValue(0, u, gName, RDF_STRING_TYPE);
char* id = RDF_ResourceID(u);
char* des = (char*) RDF_OnePropValue(0, u, desc, RDF_STRING_TYPE);
char* des = (char*) RDF_OnePropValue(0, u, gDesc, RDF_STRING_TYPE);
sprintf(buff, "<li><a href=\"%s\">%s</a> %s %s", id, (nm ? nm : id),
(des ? " : " : ""), (des ? des : ""));
(*callBack)(obj, buff);

View File

@@ -266,17 +266,20 @@ parseNextRDFXMLBlobInt(RDFT f, char* blob, int size) {
if ((c == '<') || (c == '>')) {
last = n;
if (c == '<') {
f->holdOver[0] = '<';
f->holdOver[1] = '\0';
f->holdOver[0] = '<';
f->holdOver[1] = '\0';
}
if (somethingseenp == 1) {
parseNextRDFToken(f, f->line);
}
parseNextRDFToken(f, f->line);
}
} else if (size > last) {
memcpy(f->holdOver, f->line, m);
f->holdOver[m+1] = '\0';
f->holdOver[m] = '\0';
}
} else if (c == '<') f->holdOver[0] = '<';
} else if (c == '<') {
f->holdOver[0] = '<';
f->holdOver[1] = '\0';
}
}
return(1);
}
@@ -287,7 +290,10 @@ getAttributeValue (char** attlist, char* elName)
size_t n = 0;
if (!attlist) return NULL;
while ((n < 2*MAX_ATTRIBUTES) && (*(attlist + n) != NULL)) {
if (strcmp(*(attlist + n), elName) == 0) return *(attlist + n + 1);
char* attname = *(attlist + n);
char* base = strchr(attname, ':');
if (base) attname = base + 1;
if (strcmp(attname, elName) == 0) return *(attlist + n + 1);
n = n + 2;
}
return NULL;
@@ -320,9 +326,10 @@ addElementProps (char** attlist, char* elementName, RDFT f, RDF_Resource obj)
while (count < 2*MAX_ATTRIBUTES) {
char* attName = attlist[count++];
char* attValue = attlist[count++];
char* baseName = strchr(attName, ':');
char* baseName;
if ((attName == NULL) || (attValue == NULL)) break;
if baseName attName = baseName + 1;
baseName = strchr(attName, ':');
if (baseName) attName = baseName + 1;
if (startsWith("xmlns", attName)) {
/* addNameSpace(attName, attValue, f); */
} else if (!stringEquals(attName, "resource") &&
@@ -368,7 +375,7 @@ parseNextRDFToken (RDFT f, char* token)
f->status = (f->status == EXPECTING_OBJECT ? EXPECTING_PROPERTY : EXPECTING_OBJECT);
return 1;
} else if ((f->status == 0) && (startsWith("<RDF:RDF", token) ||
startsWith("<RDF>", token))) {
startsWith("<RDF", token))) {
f->status = EXPECTING_OBJECT;
return 1;
} else {
@@ -414,6 +421,8 @@ parseNextRDFToken (RDFT f, char* token)
obj = getResource(url, 1);
addElementProps (attlist, elementName, f, obj) ;
remoteStoreAdd(f, f->stack[f->depth-1], eln, obj, RDF_RESOURCE_TYPE, 1);
/* printf("%s %s %s\n", RDF_ResourceID(f->stack[f->depth-1]),
RDF_ResourceID(eln), url); */
}
if (!emptyElementp) {
f->stack[f->depth++] = getResource(elementName, 1);
@@ -442,8 +451,6 @@ tokenizeElement (char* attr, char** attlist, char** elementName)
c = attr[n++];
}
*elementName = &attr[n-1];
base = strchr(*elementName, ':');
if (base) *elementName = base+1;
while (n < s) {
if (wsCharp(c)) break;
c = attr[n++];
@@ -480,5 +487,7 @@ tokenizeElement (char* attr, char** attlist, char** elementName)
}
inAttrNamep = (inAttrNamep ? 0 : 1);
}
base = strchr(*elementName, ':');
if (base) *elementName = base+1;
return 1;
}

View File

@@ -81,7 +81,7 @@ remoteStoreAdd (RDFT mcf, RDF_Resource u, RDF_Resource s, void* v,
newAs->invNext = iu->rarg2;
iu->rarg2 = newAs;
}
if (type == RDF_STRING_TYPE) RDFGS_AddSearchIndex(mcf, (char*) v, s, u);
/* if (type == RDF_STRING_TYPE) RDFGS_AddSearchIndex(mcf, (char*) v, s, u); */
return newAs;
}

View File

@@ -89,7 +89,7 @@ SRC="http://adforce.imgis.com/?adiframe|2.0|9|20894|1|1|ADFORCE;">
<BR><A href=&TopicAddURL;>Add URL</A> <B>-</B>
<A href=&TopicBecomeEditor;>Become an Editor</A>
</TD>
<TD><DIV align=right><TABLE bgcolor="#f0f0f0"><TR><TD><TABLE><TR><TD valign=top><FONT Face="sans-serif, Arial, Helvetica"><SMALL>Category editor:</SMALL></TD>&TopicEditors;</TR></TABLE></TD></TR></TABLE></DIV>
<TD><DIV align=right><TABLE bgcolor="#f0f0f0"><TR><TD><TABLE><TR><TD valign=top><FONT Face="sans-serif, Arial, Helvetica"><SMALL>Category editors:</SMALL></TD>&TopicEditors;</TR></TABLE></TD></TR></TABLE></DIV>
</TD></TR></TABLE>
<HR Width=600 Noshade Size=1>
<CENTER><FONT Face="sans-serif, Arial, Helvetica"></CENTER>