19d69d9d2db3a4c42bfbf28086c0db04b284cfaf lrnassar Tue Apr 11 18:33:50 2023 -0700 Fixing the path to be relative in the thumbNail links page as the page and the images are always placed together. diff --git src/utils/qa/buildPublicSessionThumbnailsIndexPage.py src/utils/qa/buildPublicSessionThumbnailsIndexPage.py index e32d3c1..f4a8646 100755 --- src/utils/qa/buildPublicSessionThumbnailsIndexPage.py +++ src/utils/qa/buildPublicSessionThumbnailsIndexPage.py @@ -1,63 +1,63 @@ #!/usr/bin/python3 import os, requests, subprocess, sys, argparse def parseArgs(): """ Parse the command line arguments. """ parser = argparse.ArgumentParser(description = __doc__, formatter_class=argparse.RawDescriptionHelpFormatter) optional = parser._action_groups.pop() required = parser.add_argument_group('required arguments') required.add_argument ("saveDir", help = "Server from which to query the hubPublic table. Can be dev, hgwbeta, or rr.") if (len(sys.argv) == 1): parser.print_usage() print("\nFetches thumbnails and descriptions of public sessions from the RR and saves/creates\n" + \ "an html page that can be included in the homepage. Requires the directory in which to save\n" + \ "the pages to be declared.\n\n" + \ "Example run:\n" + \ " buildPublicSessionThumbnailsIndexPage /cluster/home/lrnassar/kent/src/hg/htdocs/\n") exit(0) parser._action_groups.append(optional) options = parser.parse_args() return options def queryHgPublicSessAndAssignOutputFileAndDir(saveDir): """Curl hgPublicSession and assign output file name/directory""" hgPublicSessionOutPut = requests.get('https://genome.ucsc.edu/cgi-bin/hgPublicSessions') outputFile = open(saveDir+'thumbNailLinks.html', 'w') return(hgPublicSessionOutPut, outputFile) def parseHgPublicSessPageAndWriteOut(hgPublicSessionOutPut, saveDir, outputFile): """Parse hgPublicSession curled page, extract thumbnail/url/description and write out to file""" sessionThumbNailsWritten = 1 for line in hgPublicSessionOutPut.text.split('\n'): if "trash" in line and sessionThumbNailsWritten < 4: sessionUrl = "https://genome.ucsc.edu/cgi-bin/"+line.split('"')[1].split("/")[2] trashDirUrl = line.split('"')[3] downloadThumbNailUrl = "https://genome.ucsc.edu/trash/hgPS/"+trashDirUrl.split("/")[3] currentImageFileName = 'sessionThumbNail'+str(sessionThumbNailsWritten)+'.png' img_data = requests.get(downloadThumbNailUrl).content with open(saveDir+currentImageFileName, 'wb') as handler: handler.write(img_data) os.chmod(saveDir+currentImageFileName, 0o664) if "Description:" in line and sessionThumbNailsWritten < 4: sessionThumbNailsWritten+=1 sessionDescription = line.split(' ')[1].split('
')[0] - outputFile.write('''\n\n\n''') outputFile.close() os.chmod(saveDir+'thumbNailLinks.html', 0o775) def main(): options = parseArgs() saveDir = options.saveDir hgPublicSessionOutPut, outputFile = queryHgPublicSessAndAssignOutputFileAndDir(saveDir) parseHgPublicSessPageAndWriteOut(hgPublicSessionOutPut, saveDir, outputFile) main()