예제 #1
0
파일: cache.py 프로젝트: anopid/filmkodi
def get_cached_url(self, url, data='', cache_limit=8):
    try:
        dbcon = database.connect(control.sourcescachedUrl)
        dbcur = dbcon.cursor()

        #dbcur.execute(
        #    "CREATE TABLE IF NOT EXISTS rel_url (""source TEXT, ""imdb_id TEXT, ""season TEXT, ""episode TEXT, ""rel_url TEXT, ""UNIQUE(source, imdb_id, season, episode)"");")
        dbcur.execute(
        "CREATE TABLE IF NOT EXISTS url_cache (url VARCHAR(255) NOT NULL, data VARCHAR(255), response, res_header, timestamp, PRIMARY KEY(url, data))")
    except:
        pass

    try:
        if data is None: data = ''
        html = ''
        res_header = []
        created = 0
        now = time.time()
        age = now - created
        limit = 60 * 60 * cache_limit
        dbcur.execute('SELECT timestamp, response, res_header FROM url_cache WHERE url = %s and data=%s' % (url,data))
        rows =  dbcur.fetchall()
        control.log('DB ROWS: Url: %s, ' % (rows))

        if rows:
            created = float(rows[0][0])
            res_header = json.loads(rows[0][2])
            age = now - created
            if age < limit:
                html = rows[0][1]
        control.log('DB Cache: Url: %s, Data: %s, Cache Hit: %s, created: %s, age: %.2fs (%.2fh), limit: %ss' % (
        url, data, bool(html), created, age, age / (60 * 60), limit))
        return created, res_header, html
    except:
        return
예제 #2
0
    def play(self, name, title, service, meta):
        syshandle = int(sys.argv[1])
        sysaddon = sys.argv[0]
        #control.log('xxx BBB3 %s | %s ' % (syshandle, sysaddon))

        #control.log('BBB1 %s %s %s %s' % (name, title, meta,service))

        try:
            if not control.infoLabel('Container.FolderPath').startswith(
                    'plugin://'):
                control.log('BBB2')
                control.playlist.clear()

            #control.resolve(int(sys.argv[1]), True, control.item(path=''))
            #control.execute('Dialog.Close(okdialog)')

            url = self.sourcesDirect(service, meta)

            if url == None: raise Exception()
            if url == 'close://': return

            from resources.lib.lib.player import player
            player().run(name, url, meta, service)
            return url

        except:
            control.infoDialog(control.lang(30501).encode('utf-8'), time=4000)
예제 #3
0
파일: yoy.py 프로젝트: anopid/filmkodi
def getchanels():
    try:
        if getYoyCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40004).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'YOY', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')):
                control.openSettings('2.5')
            raise Exception()
        login()
        items = []
        for j in range(1,10):
            url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j
            result = client2.http_get(url)
            result = client.parseDOM(result, 'a', attrs = {'class': 'thumb-info team'})
            result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result]
            for i in result:
                item = {}
                item['id'] = i[0].replace('http://yoy.tv/channel/covers/','').replace('.jpg?cache=32','')
                control.log('Alina %s' % item['id'])

                item['id']=item['id'].encode('utf-8')
                item['title'] = i[1].upper().encode('utf-8')

                items.append(item)
        return items
    except:
        #control.openSettings('6.1')
        control.log('ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
예제 #4
0
파일: wizja.py 프로젝트: anopid/filmkodi
def wizjachanels():
    try:
        if getWizjaCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40005).encode('utf-8'), control.lang(30481).encode('utf-8'), '',
                                   'Wizja', control.lang(30483).encode('utf-8'),
                                   control.lang(30482).encode('utf-8')):
                control.openSettings('2.3')
            raise Exception()
        login()
        items = []
        url = 'http://wizja.tv/'
        result = client2.http_get(url)
        result = client.parseDOM(result, 'td')

        for i in result:
            item = {}
            try:
                result2 = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'img', ret='src')[0])]
                #control.log('Dalina %s' % result2)
                item['img'] = 'http://wizja.tv/' + result2[0][1]
                item['img'] = item['img'].encode('utf-8')
                item['id'] = result2[0][0].replace('watch.php?id=','')
                item['id'] = item['id'].encode('utf-8')
                item['title'] = result2[0][1].replace('ch_logo/','').replace('.png','')
                item['title'] = item['title'].upper().encode('utf-8')
                # control.log('Calina %s' % item)
                items.append(item)
            except Exception as e:
                control.log('                               Error wizja.wizjachanels for %s' % e)
                pass

        return items
    except Exception as e:
        control.log('Error wizja.wizjachanels %s' % e)
예제 #5
0
파일: itivi.py 프로젝트: undg/filmkodi
def login():
    try:
        if getItiviCredentialsInfo() == False:
            if control.yesnoDialog(
                    control.lang(40006).encode('utf-8'),
                    control.lang(30481).encode('utf-8'), '', 'Itivi',
                    control.lang(30483).encode('utf-8'),
                    control.lang(30482).encode('utf-8')):
                control.openSettings('2.1')
            raise Exception()

        params = {}
        #url = 'http://itivi.pl/include/login.php'
        #params['log'] = control.get_setting('itivi.user')
        #params['pwd'] = control.get_setting('itivi.pass')
        #client2._clean_cookies(url)
        #result = client2.http_get(url, data=params)
        #myres = client.parseDOM(result,'div', attrs={'class': 'account_field_box'})[0]
        #myres = client.parseDOM(myres,'font')
        #premium = myres[0] + client.parseDOM(myres[1],'b')[0] + ' ' + control.lang(30493)
        #control.infoDialog(premium.encode('utf-8'), time=200)
        return True

    except Exception as e:
        control.infoDialog(control.lang(30485).encode('utf-8'), time=400)
        control.log('Error itivi.login %s' % e)
        return True
예제 #6
0
def getstream(id):
    try:
        pl_proxy = control.setting('pl_proxy')
        pl_proxy_port = control.setting('pl_proxy_port')

        url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id
        result = get(url, pl_proxy)
        control.log('Z %s' % result)
        result = json.loads(result)

        if result['status'] == 'ok':
            url = result['stream_channel']['url_base']
            result = client.request(
                url,
                headers=headers,
                cookie=control.get_setting('videostar.sess'),
                output='geturl')
            return result
        if result['status'] == 'error':
            control.infoDialog('%s' %
                               result['errors'][0]['msg'].encode('utf-8'))
            control.dialog.ok(control.addonInfo('name'),
                              result['errors'][0]['msg'].encode('utf-8'), '')

        raise Exception()
    except:
        #control.openSettings('6.1')
        control.log(
            'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'
        )
예제 #7
0
파일: wizja.py 프로젝트: borys76/filmkodi
def login():
    #if getYoyCredentialsInfo() == False:
    #    raise Exception()
    try:
        params = {}
        url = 'http://wizja.tv/users/index.php'
        result = client2.http_get(url)
        params['login']='******'
        params['user_name'] = control.get_setting('wizja.user')
        params['user_password'] = control.get_setting('wizja.pass')
        result = client2.http_get(url, data=params)
        control.log('DATA %s' % result)
        if  'o..</font><br>' in result:
            control.log('CCCC LOGIN %s' % 'wizja.tv')
            control.infoDialog(control.lang(30486).encode('utf-8'),time=6000)
            raise Exception()
        elif 'Zalogowany jako :' in result:
            if '<font color=ff0000>Brak premium' in result:
                control.infoDialog(control.lang(30490).encode('utf-8'), time=6000)
                return True
            else:
                return True
        elif '<font color="#FF0000">Wpisa' in result:
            control.log('CCCC LOGIN %s' % 'wizja.tv')
            control.infoDialog(control.lang(30487).encode('utf-8'),time=6000)
        else:
            control.log('CCCC LOGIN %s' % 'wizja.tv')
            control.infoDialog(control.lang(30488).encode('utf-8'), time=6000)

        return False

    except Exception as e:
        control.log('Error wizja.login %s' % e)
