Advertisement
Guest User

Untitled

a guest
Jun 27th, 2012
98
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.68 KB | None
  1. #!/usr/bin/env python
  2. #coding: utf-8
  3.  
  4. import re
  5. import sys
  6. import json
  7. import urllib2
  8.  
  9. # Depende de poster
  10. # http://atlee.ca/software/poster/index.html
  11. try:
  12.     import poster
  13. except ImportError:
  14.     print >>sys.stderr, "%s depende de poster <http://atlee.ca/software/poster/index.html>" % sys.argv[0]
  15.  
  16. # Expresión para encontrar la url donde enviar los datos
  17. upload_url = re.compile(r'<FORM enctype="multipart\/form-data" action="([^"]*)"')
  18.  
  19. # Expresión para encontrar los datos relevantes en la respuesta a la subida
  20. returned_data = re.compile(r"parent\.uploaddone\('(.*)'\);<\/script>")
  21.  
  22.  
  23. if __name__ == "__main__":
  24.     files = []
  25.     files = sys.argv[1:]
  26.  
  27.     if len(files) > 0:
  28.         poster.streaminghttp.register_openers()
  29.  
  30.         # Por cada archivo (para poder ir obteniendo las url sobre la marcha)
  31.         for f in files:
  32.             # Se descarga la página
  33.             r = urllib2.urlopen("http://www.multiupload.com/")
  34.             s = r.read()
  35.  
  36.             # Y se encuentra la url
  37.             url = upload_url.search(s).group(1)
  38.  
  39.             # Preparamos la peticion
  40.             d = {f: open(f, "rb")}
  41.             for s in [16, 7, 9, 17, 6, 15, 14, 18]:
  42.                 d["service_%s" % s] = "1"
  43.  
  44.             print d
  45.             datagen, headers = poster.encode.multipart_encode(d)
  46.  
  47.             request = urllib2.Request(url, datagen, headers)
  48.  
  49.             s = urllib2.urlopen(request).read()
  50.             data = json.loads(returned_data.search(s).group(1))[0]
  51.  
  52.             print "%s -- http://www.multiupload.com/%s" % (data['filename'], data['downloadid'])
  53.  
  54.     else:
  55.         print >>sys.stderr, "%s <archivo> [<archivo> [...]]" % sys.argv[0]
Advertisement
RAW Paste Data Copied
Advertisement