Ignore:
Timestamp:
11/19/16 14:22:57 (5 years ago)
Author:
obi
Message:

fix flashx.py

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/mediathek/localhoster/flashx.py

    r39076 r39352  
    55from lib.net import Net
    66import lib.common as common
     7import lib.fx_gmu as fx_gmu
     8import lib.fx_gmu as fx_gmu
     9
     10FX_SOURCE = 'https://offshoregit.com/tvaresolvers/fx_gmu.py'
     11FX_PATH = ''
    712
    813class FlashxResolver(object):
     
    2631            return False
    2732
     33    def get_fx_code(self):
     34        try:
     35            headers = self.net.http_HEAD(FX_SOURCE).get_headers(as_dict=True)
     36            old_etag = self.get_setting('etag')
     37            new_etag = headers.get('Etag', '')
     38            old_len = self.__old_length()
     39            new_len = int(headers.get('Content-Length', 0))
     40            if old_etag != new_etag or old_len != new_len:
     41                self.set_setting('etag', new_etag)
     42                new_py = self.net.http_GET(FX_SOURCE).content
     43                if new_py:
     44                    with open(FX_PATH, 'w') as f:
     45                        f.write(new_py)
     46            else:
     47                print 'Reusing existing fx_gmu.py: |%s|%s|%s|%s|' % (old_etag, new_etag, old_len, new_len)
     48        except Exception as e:
     49            print 'Exception during flashx code retrieve: %s' % e
     50           
     51    def __old_length(self):
     52        try:
     53            with open(FX_PATH, 'r') as f:
     54                old_py = f.read()
     55            old_len = len(old_py)
     56        except:
     57            old_len = 0
     58        return old_len
     59
    2860    def get_media_url(self, host, media_id):
    29         web_url = self.get_url(host, media_id)
    30         resp = self.net.http_GET(web_url)
    31         html = resp.content
    32         cfdcookie = resp._response.info()['set-cookie']
    33         cfduid = re.search('cfduid=(.*?);', cfdcookie).group(1)
    34         file_id = re.search("'file_id', '(.*?)'", html).group(1)
    35         aff = re.search("'aff', '(.*?)'", html).group(1)
    36         headers = {'User-Agent': common.IE_USER_AGENT,
    37                    'Referer': web_url,
    38                    'Cookie': '__cfduid=' + cfduid + '; lang=1'}
    39         surl = re.search('src="(.*?' + file_id + ')', html, re.IGNORECASE).group(1)
    40         dummy = self.net.http_GET(url=surl, headers=headers).content
    41         headers = {'User-Agent': common.IE_USER_AGENT,
    42                    'Referer': web_url,
    43                    'Cookie': '__cfduid=' + cfduid + '; lang=1; file_id=' + file_id + '; aff=' + aff}
    44         html = self.net.http_GET(url=web_url, headers=headers).content
    45         fname = re.search('name="fname" value="(.*?)"', html).group(1)
    46         hash = re.search('name="hash" value="(.*?)"', html).group(1)
    47         fdata = {'op': 'download1',
    48                  'usr_login': '',
    49                  'id': media_id,
    50                  'fname': fname,
    51                  'referer': '',
    52                  'hash': hash,
    53                  'imhuman': 'Proceed to video'}
    54         furl = 'http://www.flashx.tv/dl'# + media_id
    55         time.sleep(5)
    56         html = self.net.http_POST(url=furl, form_data=fdata, headers=headers).content
     61#        try:
     62#            if self.get_setting('auto_update') == 'true':
     63#                self.get_fx_code()
     64#            with open(FX_PATH, 'r') as f:
     65#                py_data = f.read()
     66#            import fx_gmu
     67            web_url = self.get_url(host, media_id)
     68            print fx_gmu.get_media_url(web_url)
     69#        except Exception as e:
     70#            print 'error'
     71       
     72    def get_url(self, host, media_id):
     73        return 'http://%s/embed.php?c=%s' % (host, media_id)
    5774
    58         js_data = re.findall('(eval\(function.*?)</script>', html.replace('\n', ''))
    59 
    60         for i in js_data:
    61             try: html += jsunpack.unpack(i)
    62             except: pass
    63 
    64         print self.get_best_source(html)
    65 
    66     def get_url(self, host, media_id):
    67         return 'http://www.flashx.tv/%s.html' % media_id
    68 
    69 
    70     def get_best_source(self, html):
    71         stream = re.search('file:"([^"]*/high.*)",label', html)
    72         if stream:
    73             return re.search('file:"([^"]*/high.*)",label', html).group(1)
    74         else:
    75             stream = re.search('file:"([^"]*/normal.*)",label', html)
    76             if stream:
    77                 return re.search('file:"([^"]*/normal.*)",label', html).group(1)
    78             else:
    79                 stream = re.search('file:"([^"]*/low.*)",label', html)
    80                 if stream:
    81                     return re.search('file:"([^"]*/low.*)",label', html).group(1)
    82                 else:
    83                     stream = re.search('file:"([^"]*)",label', html)
    84                     if stream:
    85                         return re.search('file:"([^"]*)",label', html).group(1)
    86                        
    8775sys.stdout = FlashxResolver()
Note: See TracChangeset for help on using the changeset viewer.