예제 #8
0
파일: tv.py 프로젝트: anopid/filmkodi
    def get(self, url, idx=True):
        try:

            try: url = getattr(self, url + '_link')
            except: pass

            try: u = urlparse.urlparse(url).netloc.lower()
            except: pass

            if url in self.pierwsza_link:
                self.pierwsza_list(url)
            if url in self.videostar_link:
                self.videostar_list(url)
            if url in self.yoy_link:
                self.yoy_list(url)
            if url in self.weeb_link:
                self.weeb_list(url)
            if url in self.wizja_link:
                self.wizja_list(url)


            if idx == True: self.movieDirectory(self.list)

            return self.list
        except Exception as e:
            control.log('Error: %s' % e)
            pass
예제 #9
0
파일: wizja.py 프로젝트: anopid/filmkodi
def login():
    #if getYoyCredentialsInfo() == False:
    #    raise Exception()
    try:
        params = {}
        url = 'http://wizja.tv/users/index.php'
        result = client2.http_get(url)
        params['login']='******'
        params['user_name'] = control.get_setting('wizja.user')
        params['user_password'] = control.get_setting('wizja.pass')
        result = client2.http_get(url, data=params)
        control.log('DATA %s' % result)
        if  'o..</font><br>' in result:
            control.log('CCCC LOGIN %s' % 'wizja.tv')
            control.infoDialog(control.lang(30486).encode('utf-8'),time=6000)
            raise Exception()
        elif 'Zalogowany jako :' in result:
            if '<font color=ff0000>Brak premium' in result:
                control.infoDialog(control.lang(30490).encode('utf-8'), time=6000)
                return True
            else:
                return True
        elif '<font color="#FF0000">Wpisa' in result:
            control.log('CCCC LOGIN %s' % 'wizja.tv')
            control.infoDialog(control.lang(30487).encode('utf-8'),time=6000)
        else:
            control.log('CCCC LOGIN %s' % 'wizja.tv')
            control.infoDialog(control.lang(30488).encode('utf-8'), time=6000)

        return False

    except Exception as e:
        control.log('Error wizja.login %s' % e)
예제 #10
0
파일: itivi.py 프로젝트: mrknow/filmkodi
def login():
    try:
        if getItiviCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40006).encode('utf-8'), control.lang(30481).encode('utf-8'), '',
                                   'Itivi', control.lang(30483).encode('utf-8'),
                                   control.lang(30482).encode('utf-8')):
                control.openSettings('2.1')
            raise Exception()


        params = {}
        url = 'http://itivi.pl/include/login.php'
        params['log'] = control.get_setting('itivi.user')
        params['pwd'] = control.get_setting('itivi.pass')
        client2._clean_cookies(url)
        result = client2.http_get(url, data=params)
        myres = client.parseDOM(result,'div', attrs={'class': 'account_field_box'})[0]
        myres = client.parseDOM(myres,'font')
        premium = myres[0] + client.parseDOM(myres[1],'b')[0] + ' ' + control.lang(30493)
        control.infoDialog(premium.encode('utf-8'), time=200)
        return True

    except Exception as e:
        control.infoDialog(control.lang(30485).encode('utf-8'), time=400)
        control.log('Error itivi.login %s' % e)
        return True
예제 #11
0
def login():
    #f getVideostarCredentialsInfo() == False:
    #    raise Exception()
    params = {}
    #control.set_setting('videostar.sess', '')
    params['login'] = control.get_setting('videostar.user')
    params['password'] = control.get_setting('videostar.pass')
    params['permanent'] = 1
    url = 'https://api-pilot.wp.pl/user/login'
    result = client.request(url, post=params, headers=headers, output='cookie')
    control.log('ResultC videostar.get %s' % result)
    if result == '':
        control.infoDialog('Unauthorized')
        return None

    control.set_setting('videostar.sess', result)
    control.sleep(500)
    url = 'https://api-pilot.wp.pl/invitations/limit'
    headers['cookie'] = result
    result2 = client.request(url, headers=headers)
    if 'error' in result2:
        result2 = json.loads(result2)
        control.log('EEEEEEEEEEEE Result videostar.get %s' %
                    result2['errors'][0]['msg'])
        control.infoDialog(result2['errors'][0]['msg'].encode('utf-8'))

    control.sleep(500)
    return result
예제 #12
0
파일: __init__.py 프로젝트: mrknow/filmkodi
    def play(self, name, title, service, meta):
        syshandle = int(sys.argv[1])
        sysaddon = sys.argv[0]
        #control.log('xxx BBB3 %s | %s ' % (syshandle, sysaddon))

        #control.log('BBB1 %s %s %s %s' % (name, title, meta,service))


        try:
            if not control.infoLabel('Container.FolderPath').startswith('plugin://'):
                control.log('BBB2' )
                control.playlist.clear()

            #control.resolve(int(sys.argv[1]), True, control.item(path=''))
            #control.execute('Dialog.Close(okdialog)')

            url = self.sourcesDirect(service, meta)

            if url == None: raise Exception()
            if url == 'close://': return


            from resources.lib.lib.player import player
            player().run(name, url, meta,service)
            return url

        except:
            control.infoDialog(control.lang(30501).encode('utf-8'),time=4000)
예제 #13
0
def login():
    #if getYoyCredentialsInfo() == False:
    #    raise Exception()
    try:
        params = {}
        url = 'http://yoy.tv/signin'
        client2._clean_cookies('http://yoy.tv/signin')

        result = client2.http_get(url)
        params['remember_me']='1'
        params['email'] = control.get_setting('yoytv.user')
        params['password'] = control.get_setting('yoytv.pass')
        params['_token']=client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0]
        result = client2.http_get(url, data=params)
        #control.set_setting('videostar.sess', result)'<a class="dropdown-toggle" href="http://yoy.tv/signout">Wyloguj się'
        #control.log('Resul %s' % result)
        if not 'http://yoy.tv/signout' in result:
            control.log('BBBBB LOGIN %s' % 'yoy.tv')
            control.infoDialog(control.lang(30484).encode('utf-8'))
        else:
            url = 'http://yoy.tv/user/settings'
            result = client2.http_get(url)
            premium = re.findall('Aktywne do: ([0-9 :-]+)',result)
            if len(premium)>0:
                #control.log('BBBBB LOGIN %s' % len(premium))
                control.log('CCCCC LOGIN %s' % premium)

                control.infoDialog(control.lang(30496) + premium[0].encode('utf-8') )

    except:
        pass
예제 #14
0
def get(url, params={}):
    try:
        if getVideostarCredentialsInfo() == False:
            if control.yesnoDialog(
                    control.lang(40001).encode('utf-8'),
                    control.lang(30481).encode('utf-8'), '', 'Trakt',
                    control.lang(30483).encode('utf-8'),
                    control.lang(30482).encode('utf-8')):
                control.openSettings('2.3')
            raise Exception()

        url = urlparse.urljoin('https://api.videostar.pl', url)
        result = client.request(url,
                                headers=headers,
                                cookie=control.get_setting('videostar.sess'))
        r = json.loads(result)

        if r['status'] == "error" or result == None:
            if r['errors'][0]['code'] == 1:
                login()
                control.sleep(500)
                mycookie = control.get_setting('videostar.sess')
                result = client.source(
                    url,
                    headers=headers,
                    cookie=control.get_setting('videostar.sess'))

        return result
    except Exception as e:
        control.log('Error videostar.get %s' % e)
        pass
