39be885d6a194b49917e1d01b5aee2f9db114805 hiram Mon Jun 21 13:13:22 2021 -0700 replacing hgBotDelayFrac with earlyBotCheck refs #23217 diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index af7b5a3..37346ff 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -47,30 +47,35 @@ #include "microarray.h" #include "trackVersion.h" #include "gtexUi.h" #include "genbank.h" #include "botDelay.h" #include "customComposite.h" #include "hicUi.h" #ifdef USE_HAL #include "halBlockViz.h" #endif #define MAIN_FORM "mainForm" #define WIGGLE_HELP_PAGE "../goldenPath/help/hgWiggleTrackHelp.html" +/* for earlyBotCheck() function at the beginning of main() */ +#define delayFraction 0.25 /* standard penalty is 1.0 for most CGIs */ + /* this one is 0.25 */ +boolean issueBotWarning = FALSE; + struct cart *cart = NULL; /* Cookie cart with UI settings */ char *database = NULL; /* Current database. */ char *chromosome = NULL; /* Chromosome. */ struct hash *trackHash = NULL; /* Hash of all tracks in database. */ void tfbsConsSitesUi(struct trackDb *tdb) { float tfbsConsSitesCutoff = sqlFloat(cartUsualString(cart,TFBS_SITES_CUTOFF,TFBS_SITES_CUTOFF_DEFAULT)); printf("<BR><B>Z score cutoff (default %s, minimum %s): </B>", TFBS_SITES_CUTOFF_DEFAULT, TFBS_SITES_CUTOFF_MINIMUM); cgiMakeDoubleVar(TFBS_SITES_CUTOFF,tfbsConsSitesCutoff,5); } void stsMapUi(struct trackDb *tdb) @@ -3564,31 +3569,39 @@ /* Create a trackDb entry for the oligo matcher pseudo-track. */ { return trackDbForPseudoTrack(OLIGO_MATCH_TRACK_NAME, OLIGO_MATCH_TRACK_LABEL, OLIGO_MATCH_TRACK_LONGLABEL, tvHide, TRUE); } void doMiddle(struct cart *theCart) /* Write body of web page. */ { struct trackDb *tdbList = NULL; struct trackDb *tdb = NULL; char *track; struct customTrack *ct = NULL, *ctList = NULL; char *ignored; -hgBotDelayFrac(0.25); +/* used to have hgBotDelayFrac(0.25) here, replaced with earlyBotCheck() + * at the beginning of main() to output message here if in delay time + * 2021-06-21 - Hiram + */ +if (issueBotWarning) + { + char *ip = getenv("REMOTE_ADDR"); + botDelayMessage(ip, botDelayMillis); + } cart = theCart; track = cartString(cart, "g"); getDbAndGenome(cart, &database, &ignored, NULL); initGenbankTableNames(database); chromosome = cartUsualString(cart, "c", hDefaultChrom(database)); trackHash = trackHashMakeWithComposites(database,chromosome,&tdbList,FALSE); if (sameWord(track, WIKI_TRACK_TABLE)) tdb = trackDbForWikiTrack(); else if (sameWord(track, RULER_TRACK_NAME)) /* special handling -- it's not a full-fledged track */ tdb = trackDbForRuler(); else if (sameWord(track, OLIGO_MATCH_TRACK_NAME)) tdb = trackDbForOligoMatch(); @@ -3651,20 +3664,22 @@ cartWebStart(cart, database, "%s %s", title, titleEnd); htmlDoEscape(); trackUi(tdb, tdbList, ct, FALSE); printf("<BR>\n"); jsonPrintGlobals(); webEnd(); } } char *excludeVars[] = { "submit", "Submit", "g", NULL, "ajax", NULL,}; int main(int argc, char *argv[]) /* Process command line. */ { long enteredMainTime = clock1000(); +/* 0, 0, == use default 10 second for warning, 20 second for immediate exit */ +issueBotWarning = earlyBotCheck(enteredMainTime, "hgGene", delayFraction, 0, 0, "html"); cgiSpoof(&argc, argv); cartEmptyShell(doMiddle, hUserCookie(), excludeVars, NULL); cgiExitTime("hgTrackUi", enteredMainTime); return 0; }