7f57dde74b07fca259053625e2532935d7f617e0
max
  Fri Jan 4 02:47:24 2019 -0800
adding URL to botDelay message, refs #22716

diff --git src/hg/lib/botDelay.c src/hg/lib/botDelay.c
index 70c36ca..a43614a 100644
--- src/hg/lib/botDelay.c
+++ src/hg/lib/botDelay.c
@@ -32,45 +32,55 @@
 {
 time_t now = time(NULL);
 warn("There is a very high volume of traffic coming from your "
        "site (IP address %s) as of %s (California time).  So that other "
        "users get a fair share "
        "of our bandwidth, we are putting in a delay of %3.1f seconds "
        "before we service your request.  This delay will slowly "
        "decrease over a half hour as activity returns to normal.  This "
        "high volume of traffic is likely due to program-driven rather than "
        "interactive access, or the submission of queries on a large "
        "number of sequences.  If you are making large batch queries, "
        "please write to our genome@soe.ucsc.edu public mailing list "
        "and inquire about more efficient ways to access our data.  "
        "If you are sharing an IP address with someone who is submitting "
        "large batch queries, we apologize for the "
-       "inconvenience. Please contact genome-www@soe.ucsc.edu if "
-       "you think this delay is being imposed unfairly.", 
+       "inconvenience. "
+       "To use the genome browser functionality from a Unix command line, "
+       "please read <a href='http://genome.ucsc.edu/FAQ/FAQdownloads.html#download36'>our FAQ</a> on this topic. "
+       "For further help on how to access our data from a command line, "
+       "or if "
+       "you think this delay is being imposed unfairly, please contact genome@soe.ucsc.edu.", 
 	    ip, asctime(localtime(&now)), .001*millis);
 }
 
 void botTerminateMessage(char *ip, int millis)
 /* Print out message saying why you are terminated. */
 {
 time_t now = time(NULL);
 hUserAbort("There is an exceedingly high volume of traffic coming from your "
        "site (IP address %s) as of %s (California time).  It looks like "
        "a web robot is launching queries quickly, and not even waiting for "
        "the results of one query to finish before launching another query. "
        "/* We cannot service requests from your IP address under */ these "
-       "conditions.  (code %d)", ip, asctime(localtime(&now)), millis);
+       "conditions.  (code %d)"
+       "To use the genome browser functionality from a Unix command line, "
+       "please read <a href='http://genome.ucsc.edu/FAQ/FAQdownloads.html#download36'>our FAQ</a> on this topic. "
+       "For further help on how to access our data from a command line, "
+       "or if "
+       "you think this delay is being imposed unfairly, please contact genome@soe.ucsc.edu."
+       , ip, asctime(localtime(&now)), millis);
 }
 
 static char *getCookieUser()
 /* get user from hguid cookie */
 {
 char *user = NULL;
 char *centralCookie = hUserCookie();
 
 if (centralCookie)
     user = findCookieData(centralCookie);
 
 return user;
 }
 
 static char *getBotCheckString(char *ip, double fraction)