예제 #15
0
파일: looknij.py 프로젝트: mrknow/filmkodi
def weebchanels():
    try:

        items=[]
        login()
        url = 'https://looknij.in/telewizja-online/'
        result = client2.http_get(url)
        r = client.parseDOM(result, 'div', attrs={'class': 'normal radius'})
        r = [(client.parseDOM(i, 'h3')[0],client.parseDOM(i, 'img', ret='src')[0]) for i in r]
        r = [(client.parseDOM(i[0], 'a', ret='href')[0], client.parseDOM(i[0], 'a')[0], i[1]) for i in r]
        #control.log('RESULT R %s' % dump(r))

        for i in r:
            item = {}
            try:
                # control.log('Dalina %s' % result2)
                item['img'] = i[2].encode('utf-8')
                item['id'] = i[0].split('-')[-1]
                #item['id'] = item['id'].encode('utf-8')
                item['title'] = i[1].replace('[Lektor]', '').replace('  ', '')
                item['title'] = item['title'].upper().encode('utf-8')
                #control.log('RESULT I %s' % dump(item))
                # control.log('Calina %s' % item)
                item = {'title': item['title'], 'originaltitle': item['title'], 'genre': '0', 'plot': '0', 'name':item['title'], 'tagline': '0',  'poster': item['img'], 'fanart': '0', 'id':item['id'], 'service':'looknij', 'next': ''}
                items.append(item)
            except Exception as e:
                control.log('         Error wizja.looknij for %s' % e)
                pass
        return items
    except Exception as e:
        control.log('         Error wizja.looknij for %s' % e)
        pass
        return items
예제 #16
0
파일: wizja.py 프로젝트: borys76/filmkodi
def wizjachanels():
    try:
        if getWizjaCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40005).encode('utf-8'), control.lang(30481).encode('utf-8'), '',
                                   'Wizja', control.lang(30483).encode('utf-8'),
                                   control.lang(30482).encode('utf-8')):
                control.openSettings('2.3')
            raise Exception()
        login()
        items = []
        url = 'http://wizja.tv/'
        result = client2.http_get(url)
        result = client.parseDOM(result, 'td')

        for i in result:
            item = {}
            try:
                result2 = [(client.parseDOM(i, 'a', ret='href')[0], client.parseDOM(i, 'img', ret='src')[0])]
                #control.log('Dalina %s' % result2)
                item['img'] = 'http://wizja.tv/' + result2[0][1]
                item['img'] = item['img'].encode('utf-8')
                item['id'] = result2[0][0].replace('watch.php?id=','')
                item['id'] = item['id'].encode('utf-8')
                item['title'] = result2[0][1].replace('ch_logo/','').replace('.png','')
                item['title'] = item['title'].upper().encode('utf-8')
                # control.log('Calina %s' % item)
                items.append(item)
            except Exception as e:
                control.log('                               Error wizja.wizjachanels for %s' % e)
                pass

        return items
    except Exception as e:
        control.log('Error wizja.wizjachanels %s' % e)
예제 #17
0
def streamrefresh():
    try:
        #mynow = int(datetime.datetime.now().strftime('%s'))
        mynow = int(str(int(time.mktime(datetime.datetime.now().timetuple()))))
        expired = int(control.get_setting('telewizjada.tokenExpireIn'))
        #control.log('XXXX Telewizjadanet Exp:%s Now:%s' % (expired, mynow))

        if mynow > expired:
            ua = control.get_setting('telewizjada.ua')
            refreshcookie = control.get_setting('telewizjada.refreshcookie')
            referer = control.get_setting('telewizjada.referer')
            myheaders = {
                'User-Agent': ua,
                'Content-Type': 'application/json',
                'cookie': refreshcookie,
                'referer': referer
            }
            url = 'http://www.telewizjada.net/net/service/verifydevice.php'
            params = json.dumps({"action": "old", "key": ""})
            result = client.request(url, post=params, headers=myheaders)
            control.log('Telewizjada verifydevice result: %s' % (result))
            expirewhen = datetime.datetime.now() + datetime.timedelta(
                seconds=refreshtime)
            control.set_setting('telewizjada.tokenExpireIn',
                                str(int(time.mktime(expirewhen.timetuple()))))
    except Exception as e:
        control.log('Error telewizjada.refresh %s' % e)
        raise Exception()
예제 #18
0
파일: yoy.py 프로젝트: undg/filmkodi
def getchanels():
    try:
        if getYoyCredentialsInfo() == False:
            if control.yesnoDialog(
                    control.lang(40004).encode('utf-8'),
                    control.lang(30481).encode('utf-8'), '', 'YOY',
                    control.lang(30483).encode('utf-8'),
                    control.lang(30482).encode('utf-8')):
                control.openSettings('1.21')
            raise Exception()
        #login()
        items = []
        for j in range(1, 10):
            try:
                url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j
                result = client.request(url)
                result = client.parseDOM(result,
                                         'a',
                                         attrs={'class': 'thumb-info team'})
                result = [(client.parseDOM(i, 'img', ret='src')[0],
                           client.parseDOM(i, 'img', ret='alt')[0])
                          for i in result]
                for i in result:
                    item = {}
                    item['id'] = i[0].replace('http://yoy.tv/channel/covers/',
                                              '').replace('.jpg?cache=32', '')
                    control.log('YOY channel %s' % item['id'])
                    item['id'] = item['id'].encode('utf-8')
                    item['title'] = control.trans(i[1].upper().encode('utf-8'))
                    items.append(item)
            except:
                control.log('YOY url: %s' % url)
                pass

        if 'true' == control.get_setting('xxxmode'):
            url = 'http://yoy.tv/channels?category=erotyka'
            result = client.request(url)
            result = client.parseDOM(result,
                                     'a',
                                     attrs={'class': 'thumb-info team'})
            result = [(client.parseDOM(i, 'img', ret='src')[0],
                       client.parseDOM(i, 'img', ret='alt')[0])
                      for i in result]
            for i in result:
                control.log('XXX: %s' % i[0])
                item = {}
                item['id'] = i[0].replace('http://yoy.tv/channel/covers/',
                                          '').replace('.jpg?cache=32', '')
                control.log('XXX Alina %s' % item['id'])
                item['id'] = item['id'].encode('utf-8')
                item['title'] = 'XXX ' + control.trans(
                    i[1].upper().encode('utf-8'))
                items.append(item)

        return items
    except Exception as e:
        control.log('Error yoy.getchanels %s' % e)
예제 #19
0
def fix_bad_cookies(cookies):
    for domain in cookies:
        for path in cookies[domain]:
            for key in cookies[domain][path]:
                cookie = cookies[domain][path][key]
                if cookie.expires > sys.maxint:
                    control.log('Fixing cookie expiration for %s: was: %s now: %s' % (key, cookie.expires, sys.maxint))
                    cookie.expires = sys.maxint
    return cookies
예제 #20
0
def get(url, proxy=''):
    try:
        pl_proxy = control.setting('pl_proxy')
        pl_proxy_port = control.setting('pl_proxy_port')

        if getVideostarCredentialsInfo() == False:
            if control.yesnoDialog(
                    control.lang(40001).encode('utf-8'),
                    control.lang(30481).encode('utf-8'), '', 'Trakt',
                    control.lang(30483).encode('utf-8'),
                    control.lang(30482).encode('utf-8')):
                control.openSettings('1.11')
            raise Exception()

        url = urlparse.urljoin('https://api.videostar.pl', url)
        if proxy == '':
            result = client.request(
                url,
                headers=headers,
                cookie=control.get_setting('videostar.sess'))
        else:
            myproxy = pl_proxy
            if pl_proxy_port != '': myproxy = myproxy + ':' + pl_proxy_port

            myproxy_check = is_bad_proxy(myproxy)
            if not myproxy_check == '':
                control.dialog.ok(
                    control.addonInfo('name'),
                    control.lang(40013).encode('utf-8') + ' ' +
                    myproxy_check.encode('utf-8'), '')
                control.openSettings('0.11')
                return None

            result = client.request(
                url,
                headers=headers,
                cookie=control.get_setting('videostar.sess'),
                proxy=myproxy)
        r = json.loads(result)

        if r['status'] == "error" or result == None:
            if r['errors'][0]['code'] == 1:
                login()
                control.sleep(500)
                mycookie = control.get_setting('videostar.sess')
                result = client.source(
                    url,
                    headers=headers,
                    cookie=control.get_setting('videostar.sess'))

        return result
    except Exception as e:
        control.log('Error videostar.get %s' % e)
        pass
