#!/usr/bin/python # -*- coding: UTF-8 -*- # enable debugging #import cgitb #cgitb.enable() import os, sys sys.stderr = sys.stdout print 'Status: 301 Moved Permanently' print 'Location: /yifeibot/downloaders/gallica.py' print exit() print "Content-Type: text/html; charset=utf-8" print print """ exemple d'URL à fournir: http://gallica.bnf.fr/proxy?method=R&ark=btv1b55005208r.f1&l=6&r=4864,6656,256,256

Pages:
""" sys.stdout.flush() import cgitb #cgitb.enable() def die(message=None): if message: print message exit() import cgi try: url = cgi.FieldStorage()["url"].value except: try: url = sys.argv[1] except: url = "" if not "http://" in url: die("Lien non valide (http://)!
") if not "gallica.bnf.fr/" in url: die("Site Gallica seulement (bnf.gallica.fr)!
") if not "proxy?method=R&ark=" in url: die("Lien invalide (proxy?method=R&ark=)!
") filename = url.split("=")[2].split(".")[0] try: pages = cgi.FieldStorage()["pages"].value except: try: pages = sys.argv[2] except: pages = "1" pages = max(int(pages), 1) filename = "%s.f%i" % (filename, pages) jobname = "g-" + filename[::-1] prefix = "/data/project/yifeibot/public_html/tmp/" #prefix = "/tmp/" if os.path.isfile(prefix + filename + ".jpg"): print "Done!" print '' die() import grid for job in grid.qstat(): if len(job["name"]) > 5 and jobname[:len(job["name"])] == job["name"]: die("Job already running, please wait... If this is taking too long, please contact commons:User:Zhuyifei1999") grid.submit(["python", "/data/project/yifeibot/public_html/gallica.core.py", "'%s'" % url, str(pages)], N=jobname, mem="2g") die("Job submitted, please wait...")