9440548e67d816a02d14939e7114ab57a12f6965 braney Sat Apr 12 15:35:48 2014 -0700 first cut at writing out search terms from public hubs #11633 diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c index 930ef24..aa9cd1f 100644 --- src/hg/lib/hubConnect.c +++ src/hg/lib/hubConnect.c @@ -310,72 +310,40 @@ { /* save away the next pointer becuase we may detach this node and * add it to its supertrack parent */ next = tdb->next; if (tdb->parent != NULL && sameString(trackName, tdb->parent->track)) { /* found a supertrack with the right name, add this child */ p = tdb->parent; slAddHead(&p->subtracks, tdb); } } return p; } -static void addOneDescription(char *trackDbFile, struct trackDb *tdb) -/* Fetch tdb->track's html description and store in tdb->html. */ -{ -/* html setting should always be set because we set it at load time */ -char *htmlName = trackDbSetting(tdb, "html"); -if (htmlName == NULL) - return; - -char *simpleName = hubConnectSkipHubPrefix(htmlName); -char *url = trackHubRelativeUrl(trackDbFile, simpleName); -char buffer[10*1024]; -safef(buffer, sizeof buffer, "%s.html", url); -tdb->html = netReadTextFileIfExists(buffer); -freez(&url); -} - -static void addDescription(char *trackDbFile, struct trackDb *tdb) -/* Fetch tdb->track's html description (or nearest ancestor's non-empty description) - * and store in tdb->html. */ -{ -addOneDescription(trackDbFile, tdb); -if (isEmpty(tdb->html)) - { - struct trackDb *parent; - for (parent = tdb->parent; isEmpty(tdb->html) && parent != NULL; parent = parent->parent) - { - addOneDescription(trackDbFile, parent); - if (isNotEmpty(parent->html)) - tdb->html = cloneString(parent->html); - } - } -} void hubConnectAddDescription(char *database, struct trackDb *tdb) /* Fetch tdb->track's html description (or nearest ancestor's non-empty description) * and store in tdb->html. */ { unsigned hubId = hubIdFromTrackName(tdb->track); struct trackHub *hub = trackHubFromId(hubId); struct trackHubGenome *hubGenome = trackHubFindGenome(hub, database); trackHubPolishTrackNames(hub, tdb); -addDescription(hubGenome->trackDbFile, tdb); +trackHubAddDescription(hubGenome->trackDbFile, tdb); } struct trackDb *hubConnectAddHubForTrackAndFindTdb( char *database, char *trackName, struct trackDb **pTdbList, struct hash *trackHash) /* Go find hub for trackName (which will begin with hub_), and load the tracks * for it, appending to end of list and adding to trackHash. Return the * trackDb associated with trackName. This will also fill in the html fields, * but just for that track and it's parents. */ { unsigned hubId = hubIdFromTrackName(trackName); struct trackHub *hub = trackHubFromId(hubId); struct trackHubGenome *hubGenome = trackHubFindGenome(hub, database); struct trackDb *tdbList = trackHubTracksForGenome(hub, hubGenome); tdbList = trackDbLinkUpGenerations(tdbList); tdbList = trackDbPolishAfterLinkup(tdbList, database); @@ -385,31 +353,31 @@ rAddTrackListToHash(trackHash, tdbList, NULL, FALSE); if (pTdbList != NULL) *pTdbList = slCat(*pTdbList, tdbList); struct trackDb *tdb = hashFindVal(trackHash, fixTrackName); if (tdb == NULL) // superTracks aren't in the hash... look in tdbList tdb = findSuperTrack(tdbList, fixTrackName); if (tdb == NULL) errAbort("Can't find track %s in %s", fixTrackName, hub->url); /* Add html for track and parents. */ /* Note: this does NOT add the HTML for supertrack kids */ struct trackDb *parent; for (parent = tdb; parent != NULL; parent = parent->parent) - addDescription(hubGenome->trackDbFile, parent); + trackHubAddDescription(hubGenome->trackDbFile, parent); trackHubClose(&hub); return tdb; } static char *getDbList(struct trackHub *tHub, int *pCount) /* calculate dbList for hubStatus table from trackHub */ { struct hashEl *hel; struct dyString *dy = newDyString(1024); struct hashCookie cookie = hashFirst(tHub->genomeHash); int dbCount = 0; while ((hel = hashNext(&cookie)) != NULL) { dbCount++;