예제 #21
0
파일: videostar.py 프로젝트: undg/filmkodi
def is_bad_proxy(pip):
    try:
        proxy_handler = urllib2.ProxyHandler({'http': pip})
        opener = urllib2.build_opener(proxy_handler)
        opener.addheaders = [('User-agent', 'Mozilla/5.0')]
        urllib2.install_opener(opener)
        req=urllib2.Request('http://kodi.filmkodi.com')  # change the url address here
        sock=urllib2.urlopen(req, timeout=20)
    except urllib2.HTTPError, e:
        control.log('Error code: %s' % e.code)
        return 'Error code: %s' % e.code
예제 #22
0
파일: __init__.py 프로젝트: mrknow/filmkodi
    def checkSources(self, name, title, year, imdb, tmdb, tvdb, service, season, episode, tvshowtitle, alter, date):
        sourceDict = []
        for package, name, is_pkg in pkgutil.walk_packages(__path__): sourceDict.append((name, is_pkg))
        sourceDict = [i[0] for i in sourceDict if i[1] == False]

        content = 'movie' if tvshowtitle == None else 'episode'


        if content == 'movie':
            sourceDict = [i for i in sourceDict if i.endswith(('_mv', '_mv_tv'))]
            try: sourceDict = [(i, control.setting(re.sub('_mv_tv$|_mv$|_tv$', '', i))) for i in sourceDict]
            except: sourceDict = [(i, 'true') for i in sourceDict]
        else:
            sourceDict = [i for i in sourceDict if i.endswith(('_tv', '_mv_tv'))]
            try: sourceDict = [(i, control.setting(re.sub('_mv_tv$|_mv$|_tv$', '', i) + '_tv')) for i in sourceDict]
            except: sourceDict = [(i, 'true') for i in sourceDict]

        threads = []

        control.makeFile(control.dataPath)
        self.sourceFile = control.sourcescacheFile

        sourceDict = [i[0] for i in sourceDict if i[1] == 'true']

        if content == 'movie':
            title = cleantitle.normalize(title)
            for source in sourceDict: threads.append(workers.Thread(self.getMovieSource, title, year, imdb, re.sub('_mv_tv$|_mv$|_tv$', '', source), __import__(source, globals(), locals(), [], -1).source()))
        else:
            tvshowtitle = cleantitle.normalize(tvshowtitle)
            season, episode = alterepisode.alterepisode().get(imdb, tmdb, tvdb, service, season, episode, alter, title, date)
            for source in sourceDict:
                control.log("SOURCE S2 %s" % source)
                threads.append(workers.Thread(self.getEpisodeSource, title, year, imdb, tvdb, season, episode, tvshowtitle, date, re.sub('_mv_tv$|_mv$|_tv$', '', source), __import__(source, globals(), locals(), [], -1).source()))


        try: timeout = int(control.setting('sources_timeout_40'))
        except: timeout = 40

        [i.start() for i in threads]

        for i in range(0, timeout * 2):
            try:
                if xbmc.abortRequested == True: return sys.exit()
                if len(self.sources) >= 10: break

                is_alive = [x.is_alive() for x in threads]
                if all(x == False for x in is_alive): break
                time.sleep(0.5)
            except:
                pass

        if len(self.sources) >= 10: return True
        else: return False
예제 #23
0
파일: tv.py 프로젝트: anopid/filmkodi
    def pierwsza_list(self, url):
        items = cache.get(pierwsza.chanels, 2)
        #items = pierwsza.chanels()
        next = ''

        for item in items:
            try:
                id = str(item['id'])
                id = id.encode('utf-8')

                title = item['name']
                title = client.replaceHTMLCodes(title)
                title = title.encode('utf-8')

                poster = '0'
                try:
                    poster = item['thumbail']
                    poster = self.pierwsza_link+poster
                except: pass
                poster = poster.encode('utf-8')

                fanart = '0'
                try:
                    fanart = item['thumbail']
                    fanart = self.pierwsza_link+fanart
                except: pass
                fanart = fanart.encode('utf-8')

                plot = '0'
                try: plot = item['overview']
                except: pass
                if plot == None: plot = '0'
                plot = client.replaceHTMLCodes(plot)
                plot = plot.encode('utf-8')

                try: tagline = item['tagline']
                except: tagline = None
                if tagline == None and not plot == '0': tagline = re.compile('[.!?][\s]{1,2}(?=[A-Z])').split(plot)[0]
                elif tagline == None: tagline = '0'
                tagline = client.replaceHTMLCodes(tagline)
                try: tagline = tagline.encode('utf-8')
                except: pass

                self.list.append({'title': title, 'originaltitle': title, 'genre': '0', 'plot': plot, 'name':title, 'tagline': tagline,  'poster': poster, 'fanart': fanart, 'id':id, 'service':'pierwsza', 'next': next})
                #control.log("##################><><><><> pierwsza item  %s" % self.list)

            except:
                control.log("##################><><><><> pierwsza item  %s" % newlist)
                pass
        import operator
        self.list.sort(key=operator.itemgetter('title'))
        return self.list
