Advertisement
Brainsucker

Untitled

Jul 22nd, 2012
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.50 KB | None | 0 0
  1. import urllib
  2. import urllib2
  3. import cookielib
  4. import datetime
  5. import base64
  6. import os
  7. import re
  8.  
  9.  
  10. username = ''
  11. password = base64.decodestring('')
  12.  
  13.  
  14. class NotLoggedInError(Exception):
  15.     pass
  16.  
  17. class FileUploadLogin(object):
  18.     base_url = 'http://www.file-upload.net'
  19.     login_url = base_url + '/login.php'
  20.     member_url = base_url + '/member.php'
  21.     info_regex = re.compile(r'<td.+><a href=\"(?P<download_link>.+)\".+>(?P<upload_date>\d+\.\d+\.\d+ \d+\:\d+\:\d+)<.+>(?P<file_size>\d+\.\d+) MB<.+>(?P<downloaded>\d+)<')
  22.        
  23.     def __init__(self, username, userpassword):
  24.         self.username = username
  25.         self.userpassword = userpassword
  26.        
  27.         self.__logged_in = False
  28.        
  29.     def login(self):
  30.         cookie = cookielib.CookieJar()
  31.         self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
  32.        
  33.         login_data = {'name': self.username, 'pw': self.userpassword}
  34.         url_data = urllib.urlencode(login_data)
  35.         self.opener.open(self.login_url, url_data)
  36.        
  37.         self.__logged_in = True
  38.    
  39.     def getFileInfos(self):
  40.         if not self.__logged_in:
  41.             raise NotLoggedInError('Unable to get File Infos: Not Logged In')
  42.         resp = self.opener.open(self.member_url)
  43.         resp_result = resp.read()
  44.         return self.info_regex.findall(resp_result)
  45.  
  46.        
  47.     def uploadFile(self, filename):
  48.         if not self.__logged_in:
  49.             raise NotLoggedInError('Unable to Upload File: Not Logged In')
  50.  
  51.  
  52.  
  53.  
  54. login = FileUploadLogin(username, password)
  55. login.login()
  56. fileinfos = login.getFileInfos()
  57.  
  58. # url_request = urllib2.Request(login_url, url_data)
  59. # request_open = urllib2.urlopen(url_request)
  60. # request_result = request_open.read()
  61.  
  62. directory = os.getcwd()
  63. # logfile_path = os.path.join(directory, 'result.html')
  64. info_path = os.path.join(directory, 'infos.txt')
  65.  
  66. # logfile = open(logfile_path, 'wb')
  67. # logfile.write(resp_result)
  68. # logfile.close()
  69.  
  70. infofile = open(info_path, 'wb')
  71. infofile.write('Anzahl gefundener Dateien: %s\n\n' % len(fileinfos))
  72. filename_regex = re.compile(r'\/download-(?P<download_id>\d+)\/(?P<file_name>.+)\.html')
  73. total_size = 0
  74. total_downloaded = 0
  75. for f in fileinfos:
  76.     dl_link, upload_date, file_size, downloaded = f
  77.     upload_date_dt = datetime.datetime.strptime(upload_date, '%d.%m.%y %H:%M:%S')
  78.     file_size_float = float(file_size)
  79.     downloaded_int = int(downloaded)
  80.     total_downloaded += downloaded_int
  81.     total_size += file_size_float
  82.     fn = filename_regex.search(dl_link)
  83.    
  84. infofile.write('Downloads gesamt: %i\n' % total_downloaded)
  85. infofile.write('Gesamtgröße aller Dateien: %.2f MB' % total_size)
  86. infofile.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement