home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 May / maximum-cd-2010-05.iso / DiscContents / boxee-0.9.20.10711.exe / scripts / OpenSubtitles / resources / lib / globals.pyo (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-12-06  |  8.4 KB  |  275 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. from xmlrpclib import Server, Transport
  5. from httplib import HTTP
  6. import locale
  7. import os
  8. from urlparse import urlparse
  9. from types import UnicodeType
  10. import re
  11. import struct
  12. import base64
  13. import pickle
  14. import urllib
  15. defaultavi = ''
  16. disable_osdb = True
  17. debugmode = True
  18. use_threads = True
  19. check_update = True
  20. doing_login = False
  21. videos_ext = [
  22.     'avi',
  23.     'mpg',
  24.     'mpeg',
  25.     'wmv',
  26.     'divx',
  27.     'mkv',
  28.     'ogm',
  29.     'asf',
  30.     'mov',
  31.     'rm',
  32.     'vob',
  33.     'dv',
  34.     '3ivx']
  35. subs_ext = [
  36.     'srt',
  37.     'sub',
  38.     'txt',
  39.     'ssa']
  40. videos_wildcards = 'All videos|*.avi;*.mpg;*.mpeg;*.wmv;*.asf;*.divx;*.mov;*.m2p;*.moov;*.omf;*.qt;*.rm;*.vob;*.dat;*.dv;*.3ivx;*.mkv;*.ogm|ALL files (*.*)|*.*'
  41. LOCAL_ENCODING = locale.getpreferredencoding()
  42. if not LOCAL_ENCODING or LOCAL_ENCODING == 'ANSI_X3.4-1968':
  43.     LOCAL_ENCODING = 'latin1'
  44.  
  45. version = '1.2.9'
  46. date_released = '16-04-07'
  47. update_address = 'http://subdownloader.sourceforge.net/subdownloader.update'
  48. preferences_list = { }
  49. sublanguages = { }
  50. update_list = { }
  51. cookiefile = 'conf/.cookie'
  52. sourcefolder = ''
  53. app_parameteres = ''
  54. param_function = ''
  55. param_files = []
  56. osdb_token = ''
  57. logged_as = ''
  58. user_has_uploaded = False
  59. xmlrpc_server = ''
  60. proxy_address = None
  61. text_log = False
  62. subdownloader_pointer = None
  63.  
  64. class GtkTransport(Transport):
  65.     user_agent = 'Subdownloader ' + version
  66.  
  67.  
  68. class ProxiedTransport(Transport):
  69.     user_agent = 'Subdownloader ' + version
  70.     
  71.     def set_proxy(self, proxy):
  72.         self.proxy = proxy
  73.  
  74.     
  75.     def make_connection(self, host):
  76.         self.realhost = host
  77.         h = HTTP(self.proxy)
  78.         return h
  79.  
  80.     
  81.     def send_request(self, connection, handler, request_body):
  82.         connection.putrequest('POST', 'http://%s%s' % (self.realhost, handler))
  83.  
  84.     
  85.     def send_host(self, connection, host):
  86.         connection.putheader('Host', self.realhost)
  87.  
  88.  
  89.  
  90. def MakeOSLink(pagelink, sid = True):
  91.     if preferences_list['server_osdb'].endswith('/'):
  92.         serverosdb = preferences_list['server_osdb'][:-1]
  93.     else:
  94.         serverosdb = preferences_list['server_osdb']
  95.     parsed = urlparse(serverosdb)
  96.     internallink = ''
  97.     sidlink = ''
  98.     if pagelink:
  99.         internallink = '/' + pagelink
  100.     
  101.     if sid and logged_as:
  102.         sidlink = '/sid-' + osdb_token
  103.     
  104.     link = parsed[0] + '://' + parsed[1] + internallink + sidlink
  105.     return link
  106.  
  107.  
  108. def CleanString(s):
  109.     garbage = [
  110.         '_',
  111.         ' ',
  112.         '.',
  113.         ',',
  114.         '(',
  115.         ')']
  116.     for char in garbage:
  117.         s = s.replace(char, '')
  118.     
  119.     return s
  120.  
  121.  
  122. def CleanTagsFile(texto):
  123.     p = re.compile('<.*?>')
  124.     return p.sub('', texto)
  125.  
  126.  
  127. def DeleteExtension(file):
  128.     lastpointposition = file.rfind('.')
  129.     return os.path.basename(file[:lastpointposition])
  130.  
  131.  
  132. def GetFpsAndTimeMs(path):
  133.     fps = ''
  134.     time_ms = ''
  135.     
  136.     try:
  137.         avi_info = parse(path)
  138.         if avi_info.video[0].fps > 0:
  139.             fps = avi_info.video[0].fps
  140.         
  141.         if avi_info.length > 0:
  142.             time_ms = avi_info.length * 1000
  143.         
  144.         return (fps, time_ms)
  145.     except:
  146.         return (fps, time_ms)
  147.  
  148.  
  149.  
  150. def Log(message):
  151.     string_message = str(message)
  152.     subdownloader_pointer.log_memory.append(string_message)
  153.     if text_log:
  154.         
  155.         try:
  156.             for line in subdownloader_pointer.log_memory:
  157.                 text_log.AppendText('\n' + line)
  158.         except:
  159.             pass
  160.  
  161.         subdownloader_pointer.log_memory = []
  162.     
  163.  
  164.  
  165. def hashFile(name):
  166.     
  167.     try:
  168.         longlongformat = 'LL'
  169.         bytesize = struct.calcsize(longlongformat)
  170.         f = open(name, 'rb')
  171.         filesize = os.path.getsize(name)
  172.         hash = filesize
  173.         if filesize < 65536 * 2:
  174.             return 'SizeError'
  175.         
  176.         for x in range(65536 / bytesize):
  177.             buffer = f.read(bytesize)
  178.             (l2, l1) = struct.unpack(longlongformat, buffer)
  179.             l_value = long(l1) << 32 | long(l2)
  180.             hash += l_value
  181.             hash = hash & 0xFFFFFFFFFFFFFFFFL
  182.         
  183.         f.seek(max(0, filesize - 65536), 0)
  184.         for x in range(65536 / bytesize):
  185.             buffer = f.read(bytesize)
  186.             (l2, l1) = struct.unpack(longlongformat, buffer)
  187.             l_value = long(l1) << 32 | long(l2)
  188.             hash += l_value
  189.             hash = hash & 0xFFFFFFFFFFFFFFFFL
  190.         
  191.         f.close()
  192.         returnedhash = '%016x' % hash
  193.         return returnedhash
  194.     except IOError:
  195.         return 'IOError'
  196.  
  197.  
  198.  
  199. def EncodeLocale(phrase):
  200.     if not isinstance(phrase, UnicodeType):
  201.         phrase = unicode(phrase.decode('latin1', 'ignore'))
  202.     
  203.     return phrase
  204.  
  205.  
  206. def ConvertLang_xxx2xx(str):
  207.     return sublanguages['languages_id_xxx'][str][0]
  208.  
  209.  
  210. def ConvertLang_xxx2name(str):
  211.     return sublanguages['languages_id_xxx'][str][1]
  212.  
  213.  
  214. def ConvertLang_xx2name(str):
  215.     return sublanguages['languages_id_xxx'][sublanguages['languages_xx2xxx'][str]][1]
  216.  
  217.  
  218. def ConvertLang_xx2xxx(str):
  219.     return sublanguages['languages_xx2xxx'][str]
  220.  
  221.  
  222. def ConvertLang_name2xxx(str):
  223.     return sublanguages['languages_name2xxx'][str]
  224.  
  225.  
  226. def ConvertLang_name2xx(str):
  227.     return sublanguages['languages_id_xxx'][sublanguages['languages_name2xxx'][str]][0]
  228.  
  229.  
  230. def DownloadNewTranslations(lang_app_xx):
  231.     
  232.     try:
  233.         mo_translation_coded = xmlrpc_server.GetTranslation(osdb_token, lang_app_xx, 'mo')['data']
  234.         po_translation_coded = xmlrpc_server.GetTranslation(osdb_token, lang_app_xx, 'po')['data']
  235.         po_translation = base64.decodestring(po_translation_coded)
  236.         mo_translation = base64.decodestring(mo_translation_coded)
  237.         if not os.path.exists(os.path.join(sourcefolder, 'locale', lang_app_xx)):
  238.             os.mkdir(os.path.join(sourcefolder, 'locale', lang_app_xx))
  239.             os.mkdir(os.path.join(sourcefolder, 'locale', lang_app_xx, 'LC_MESSAGES'))
  240.         
  241.         mofile = file(os.path.join(sourcefolder, 'locale', lang_app_xx, 'LC_MESSAGES', 'subdownloader.mo'), 'wb')
  242.         mofile.write(mo_translation)
  243.         mofile.close()
  244.         pofile = file(os.path.join(sourcefolder, 'locale', lang_app_xx, 'LC_MESSAGES', 'subdownloader.po'), 'wb')
  245.         pofile.write(po_translation)
  246.         pofile.close()
  247.         return True
  248.     except:
  249.         return False
  250.  
  251.  
  252.  
  253. def getAddress(file):
  254.     filename = EncodeLocale(os.path.basename(file))
  255.     filenameurl = filename
  256.     if not os.path.exists(file):
  257.         return 'NotFoundError'
  258.     else:
  259.         hash = hashFile(file)
  260.         if hash == 'IOError' or hash == 'SizeError':
  261.             return hash
  262.         
  263.         videofilesize = os.path.getsize(file)
  264.         linkhtml_index = 'search/moviebytesize-' + str(videofilesize) + '/moviehash-' + hash
  265.         videofilename = filename
  266.         pathvideofilename = file
  267.         videohash = hash
  268.         return {
  269.             'hash': hash,
  270.             'filename': filename,
  271.             'pathvideofilename': file,
  272.             'filesize': str(videofilesize),
  273.             'linkhtml_index': linkhtml_index }
  274.  
  275.