예제 #24
0
파일: wizja.py 프로젝트: soltje/filmkodi
def getstream(id):
    try:
        if login():
            ref = 'http://wizja.tv/watch.php?id=%s' % id
            result = client2.http_get(ref)
            headers = {'Referer': ref}
            url = 'http://wizja.tv/porter.php?ch=%s' % id
            result = client2.http_get(url, headers=headers)
            #control.log('Error wizja.getstream %s' % result)
            #[SPECTO]: Error wizja.getstream WWW: <html><head>
            #<link rel="stylesheet" type="text/css" href="/white.css"></head><body><font size="3"><br><br><center><b><font color="#ff0000">Oglądasz zbyt wiele programów jednocześnie!</font></b><br><br>Zamknij pozostałe otwarte strony i spróbuj ponownie, <br>lub
            # <a href="killme.php?id=70" target="_top">zakończ wszystkie pozostałe połączenia i wpuść mnie!</a></font>
            #

            mylink = re.compile('src: "(.*?)"').findall(result)
            mykill = re.compile('<a href="killme.php\?id=(.*?)" target="_top">'
                                ).findall(result)
            if len(mylink) > 0:
                rtmp2 = urllib.unquote(mylink[0]).decode('utf8')
                rtmp1 = re.compile(
                    'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall(
                        rtmp2)
                rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][
                    1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][
                        3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][
                            3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref
                return rtmp
            elif len(mykill) > 0:
                control.log('Error KILL %s' % mykill)
                urlkill = 'http://wizja.tv/killme.php?id=%s' % mykill[0]
                result = client2.http_get(urlkill, headers=headers)
                control.sleep(300)
                url = 'http://wizja.tv/porter.php?ch=%s' % id
                result = client2.http_get(url, headers=headers)
                mylink = re.compile('src: "(.*?)"').findall(result)
                if len(mylink) > 0:
                    rtmp2 = urllib.unquote(mylink[0]).decode('utf8')
                    rtmp1 = re.compile(
                        'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall(
                            rtmp2)
                    rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][
                        1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][
                            3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][
                                3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref
                    return rtmp
            else:
                raise Exception('WWW: ' + result)
        else:
            return
    except Exception as e:
        control.log('Error wizja.getstream %s' % e)
예제 #25
0
def getstream(id):
    login()
    try:
        url = 'http://yoy.tv/channels/%s' % id
        result = client2.http_get(url)
        #control.log('RES:%s'%result)

        if 'http://yoy.tv/accept/' in result:
            if 'true' == control.get_setting('xxxmode'):
                control.log('EROTYK ')
                u1 = client.parseDOM(result, 'form', ret='action')[0]
                params = {}
                params['_token'] = client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0]
                control.log('params: %s' % params['_token'])
                result = client2.http_get(u1, data=params)
            else:
                control.infoDialog(control.lang(30799).encode('utf-8') + ' ' +control.lang(30798).encode('utf-8'))
                return None

        if '<title>Kup konto premium w portalu yoy.tv</title>' in result:
            control.infoDialog(control.lang(30485).encode('utf-8'))
            return None

        #control.log('r %s' % result)
        myobj = client.parseDOM(result, 'object', ret='data', attrs={'type': 'application/x-shockwave-flash'})[
            0].encode('utf-8')

        result = client.parseDOM(result, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8')
        control.log("YOY res: %s %s "  % (result,myobj))

        lpi = result.index("s=") + result.index("=") * 3
        rpi = result.index("&", lpi) - result.index("d") * 2
        dp=[]
        cp=result[lpi:rpi].split('.')
        for i, item in enumerate(cp):
            j = 2 ^ i ^ ((i ^ 3) >> 1)
            k = 255 - int(cp[j])
            dp.append(k)
        myip = '.'.join(map(str, dp))
        result = dict(urlparse.parse_qsl(result))
        control.log("YOY myip: %s " % (myip))

        myplaypath='%s?email=%s&secret=%s&hash=%s' %(result['cid'],result['email'],result['secret'],result['hash'])
        myurl = 'rtmp://'+myip + ' app=yoy/_definst_ playpath=' + myplaypath + ' swfUrl=' + myobj + \
                ' swfVfy=true tcUrl=' + 'rtmp://'+myip+'/yoy/_definst_ live=true pageUrl=' + url
        #control.log("########## TAB:%s" % myurl)

        return myurl

    except Exception as e:
        control.log('Error yoy.getstream %s' % e)
예제 #26
0
def chanels():
    adult = control.get_setting('xxxmode')

    #if login() == False:
    #    control.log('Błędny login')
    #    raise ValueError('Błędny login')
    url = 'http://www.telewizjada.net/get_channels_cache.php'
    items = []
    try:
        result = client.request(url)
        result = json.loads(result)

        for i in result['channels']:
            try:
                if adult == 'false':
                    if i['isAdult'] == 1:
                        control.log('Adult telewizjada.chanels %s' %
                                    i['displayName'])
                        raise ValueError('Adult channel %s' % i['displayName'])
                item = {}
                item['img'] = urlparse.urljoin(base_url,
                                               i['bigThumb']).encode('utf-8')
                item['id'] = i['id']
                item['title'] = i['displayName'].upper().encode('utf-8')
                item['plot'] = i['description'].encode('utf-8')
                item = {
                    'title': item['title'],
                    'originaltitle': item['title'],
                    'genre': '0',
                    'plot': item['plot'],
                    'name': item['title'],
                    'tagline': '0',
                    'poster': item['img'],
                    'fanart': '0',
                    'id': item['id'],
                    'service': 'telewizjadanet',
                    'next': ''
                }
                items.append(item)
                #control.log('XXXXXXXXX %s' % i)

            except:
                pass
        return items

    except Exception as e:
        control.log('Error telewizjada.chanels %s' % e)
        control.dialog.ok(
            control.addonInfo('name') + ' - Telewizjada.net',
            control.lang(30602).encode('utf-8'), '')
        return
예제 #27
0
파일: player.py 프로젝트: rrosajp/filmkodi
    def run(self, name, url, meta, service):
        control.log("###URL %s" % url)

        if control.window.getProperty('PseudoTVRunning') == 'True':
            return control.player.play(url, control.item(path=url))
        #client.mystat('http://'+service+'.tv')
        if service=='telewizjadanet':
            self._service = service
            self._playing = True
        if service=='pierwsza':
            self._service = service
            self._playing = True
        if service=='looknij':
            control.log("Looknij start")

            self._service = service
            self._playing = True

        poster, thumb, meta = self.getMeta(meta)
        control.log("###META %s" % meta)

        item = control.item(path=url)
        item.setArt({'icon': thumb, 'thumb': thumb, 'poster': poster, 'tvshow.poster': poster, 'season.poster': poster})
        #item.setInfo(type='Video', infoLabels=meta)
        #item.setInfo(type='Video', infoLabels={ "Title": meta['title']})
        control.log("###URL %s | %s | %s" % (url, name, int(sys.argv[1])))

        control.resolve(int(sys.argv[1]), True, item)

        for i in range(0, 240):
            if self.isPlayingVideo(): break
            xbmc.sleep(1000)
예제 #28
0
def weebchanels():
    try:

        items = []
        login()
        url = 'https://looknij.in/telewizja-online/'
        result = client2.http_get(url)
        r = client.parseDOM(result, 'div', attrs={'class': 'normal radius'})
        r = [(client.parseDOM(i, 'h3')[0], client.parseDOM(i, 'img',
                                                           ret='src')[0])
             for i in r]
        r = [(client.parseDOM(i[0], 'a',
                              ret='href')[0], client.parseDOM(i[0],
                                                              'a')[0], i[1])
             for i in r]
        #control.log('RESULT R %s' % dump(r))

        for i in r:
            item = {}
            try:
                # control.log('Dalina %s' % result2)
                item['img'] = i[2].encode('utf-8')
                item['id'] = i[0].split('-')[-1]
                #item['id'] = item['id'].encode('utf-8')
                item['title'] = i[1].replace('[Lektor]', '').replace('  ', '')
                item['title'] = item['title'].upper().encode('utf-8')
                #control.log('RESULT I %s' % dump(item))
                # control.log('Calina %s' % item)
                item = {
                    'title': item['title'],
                    'originaltitle': item['title'],
                    'genre': '0',
                    'plot': '0',
                    'name': item['title'],
                    'tagline': '0',
                    'poster': item['img'],
                    'fanart': '0',
                    'id': item['id'],
                    'service': 'looknij',
                    'next': ''
                }
                items.append(item)
            except Exception as e:
                control.log('         Error wizja.looknij for %s' % e)
                pass
        return items
    except Exception as e:
        control.log('         Error wizja.looknij for %s' % e)
        pass
        return items
예제 #29
0
def get(url, proxy='', retry=True):
    try:
        pl_proxy = control.setting('pl_proxy')
        pl_proxy_port = control.setting('pl_proxy_port')

        if getVideostarCredentialsInfo() == False:
            control.infoDialog('Enter credentials')
            if control.yesnoDialog(
                    control.lang(40001).encode('utf-8'),
                    control.lang(30481).encode('utf-8'), '', 'Trakt',
                    control.lang(30483).encode('utf-8'),
                    control.lang(30482).encode('utf-8')):
                control.openSettings('1.11')
            return None

        full_url = urlparse.urljoin('https://api-pilot.wp.pl', url)
        if proxy == '':
            result = client.request(
                full_url,
                headers=headers,
                cookie=control.get_setting('videostar.sess'))
        else:
            myproxy = pl_proxy
            if pl_proxy_port != '': myproxy = myproxy + ':' + pl_proxy_port

            myproxy_check = is_bad_proxy(myproxy)
            if not myproxy_check == '':
                control.dialog.ok(
                    control.addonInfo('name'),
                    control.lang(40013).encode('utf-8') + ' ' +
                    myproxy_check.encode('utf-8'), '')
                control.openSettings('0.11')
                return None

            result = client.request(
                full_url,
                headers=headers,
                cookie=control.get_setting('videostar.sess'),
                proxy=myproxy)

        r = json.loads(result)

        if (r['status'] == "error" or result == None) and retry:
            login()
            result = get(url, proxy, False)

        return result
    except Exception as e:
        control.log('Error videostar.get %s' % e)
        pass
예제 #30
0
def getstream(id):
    try:
        url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id
        result = get(url)
        result = json.loads(result)
        if result['status'] == 'ok':
            url = result['stream_channel']['url_base']
            result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess'), output='geturl')
            return result

        raise Exception()
    except:
        #control.openSettings('6.1')
        control.log('ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
예제 #31
0
def getstream(id):
    try:
        if login():
            ref='%s' % id
            result =  client2.http_get(ref)
            headers={'Referer':ref}
            url = '%s' % id
            result =  client2.http_get(url, headers=headers)
            mylink = re.compile("file[']*[:,]\s*[']([^']+)").findall(result)
            if len(mylink)>0:
                rtmp = mylink[0].replace('flv:','')
                rtmp = rtmp + ' live=true timeout=15'
                return rtmp
    except Exception as e:
        control.log('Error itivi.getstream %s' % e)
예제 #32
0
파일: wizja.py 프로젝트: undg/filmkodi
def getstream(id):
    try:

        if wizjalogin():
            cookie = control.setting('wizja.token').strip()
            ref = 'http://wizja.tv/watch.php?id=%s' % id
            result = client.request(ref, headers=HOST, cookie=cookie)
            HOST['Referer'] = ref
            url = 'http://wizja.tv/porter.php?ch=%s' % id
            result = client.request(url, headers=HOST, cookie=cookie)
            mylink = re.compile('src: "(.*?)"').findall(result)
            mykill = re.compile('<a href="killme.php\?id=(.*?)" target="_top">'
                                ).findall(result)
            if len(mylink) > 0:
                rtmp2 = urllib.unquote(mylink[0]).decode('utf8')
                rtmp1 = re.compile(
                    'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall(
                        rtmp2)
                rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][
                    1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][
                        3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][
                            3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref
                return rtmp
            #kill other sessions
            elif len(mykill) > 0:
                control.log('Error KILL %s' % mykill)
                urlkill = 'http://wizja.tv/killme.php?id=%s' % mykill[0]
                result = client.request(urlkill, headers=HOST, cookie=cookie)
                control.sleep(300)
                url = 'http://wizja.tv/porter.php?ch=%s' % id
                result = client.request(url, headers=HOST, cookie=cookie)
                mylink = re.compile('src: "(.*?)"').findall(result)
                if len(mylink) > 0:
                    rtmp2 = urllib.unquote(mylink[0]).decode('utf8')
                    rtmp1 = re.compile(
                        'rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall(
                            rtmp2)
                    rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][
                        1] + '/' + rtmp1[0][2] + '?' + rtmp1[0][
                            3] + ' app=' + rtmp1[0][1] + '?' + rtmp1[0][
                                3] + ' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl=' + ref
                    return rtmp
            else:
                raise Exception('WWW: ' + result)
        else:
            return
    except Exception as e:
        control.log('Error wizja.getstream %s' % e)
예제 #33
0
def _clean_cookies(base_url):
    cookie_file = os.path.join(control.cookieDir, '%s_cookies.lwp' % shrink_host((base_url)))
    #cookie_file = os.path.join('/home/mrknow/.kodi/userdata/addon_data/plugin.video.milenium/Cookies', '%s_cookies.lwp' % shrink_host((base_url)))
    #control.log('control.cookieDir: %s' % (control.cookieDir))

    cj = cookielib.LWPCookieJar(cookie_file)
    try:
        cj.load(ignore_discard=True)
        cj.clear()
        cj.save(ignore_discard=True)
    except Exception as e:
        control.log('_clean_cookies: %s' % e)
        pass

    #log_utils.log('After Cookies: %s - %s' % (self, scraper_utils.cookies_as_str(cj)), log_utils.LOGDEBUG)
    return cj
예제 #34
0
파일: pierwsza.py 프로젝트: mrknow/filmkodi
def chanels():
    items = []
    try:
        result = get('/api/channels')
        result = json.loads(result)
        for i in result['channels']:
            try:
                items.append(i)
            except:
                pass
        if len(items) == 0:
            items = result
    except:
        control.log('Error pierwsza.chanels' )
        pass
    return items
예제 #35
0
def chanels():
    items = []
    try:
        result = get('/api/channels')
        result = json.loads(result)
        for i in result['channels']:
            try:
                items.append(i)
            except:
                pass
        if len(items) == 0:
            items = result
    except:
        control.log('Error pierwsza.chanels' )
        pass
    return items
예제 #36
0
파일: looknij.py 프로젝트: mrknow/filmkodi
def getstream(id):
    try:
        #if login():
        url='https://looknij.in/tv/data/%s' % id
        headers={'Referer':url, "X-Requested-With":"XMLHttpRequest"}
        params = {"isMobile":"false"}
        result =  client2.http_get(url, data=params, headers=headers)
        result = json.loads(result)
        #control.log('RES %s' % dump(result))
        if len(result)>0:
            link = result['Url']
            #control.log('RES %s' % dump(link))
            return link
        return
    except Exception as e:
        control.log('Error looknij.getstream %s' % e)
        return
예제 #37
0
파일: looknij.py 프로젝트: undg/filmkodi
def getstream(id):
    try:
        #if login():
        url = 'https://looknij.in/tv/data/%s' % id
        headers = {'Referer': url, "X-Requested-With": "XMLHttpRequest"}
        params = {"isMobile": "false"}
        result = client.request(url, post=params, headers=headers)
        result = json.loads(result)
        #control.log('RES %s' % dump(result))
        if len(result) > 0:
            link = result['Url']
            #control.log('RES %s' % dump(link))
            return link
        return
    except Exception as e:
        control.log('Error looknij.getstream %s' % e)
        return
예제 #38
0
def getstream(id):
    try:

        if login() == False:
            control.log('Błędny login')
            raise ValueError('Błędny login')

        ua = control.get_setting('telewizjada.ua')
        myheaders = {'User-Agent':ua}
        token = control.get_setting('telewizjada.token')

        mainurl = 'http://www.telewizjada.net/live.php?cid=%s' % id
        myheaders['referer']=mainurl
        sidcookie = client.request(mainurl, headers=myheaders, output='cookie')
        #control.log('SidCookie: %s' % (sidcookie))

        url='http://www.statsgather.com/activatehls/getstats.php'
        hlsresult = client.request(url, post='', headers=myheaders, cookie='hls_stats=%s' % token)
        control.log('GetSTAT Result: %s' % hlsresult)
        mastercookie = '%s;%s;%s;%s ' % (sidcookie, 'hlsplugin=%s' % token, 'cb-enabled=accepted', 'cookieView=all' )
        #control.log('MASTERCOOKIE ' + mastercookie)


        url = 'http://www.telewizjada.net/net/service/verifydevice.php'
        params = json.dumps({'action':'new', 'key':hlsresult})
        jsonmyheaders = myheaders
        jsonmyheaders['Content-Type'] = 'application/json'
        jsonmyheaders['cookie'] = mastercookie
        #result = client.request(url, post=params, headers=jsonmyheaders)
        result, h1, content, cookie10 = client.request(url, post=params, headers=jsonmyheaders,output='extended')
        refreshcookie = '%s;%s;%s;%s ' % (sidcookie, '%s' % content['Set-Cookie'].split(';')[0], 'cb-enabled=accepted', 'cookieView=all' )
        #control.log('AccessCookie: %s|%s' % (result,content['Set-Cookie']))
        control.set_setting('telewizjada.refreshcookie', refreshcookie)
        control.set_setting('telewizjada.referer',mainurl)

        result = json.loads(result)

        if result['status'] == 'Active':
            #time.sleep(1)
            control.set_setting('telewizjada.expire', result['expire'])
            expirewhen  = datetime.datetime.now() + datetime.timedelta(seconds=refreshtime)
            control.set_setting('telewizjada.tokenExpireIn', str(int(time.mktime(expirewhen.timetuple()))))

            url = 'http://www.telewizjada.net/get_channel_data.php'
            myheaders1 = {'cookie': mastercookie, 'User-Agent':ua, 'referer': mainurl}
            params = {'cid':str(id)}
            result = client.request(url, post=params, headers=myheaders1)
            result = json.loads(result)
            vidlink = '%s|Cookie=%s' % (result['channelurl'], sidcookie)
            control.log('TELEWIZJADA VID %s' % vidlink)
            return vidlink

        return None

    except Exception as e:
        control.log('Error telewizjada.net .getstream %s' % e )
예제 #39
0
파일: weeb.py 프로젝트: mrknow/filmkodi
def weebchanels():
    items = []
    try:
        result = get('/api/getChannelList')
        result = json.loads(result)

        for i in result:
            try:
                if result[i]['channel_online'] != '2': raise Exception()
                id = result[i]['channel_name']
                title = result[i]['channel_title'].encode('utf-8')

                poster = '0'
                try:
                    poster = result[i]['channel_logo_url']
                except: pass

                fanart = '0'
                try: fanart = result[i]['channel_logo_url']
                except: pass
                #fanart = fanart.encode('utf-8')

                plot = '0'
                try:
                    plot=result[i]['channel_description']
                    plot = client.replaceHTMLCodes(plot)
                except: pass
                #plot = plot.encode('utf-8')

                tagline = '0'
                try: tagline = tagline.encode('utf-8')
                except: pass
                #tagline = plot.encode('utf-8')

                #ala = {'name': title, 'id': id}
                ala={'title': title, 'originaltitle': title, 'genre': '0', 'plot': plot, 'name': title, 'tagline': tagline, 'poster': poster, 'fanart': fanart, 'id': id,'service':'weeb', 'next': ''}
                items.append(ala)
            except:
                pass
        if len(items) == 0:
            items = result
    except:
        control.log('Error weeb.chanels' )
        pass
    return items
예제 #40
0
def googletag(url):
    quality = re.compile('itag=(\d*)').findall(url)
    quality += re.compile('=m(\d*)$').findall(url)
    try: quality = quality[0]
    except: return []
    control.log('<><><><><><><><><><><><> %s <><><><><><><><><>' % quality)
    if quality in ['37', '137', '299', '96', '248', '303', '46']:
        return [{'quality': '1080p', 'url': url}]
    elif quality in ['22', '84', '136', '298', '120', '95', '247', '302', '45', '102']:
        return [{'quality': 'HD', 'url': url}]
    elif quality in ['35', '44', '135', '244', '94']:
        return [{'quality': 'SD', 'url': url}]
    elif quality in ['18', '34', '43', '82', '100', '101', '134', '243', '93']:
        return [{'quality': 'SD', 'url': url}]
    elif quality in ['5', '6', '36', '83', '133', '242', '92', '132']:
        return [{'quality': 'SD', 'url': url}]
    else:
        return []
예제 #41
0
def http_get(url, cookies=None, data=None, multipart_data=None, headers=None, allow_redirect=True, method=None, require_debrid=False, cache_limit=8):
    #control.log('--=-=-==-=-=-=- CLIENT2 url: %s' % (url))


    html = cached_http_get(url, shrink_host(url), control.DEFAULT_TIMEOUT, cookies=cookies, data=data, multipart_data=multipart_data,
                                 headers=headers, allow_redirect=allow_redirect, method=method, require_debrid=require_debrid,
                                 cache_limit=cache_limit)
    sucuri_cookie = get_sucuri_cookie(html)
    if sucuri_cookie:
        control.log('Setting sucuri cookie: %s' % (sucuri_cookie))
        if cookies is not None:
            cookies = cookies.update(sucuri_cookie)
        else:
            cookies = sucuri_cookie
        html = cached_http_get(url, shrink_host(url), control.DEFAULT_TIMEOUT, cookies=cookies, data=data, multipart_data=multipart_data,
                                     headers=headers, allow_redirect=allow_redirect, method=method, require_debrid=require_debrid,
                                     cache_limit=0)
    return html
예제 #42
0
def googletag(url):
    quality = re.compile('itag=(\d*)').findall(url)
    quality += re.compile('=m(\d*)$').findall(url)
    try: quality = quality[0]
    except: return []
    control.log('<><><><><><><><><><><><> %s <><><><><><><><><>' % quality)
    if quality in ['37', '137', '299', '96', '248', '303', '46']:
        return [{'quality': '1080p', 'url': url}]
    elif quality in ['22', '84', '136', '298', '120', '95', '247', '302', '45', '102']:
        return [{'quality': 'HD', 'url': url}]
    elif quality in ['35', '44', '135', '244', '94']:
        return [{'quality': 'SD', 'url': url}]
    elif quality in ['18', '34', '43', '82', '100', '101', '134', '243', '93']:
        return [{'quality': 'SD', 'url': url}]
    elif quality in ['5', '6', '36', '83', '133', '242', '92', '132']:
        return [{'quality': 'SD', 'url': url}]
    else:
        return []
예제 #43
0
파일: yoy.py 프로젝트: anopid/filmkodi
def getstream(id):
    login()
    try:
        url = 'http://yoy.tv/channels/%s' % id
        result = client2.http_get(url)
        if '<title>Kup konto premium w portalu yoy.tv</title>' in result:
            control.infoDialog(control.lang(30485).encode('utf-8'))
            return None

        #control.log('r %s' % result)
        result = client.parseDOM(result, 'param', ret='value', attrs={'name': 'FlashVars'})[0].encode('utf-8')
        result = dict(urlparse.parse_qsl(result))
        myplaypath='%s?email=%s&secret=%s&hash=%s' %(result['cid'],result['email'],result['secret'],result['hash'])
        myurl = result['fms'].replace('/yoy','')  + ' app=yoy/_definst_ playpath=' + myplaypath +' swfUrl=http://yoy.tv/playerv3a.swf' \
        ' swfVfy=true tcUrl='+result['fms']+'/_definst_ live=true pageUrl='+url
        return myurl

    except Exception as e:
        control.log('Error yoy.getstream %s' % e)
예제 #44
0
def login():
    #if getYoyCredentialsInfo() == False:
    #    raise Exception()
    try:
        params = {}
        url = 'http://yoy.tv/signin'
        result = client2.http_get(url)
        params['remember_me']='1'
        params['email'] = control.get_setting('yoytv.user')
        params['password'] = control.get_setting('yoytv.pass')
        params['_token']=client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0]
        result = client2.http_get(url, data=params)
        #control.set_setting('videostar.sess', result)
        '<a class="dropdown-toggle" href="http://yoy.tv/signout">Wyloguj się'
        if not 'http://yoy.tv/signout' in result:
            control.log('BBBBB LOGIN %s' % 'yoy.tv')
            control.infoDialog(control.lang(30484).encode('utf-8'))
    except:
        pass
예제 #45
0
파일: yoy.py 프로젝트: rrosajp/filmkodi
def getchanels():
    try:
        if getYoyCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40004).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'YOY', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')):
                control.openSettings('1.21')
            raise Exception()
        #login()
        items = []
        for j in range(1,10):
            try:
                url = 'http://yoy.tv/channels?live=1&country=140&page=%s' % j
                result = client.request(url)
                result = client.parseDOM(result, 'a', attrs = {'class': 'thumb-info team'})
                result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result]
                for i in result:
                    item = {}
                    item['id'] = i[0].replace('http://yoy.tv/channel/covers/','').replace('.jpg?cache=32','')
                    control.log('YOY channel %s' % item['id'])
                    item['id']=item['id'].encode('utf-8')
                    item['title'] = control.trans(i[1].upper().encode('utf-8'))
                    items.append(item)
            except:
                control.log('YOY url: %s' % url)
                pass

        if 'true'== control.get_setting('xxxmode'):
            url = 'http://yoy.tv/channels?category=erotyka'
            result = client.request(url)
            result = client.parseDOM(result, 'a', attrs = {'class': 'thumb-info team'})
            result = [(client.parseDOM(i, 'img', ret='src')[0], client.parseDOM(i, 'img', ret='alt')[0]) for i in result]
            for i in result:
                control.log('XXX: %s' %i[0])
                item = {}
                item['id'] = i[0].replace('http://yoy.tv/channel/covers/','').replace('.jpg?cache=32','')
                control.log('XXX Alina %s' % item['id'])
                item['id']=item['id'].encode('utf-8')
                item['title'] = 'XXX '+ control.trans(i[1].upper().encode('utf-8'))
                items.append(item)

        return items
    except Exception as e:
        control.log('Error yoy.getchanels %s' % e)
예제 #46
0
def getstream(id):
    try:
        url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id
        result = get(url)
        result = json.loads(result)
        if result['status'] == 'ok':
            url = result['stream_channel']['url_base']
            result = client.request(
                url,
                headers=headers,
                cookie=control.get_setting('videostar.sess'),
                output='geturl')
            return result

        raise Exception()
    except:
        #control.openSettings('6.1')
        control.log(
            'ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ'
        )
예제 #47
0
파일: wizja.py 프로젝트: anopid/filmkodi
def getstream(id):
    try:
        if login():
            ref='http://wizja.tv/watch.php?id=%s' % id
            result =  client2.http_get(ref)
            headers={'Referer':ref}
            url = 'http://wizja.tv/porter.php?ch=%s' % id
            result =  client2.http_get(url, headers=headers)
            mylink = re.compile('src: "(.*?)"').findall(result)
            if len(mylink)>0:
                rtmp2 = urllib.unquote(mylink[0]).decode('utf8')
                rtmp1 = re.compile('rtmp://(.*?)/(.*?)/(.*?)\?(.*?)\&streamType').findall(rtmp2)
                rtmp = 'rtmp://' + rtmp1[0][0] + '/' + rtmp1[0][1] +'/' +rtmp1[0][2]+ '?'+ rtmp1[0][3]+ ' app=' + rtmp1[0][1] + '?' +rtmp1[0][3]+' swfVfy=1 flashver=WIN\\2020,0,0,306 timeout=25 swfUrl=http://wizja.tv/player/StrobeMediaPlayback.swf live=true pageUrl='+ref
                return rtmp
            else:
                raise Exception()
        else:
            return
    except Exception as e:
        control.log('Error wizja.login %s' % e)
예제 #48
0
파일: yoy.py 프로젝트: undg/filmkodi
def yoylogin():
    if getYoyCredentialsInfo() == False:
        raise ValueError('Brak ustawienia logiun lub hasła ')
    try:

        params = {}
        url = 'http://yoy.tv/signin'
        result, headers, content, cookie = client.request(url,
                                                          output='extended')

        params['remember_me'] = '1'
        params['email'] = control.get_setting('yoytv.user')
        params['password'] = control.get_setting('yoytv.pass')
        params['_token'] = client.parseDOM(result,
                                           'input',
                                           ret='value',
                                           attrs={'name': '_token'})[0]
        result1, headers, content, cookie = client.request(url,
                                                           post=params,
                                                           cookie=cookie,
                                                           output='extended',
                                                           redirect=False)
        mycookies = re.findall('Set-Cookie: (.*?);', '%s' % content)
        cookie = ";".join(mycookies)
        control.set_setting('yoytv.sess', cookie)
        control.log('#####   cookie1: %s' % cookie)
        url = 'http://yoy.tv/'
        result = client.request(url, cookie=cookie)

        if not 'http://yoy.tv/signout' in result:
            control.log('BBBBB LOGIN %s' % 'yoy.tv')
            control.infoDialog(control.lang(30484).encode('utf-8'))
            control.dialog.ok(
                control.addonInfo('name') + ' - YOY TV',
                control.lang(30484).encode('utf-8'), '')
            control.openSettings('1.12')
            return False
        else:
            url = 'http://yoy.tv/user/settings'
            result = client.request(url, cookie=cookie)
            premium = re.findall('Aktywne do: ([0-9 :-]+)', result)
            if len(premium) > 0:
                control.log('CCCCC LOGIN %s' % premium)
                control.infoDialog(
                    control.lang(30496) + premium[0].encode('utf-8'))

            return True

    except Exception as e:
        control.log('Yoylogin ERROR %s' % e)
        return False
예제 #49
0
파일: looknij.py 프로젝트: mrknow/filmkodi
def login():
    try:
        if getLooknijCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40008).encode('utf-8'), control.lang(30481).encode('utf-8'), '',
                                   'Looknij', control.lang(30483).encode('utf-8'),
                                   control.lang(30482).encode('utf-8')):
                control.openSettings('1.4')
            raise Exception()


        params = {}
        #url = 'http://itivi.pl/include/login.php'
        #params['log'] = control.get_setting('itivi.user')
        #params['pwd'] = control.get_setting('itivi.pass')
        #result = client2.http_get(url, data=params)

        return True

    except Exception as e:
        control.log('Error wizja.login %s' % e)
        return False
예제 #50
0
파일: weeb.py 프로젝트: mrknow/filmkodi
def getstream(id):
    try:
        params={}
        params['channel']=id
        url = '/api/setPlayer'
        result = get(url, params)
        result = dict(urlparse.parse_qsl(result))
        playPath = result['11']
        bitrate = result['20']
        token = result['73']
        if bitrate == '1':
            playPath = playPath + 'HI'

        rtmp = str(result['10']) + '/' + playPath + ' live=true pageUrl=token swfUrl=' + token

        return rtmp

        raise Exception()
    except:
        #control.openSettings('6.1')
        control.log('Error weeb.getstream' )
예제 #51
0
def getstream(id):
    try:
        pl_proxy = control.setting('pl_proxy')
        pl_proxy_port = control.setting('pl_proxy_port')


        url = 'https://api.videostar.pl/channels/get/%s?format_id=2' % id
        result = get(url,pl_proxy)
        control.log('Z %s' % result)
        result = json.loads(result)


        if result['status'] == 'ok':
            url = result['stream_channel']['url_base']
            result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess'), output='geturl')
            return result
        if result['status'] == 'error':
            if result['errors'][0]['code'] == 300:
                params = {'t':result['errors'][0]['data']['stream_token'] }
                res = get('/channels/close', headers=headers, cookie=control.get_setting('videostar.sess'), post=params)
                control.log('Z %s' % result)
                return getstream(id)

            else:
                control.infoDialog('%s' % result['errors'][0]['msg'].encode('utf-8'))
                control.dialog.ok(control.addonInfo('name'), result['errors'][0]['msg'].encode('utf-8'), '')

        raise Exception()
    except:
        #control.openSettings('6.1')
        control.log('ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ' )
예제 #52
0
파일: yoy.py 프로젝트: anopid/filmkodi
def login():
    #if getYoyCredentialsInfo() == False:
    #    raise Exception()
    try:
        params = {}
        url = 'http://yoy.tv/signin'
        result = client2.http_get(url)
        params['remember_me']='1'
        params['email'] = control.get_setting('yoytv.user')
        params['password'] = control.get_setting('yoytv.pass')
        params['_token']=client.parseDOM(result, 'input', ret='value', attrs={'name': '_token'})[0]
        result = client2.http_get(url, data=params)
        #control.set_setting('videostar.sess', result)
        '<a class="dropdown-toggle" href="http://yoy.tv/signout">Wyloguj się'
        if not 'http://yoy.tv/signout' in result:
            control.log('BBBBB LOGIN %s' % 'yoy.tv')

            control.infoDialog(control.lang(30484).encode('utf-8'))


    except:
        pass
예제 #53
0
def get(url, params={}):
    try:
        if getVideostarCredentialsInfo() == False:
            if control.yesnoDialog(control.lang(40001).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')):
                control.openSettings('2.3')
            raise Exception()

        url = urlparse.urljoin('https://api.videostar.pl', url)
        result = client.request(url, headers=headers, cookie=control.get_setting('videostar.sess'))
        r = json.loads(result)

        if r['status'] =="error" or result==None:
            if r['errors'][0]['code'] == 1:
                login()
                control.sleep(500)
                mycookie = control.get_setting('videostar.sess')
                result = client.source(url, headers=headers, cookie=control.get_setting('videostar.sess'))

        return result
    except Exception as e:
        control.log('Error videostar.get %s' % e)
        pass
예제 #54
0
파일: pierwsza.py 프로젝트: mrknow/filmkodi
def streamrefresh():
    try:
        #mynow = int(datetime.datetime.now().strftime('%s'))
        mynow = int(str(int(time.mktime(datetime.datetime.now().timetuple()))))
        expired = int(control.get_setting('pierwszatv.tokenExpireIn'))
        #control.log('XXXX Exp:%s Now:%s' % (expired, mynow))

        if mynow>expired:
            control.log('Pierwsza refresh')
            url = '/api/stream/refresh'
            params = {}
            params['serverId'] =control.get_setting('pierwszatv.serverId')
            params['streamId'] =control.get_setting('pierwszatv.streamId')
            params['token'] = control.get_setting('pierwszatv.token')
            result = get(url, params)
            result = json.loads(result)
            expirein = int(int(result['tokenExpireIn'])*0.75)
            expirewhen = datetime.datetime.now() + datetime.timedelta(seconds=expirein)
            control.set_setting('pierwszatv.tokenExpireIn', str(int(time.mktime(expirewhen.timetuple()))))
    except Exception as e:
        control.log('Error pierwsza.refresh %s' % e )
        raise Exception()