Beispiel #1
0
    def authenticate(self, username, password):

        if not self.is_authenticated() and (username and password):
            control.log('username/password set. trying to authenticate')
            self.credentials = self._authenticate(username, password)
            if self.is_authenticated():
                control.log('successfully authenticated')
                self._save_credentials()
            else:
                control.log('wrong username or password')
                message = '[%s] %s' % (self.__class__.__name__, control.lang(32003))
                control.infoDialog(message, icon='ERROR')
                return None
        elif self.is_authenticated():
            control.log('already authenticated')
        else:
            control.log_warning('no username set to authenticate')
            message = 'Missing user credentials'
            control.infoDialog(message, icon='ERROR')
            control.openSettings()
            return None

        control.log(repr(self.credentials))

        return self.credentials
Beispiel #2
0
def toggleAll(setting, query=None, sourceList=None):
    from resources.lib.sources import getAllHosters
    sourceList = getAllHosters() if not sourceList else sourceList
    for i in sourceList:
        source_setting = 'provider.' + i
        control.setSetting(source_setting, setting)
    control.openSettings(query)
Beispiel #3
0
    def root(self):
        popup      = control.setting('popup.date')
        print ("POPUP DATE", popup)
        validAccount = debrid.realdebrid().accountInfo()
        
        if not validAccount:
            from resources.lib.modules import deviceAuthDialog
            authDialog = deviceAuthDialog.DonationDialog('firstrun_RD.xml', xbmcaddon.Addon().getAddonInfo('path'), code='', url='')
            authDialog.doModal()
            del authDialog  
            control.openSettings('0.0')
            sys.exit()
        elif (popup == '0' or ((int(timeNow) - int(popup)) > 30) or popup == None):
            from resources.lib.modules import deviceAuthDialog
            authDialog = deviceAuthDialog.DonationDialog('donations.xml', xbmcaddon.Addon().getAddonInfo('path'), code='', url='')
            authDialog.doModal()
            del authDialog  
            control.setSetting(id='popup.date', value=timeNow)  
        #self.addDirectoryItem('TEST', 'testItem', 'movies.png', 'DefaultMovies.png')
        self.addDirectoryItem('Cloud Browser', 'rdNavigator', 'cloud.png', 'DefaultAddonProgram.png')

        #self.addDirectoryItem('Lists', 'browse_nav', 'cloud.png', 'DefaultAddonProgram.png')
        #self.addDirectoryItem('Download Manager', 'download_manager', 'cloud.png', 'DefaultAddonProgram.png')   
        #self.addDirectoryItem('RSS Manager', 'rss_manager_nav', 'cloud.png', 'DefaultAddonProgram.png')     
        self.addDirectoryItem(32008, 'toolNavigator', 'settings.png', 'DefaultAddonProgram.png')
        self.addDirectoryItem('[I]Support and Donations[/I]', 'donations', 'support.png', 'DefaultAddonProgram.png', isFolder=False)
        self.endDirectory()
Beispiel #4
0
def authTrakt():
    try:
        if getTraktCredentialsInfo() == True:
            if control.yesnoDialog(
                    control.lang(32511).encode('utf-8'),
                    control.lang(32512).encode('utf-8'), '', 'Trakt'):
                control.setSetting(id='trakt.user', value='')
                control.setSetting(id='trakt.user2', value='')
                control.setSetting(id='trakt.token', value='')
                control.setSetting(id='trakt.refresh', value='')
            raise Exception()
        result = getTraktAsJson('/oauth/device/code',
                                {'client_id': V2_API_KEY})
        verification_url = (control.lang(32513) %
                            result['verification_url']).encode('utf-8')
        user_code = (control.lang(32514) % result['user_code']).encode('utf-8')
        expires_in = int(result['expires_in'])
        device_code = result['device_code']
        interval = result['interval']
        progressDialog = control.progressDialog
        progressDialog.create('Trakt', verification_url, user_code)
        for i in range(0, expires_in):
            try:
                if progressDialog.iscanceled():
                    break
                time.sleep(1)
                if not float(i) % interval == 0:
                    raise Exception()
                r = getTraktAsJson(
                    '/oauth/device/token', {
                        'client_id': V2_API_KEY,
                        'client_secret': CLIENT_SECRET,
                        'code': device_code
                    })
                if 'access_token' in r:
                    break
            except:
                pass
        try:
            progressDialog.close()
        except:
            pass
        token, refresh = r['access_token'], r['refresh_token']
        headers = {
            'Content-Type': 'application/json',
            'trakt-api-key': V2_API_KEY,
            'trakt-api-version': 2,
            'Authorization': 'Bearer %s' % token
        }
        result = client.request(urlparse.urljoin(BASE_URL, '/users/me'),
                                headers=headers)
        result = utils.json_loads_as_str(result)
        user = result['username']
        control.setSetting(id='trakt.user', value=user)
        control.setSetting(id='trakt.user2', value=user)
        control.setSetting(id='trakt.token', value=token)
        control.setSetting(id='trakt.refresh', value=refresh)
        raise Exception()
    except:
        control.openSettings('7.6')
Beispiel #5
0
def checkinfo():

    validAccount = premiumize.validAccount()

    firstSetup = control.setting('first.setup')
    popup = control.setting('popup.date')

    if not validAccount:
        from resources.lib.modules import deviceAuthDialog
        authDialog = deviceAuthDialog.DonationDialog(
            'firstrun.xml',
            xbmcaddon.Addon().getAddonInfo('path'),
            code='',
            url='')
        authDialog.doModal()
        del authDialog
        control.openSettings('0.0')

    elif (popup == '0' or ((int(timeNow) - int(popup)) > 30)):
        from resources.lib.modules import deviceAuthDialog
        authDialog = deviceAuthDialog.DonationDialog(
            'donations.xml',
            xbmcaddon.Addon().getAddonInfo('path'),
            code='',
            url='')
        authDialog.doModal()
        del authDialog
        control.setSetting(id='popup.date', value=timeNow)
Beispiel #6
0
def rdAuthorize():
    try:
        CLIENT_ID = 'X245A4XAIBGVM'
        USER_AGENT = 'Kodi Exodus/3.0'

        if not '' in credentials()['realdebrid'].values():
            if control.yesnoDialog(control.lang(30411).encode('utf-8'), control.lang(30413).encode('utf-8'), '', 'RealDebrid', control.lang(30415).encode('utf-8'), control.lang(30414).encode('utf-8')):
                control.setSetting(id='realdebrid.id', value='')
                control.setSetting(id='realdebrid.secret', value='')
                control.setSetting(id='realdebrid.token', value='')
                control.setSetting(id='realdebrid.refresh', value='')
                control.setSetting(id='realdebrid.auth', value='')
            raise Exception()

        headers = {'User-Agent': USER_AGENT}
        url = 'https://api.real-debrid.com/oauth/v2/device/code?client_id=%s&new_credentials=yes' % (CLIENT_ID)
        result = client.request(url, headers=headers)
        result = json.loads(result)
        verification_url = (control.lang(30416) + '[COLOR skyblue]%s[/COLOR]' % result['verification_url']).encode('utf-8')
        user_code = (control.lang(30417) + '[COLOR skyblue]%s[/COLOR]' % result['user_code']).encode('utf-8')
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('RealDebrid', verification_url, user_code)

        for i in range(0, 3600):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                url = 'https://api.real-debrid.com/oauth/v2/device/credentials?client_id=%s&code=%s' % (CLIENT_ID, device_code)
                result = client.request(url, headers=headers, error=True)
                result = json.loads(result)
                if 'client_secret' in result: break
            except:
                pass

        try: progressDialog.close()
        except: pass

        id, secret = result['client_id'], result['client_secret'] 

        url = 'https://api.real-debrid.com/oauth/v2/token'
        post = urllib.urlencode({'client_id': id, 'client_secret': secret, 'code': device_code, 'grant_type': 'http://oauth.net/grant_type/device/1.0'})

        result = client.request(url, post=post, headers=headers)
        result = json.loads(result)

        token, refresh = result['access_token'], result['refresh_token']

        control.setSetting(id='realdebrid.id', value=id)
        control.setSetting(id='realdebrid.secret', value=secret)
        control.setSetting(id='realdebrid.token', value=token)
        control.setSetting(id='realdebrid.refresh', value=refresh)
        control.setSetting(id='realdebrid.auth', value='*************')
        raise Exception()
    except:
        control.openSettings('3.13')
Beispiel #7
0
def rdAuthorize():
    try:
        CLIENT_ID = 'X245A4XAIBGVM'
        USER_AGENT = 'Kodi zen/3.0'

        if not '' in credentials()['realdebrid'].values():
            if control.yesnoDialog(control.lang(32531).encode('utf-8'), control.lang(32532).encode('utf-8'), '', 'RealDebrid'):
                control.setSetting(id='realdebrid.id', value='')
                control.setSetting(id='realdebrid.secret', value='')
                control.setSetting(id='realdebrid.token', value='')
                control.setSetting(id='realdebrid.refresh', value='')
                control.setSetting(id='realdebrid.auth', value='')
            raise Exception()

        headers = {'User-Agent': USER_AGENT}
        url = 'https://api.real-debrid.com/oauth/v2/device/code?client_id=%s&new_credentials=yes' % (CLIENT_ID)
        result = client.request(url, headers=headers)
        result = json.loads(result)
        verification_url = (control.lang(32533) % result['verification_url']).encode('utf-8')
        user_code = (control.lang(32534) % result['user_code']).encode('utf-8')
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('RealDebrid', verification_url, user_code)

        for i in range(0, 3600):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                url = 'https://api.real-debrid.com/oauth/v2/device/credentials?client_id=%s&code=%s' % (CLIENT_ID, device_code)
                result = client.request(url, headers=headers, error=True)
                result = json.loads(result)
                if 'client_secret' in result: break
            except:
                pass

        try: progressDialog.close()
        except: pass

        id, secret = result['client_id'], result['client_secret'] 

        url = 'https://api.real-debrid.com/oauth/v2/token'
        post = urllib.urlencode({'client_id': id, 'client_secret': secret, 'code': device_code, 'grant_type': 'http://oauth.net/grant_type/device/1.0'})

        result = client.request(url, post=post, headers=headers)
        result = json.loads(result)

        token, refresh = result['access_token'], result['refresh_token']

        control.setSetting(id='realdebrid.id', value=id)
        control.setSetting(id='realdebrid.secret', value=secret)
        control.setSetting(id='realdebrid.token', value=token)
        control.setSetting(id='realdebrid.refresh', value=refresh)
        control.setSetting(id='realdebrid.auth', value='*************')
        raise Exception()
    except:
        control.openSettings('3.16')
Beispiel #8
0
def colorChoicePI():
    selectList = []
    for i in colorChart:
        selectList.append(colorStringPI(i, i))
    color = control.selectDialog(selectList)
    if color == -1: return
    control.setSetting('prem.identify', colorChart[color])
    control.openSettings(query='2.3')
Beispiel #9
0
def colorChoiceUI():
    selectList = []
    for i in colorChart:
        selectList.append(colorStringUI(i, i))
    color = control.selectDialog(selectList)
    if color == -1: return
    control.setSetting('unaired.identify', colorChart[color])
    control.openSettings(query='0.16')
Beispiel #10
0
 def accountCheck(self):
     if traktCredentials == False:
         control.idle()
         control.infoDialog(control.lang(32042).encode('utf-8'),
                            sound=True,
                            icon='WARNING')
         control.openSettings('2.12')
         sys.exit()
Beispiel #11
0
    def onClick(self, control):
        logger.debug('onClick: %s' % (control))

        if control == LATER_BUTTON:
            import webbrowser
            link = 'http://real-debrid.com/?id=915002'
            webbrowser.open(link, autoraise=True, new=2)

        if control == NEVER_BUTTON:
            from resources.lib.modules import control
            control.openSettings('0.0')

        if control in [LATER_BUTTON, NEVER_BUTTON]:
            self.close()
Beispiel #12
0
    def onClick(self, control):
        logger.debug('onClick: %s' % (control))

        if control == LATER_BUTTON:
            import webbrowser
            link = 'https://www.premiumize.me/ref/947927388'
            webbrowser.open(link, autoraise = True, new = 2)			

        if control == NEVER_BUTTON:
			from resources.lib.modules import control as AddonControl
			AddonControl.openSettings('0.0')

        if control in [LATER_BUTTON, NEVER_BUTTON]:
            self.close()
Beispiel #13
0
def authTrakt():
    try:
        if getTraktCredentialsInfo() == True:
            if control.yesnoDialog(control.lang(30479).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')):
                control.setSetting(id='trakt.user', value='')
                control.setSetting(id='trakt.token', value='')
                control.setSetting(id='trakt.refresh', value='')
            raise Exception()

        result = getTrakt('/oauth/device/code', {'client_id': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa'})
        result = json.loads(result)
        verification_url = (control.lang(30416) + '[COLOR skyblue]%s[/COLOR]' % result['verification_url']).encode('utf-8')
        user_code = (control.lang(30417) + '[COLOR skyblue]%s[/COLOR]' % result['user_code']).encode('utf-8')
        expires_in = int(result['expires_in'])
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('Trakt', verification_url, user_code)

        for i in range(0, expires_in):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                r = getTrakt('/oauth/device/token', {'client_id': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'client_secret': '90a1840447a1e39d350023263902fe7010338d19789e6260f18df56a8b07a68a', 'code': device_code})
                r = json.loads(r)
                if 'access_token' in r: break
            except:
                pass

        try: progressDialog.close()
        except: pass

        token, refresh = r['access_token'], r['refresh_token']

        headers = {'Content-Type': 'application/json', 'trakt-api-key': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'trakt-api-version': '2', 'Authorization': 'Bearer %s' % token}

        result = client.request('http://api-v2launch.trakt.tv/users/me', headers=headers)
        result = json.loads(result)

        user = result['username']

        control.setSetting(id='trakt.user', value=user)
        control.setSetting(id='trakt.token', value=token)
        control.setSetting(id='trakt.refresh', value=refresh)
        raise Exception()
    except:
        control.openSettings('3.1')
Beispiel #14
0
def authTrakt():
    try:
        if getTraktCredentialsInfo() == True:
            if control.yesnoDialog(control.lang(32511).encode('utf-8'), control.lang(32512).encode('utf-8'), '', 'Trakt'):
                control.setSetting(id='trakt.user', value='')
                control.setSetting(id='trakt.token', value='')
                control.setSetting(id='trakt.refresh', value='')
            raise Exception()

        result = getTrakt('/oauth/device/code', {'client_id': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa'})
        result = json.loads(result)
        verification_url = (control.lang(32513) % result['verification_url']).encode('utf-8')
        user_code = (control.lang(32514) % result['user_code']).encode('utf-8')
        expires_in = int(result['expires_in'])
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('Trakt', verification_url, user_code)

        for i in range(0, expires_in):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                r = getTrakt('/oauth/device/token', {'client_id': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'client_secret': '90a1840447a1e39d350023263902fe7010338d19789e6260f18df56a8b07a68a', 'code': device_code})
                r = json.loads(r)
                if 'access_token' in r: break
            except:
                pass

        try: progressDialog.close()
        except: pass

        token, refresh = r['access_token'], r['refresh_token']

        headers = {'Content-Type': 'application/json', 'trakt-api-key': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'trakt-api-version': '2', 'Authorization': 'Bearer %s' % token}

        result = client.request('http://api-v2launch.trakt.tv/users/me', headers=headers)
        result = json.loads(result)

        user = result['username']

        control.setSetting(id='trakt.user', value=user)
        control.setSetting(id='trakt.token', value=token)
        control.setSetting(id='trakt.refresh', value=refresh)
        raise Exception()
    except:
        control.openSettings('3.1')
Beispiel #15
0
def authTrakt():
    try:
        if getTraktCredentialsInfo() == True:
            if control.yesnoDialog('An account already exists.', 'Do you want to reset?', '', 'Trakt'):
                control.setSetting(id='trakt.user', value='')
                control.setSetting(id='trakt.token', value='')
                control.setSetting(id='trakt.refresh', value='')
            raise Exception()

        result = getTrakt('/oauth/device/code', {'client_id': '3b76e1b99fa4a5b27f63e04307754751514d88916195ea8abc1c48eeef68f0d9'})
        result = json.loads(result)
        verification_url = ('1) Visit : [COLOR skyblue]%s[/COLOR]' % result['verification_url']).encode('utf-8')
        user_code = ('2) When prompted enter : [COLOR skyblue]%s[/COLOR]' % result['user_code']).encode('utf-8')
        expires_in = int(result['expires_in'])
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('Trakt', verification_url, user_code)

        for i in range(0, expires_in):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                r = getTrakt('/oauth/device/token', {'client_id': '3b76e1b99fa4a5b27f63e04307754751514d88916195ea8abc1c48eeef68f0d9', 'client_secret': 'b0be7e72b647bcb44f2846b29729028e5d75fa710b91812027ae79cc48456a16', 'code': device_code})
                r = json.loads(r)
                if 'access_token' in r: break
            except:
                pass

        try: progressDialog.close()
        except: pass

        token, refresh = r['access_token'], r['refresh_token']

        headers = {'Content-Type': 'application/json', 'trakt-api-key': '3b76e1b99fa4a5b27f63e04307754751514d88916195ea8abc1c48eeef68f0d9', 'trakt-api-version': '2', 'Authorization': 'Bearer %s' % token}

        result = client.request('http://api-v2launch.trakt.tv/users/me', headers=headers)
        result = json.loads(result)

        user = result['username']

        control.setSetting(id='trakt.user', value=user)
        control.setSetting(id='trakt.token', value=token)
        control.setSetting(id='trakt.refresh', value=refresh)
        raise Exception()
    except:
        control.openSettings('0.1')
Beispiel #16
0
def restoreFolder():
    names = []
    links = []
    zipFolder = control.setting('restore.path')
    if zipFolder == '' or zipFolder == None:
        control.infoDialog('Please Setup a Zip Files Location first')
        control.openSettings(query='2.0')
        return
    for zipFile in os.listdir(zipFolder):
        if zipFile.endswith(".zip"):
            url = xbmc.translatePath(os.path.join(zipFolder, zipFile))
            names.append(zipFile)
            links.append(url)
    select = control.selectDialog(names)
    if select != -1: restore(links[select])
Beispiel #17
0
def backup(mode='full'):
    KODIV = control.get_Kodi_Version()
    backupdir = control.setting('download.path')
    if backupdir == '' or backupdir == None:
        control.infoDialog('Please Setup a Path for Downlads first')
        control.openSettings(query='1.3')
        return
    if mode == 'full':
        defaultName = "kodi_backup"
        BACKUPDATA = HOME
        FIX_SPECIAL()
    elif mode == 'userdata':
        defaultName = "kodi_userdata"
        BACKUPDATA = USERDATA
    else:
        return
    if os.path.exists(BACKUPDATA):
        if not backupdir == '':
            name = control.get_keyboard(default=defaultName,
                                        heading='Name your Backup')
            today = datetime.now().strftime('%Y%m%d%H%M')
            today = re.sub('[^0-9]', '', str(today))
            zipDATE = "_%s.zip" % today
            name = re.sub(' ', '_', name) + zipDATE
            backup_zip = control.transPath(os.path.join(backupdir, name))
            exclude_database = [
                'Textures13.db', '.DS_Store', 'advancedsettings.xml',
                'Thumbs.db', '.gitignore'
            ]
            try:
                maintenance.clearCache(mode='silent')
                #maintenance.deleteThumbnails(mode='silent')
                #maintenance.purgePackages(mode='silent')
            except:
                pass
            exclude_dirs = [
                '.git', '.idea', 'packages', 'backupdir', 'cache', 'system',
                'Thumbnails', 'peripheral_data', 'temp', 'My_Builds',
                'keymaps', 'cdm'
            ]
            CreateZip(BACKUPDATA, backup_zip, 'Creating Backup',
                      'Backing up files', exclude_dirs, exclude_database)
            dialog.ok(AddonTitle, 'Backup complete', '', '')
        else:
            dialog.ok(
                AddonTitle,
                'No backup location found. Please setup your Backup location',
                '', '')
Beispiel #18
0
    def root(self):
        from resources.lib.api import premiumize
        validAccount = premiumize.validAccount()
        if not validAccount:
            from resources.lib.modules import deviceAuthDialog
            authDialog = deviceAuthDialog.DonationDialog(
                'firstrun.xml',
                xbmcaddon.Addon().getAddonInfo('path'),
                code='',
                url='')
            authDialog.doModal()
            del authDialog
            control.openSettings('0.0')
            sys.exit()
        elif (popup == '0' or ((int(timeNow) - int(popup)) > 30)):
            from resources.lib.modules import deviceAuthDialog
            authDialog = deviceAuthDialog.DonationDialog(
                'donations.xml',
                xbmcaddon.Addon().getAddonInfo('path'),
                code='',
                url='')
            authDialog.doModal()
            del authDialog
            control.setSetting(id='popup.date', value=timeNow)
        #self.addDirectoryItem('TEST', 'testItem', 'movies.png', 'DefaultMovies.png')
        self.addDirectoryItem('Search Cloud', 'premiumizeSearch', 'cloud.png',
                              'DefaultMovies.png')
        self.addDirectoryItem('Meta Cloud', 'meta_cloud', 'cloud.png',
                              'DefaultTVShows.png')
        #        self.addDirectoryItem('Meta Library', 'libraryNavigator',
        #                              'cloud.png', 'DefaultMovies.png', isFolder=True)
        self.addDirectoryItem(50001, 'premiumizeNavigator', 'cloud.png',
                              'DefaultTVShows.png')
        self.addDirectoryItem('Lists', 'browse_nav', 'cloud.png',
                              'DefaultTVShows.png')

        downloads = True if control.setting('downloads') == 'true' else False
        if downloads == True:
            self.addDirectoryItem('Download Manager', 'download_manager',
                                  'cloud.png', 'DefaultTVShows.png')
        self.addDirectoryItem(32008, 'toolNavigator', 'settings.png',
                              'DefaultAddonProgram.png')
        self.addDirectoryItem('[I]Support and Donations[/I]',
                              'donations',
                              'support.png',
                              'DefaultAddonProgram.png',
                              isFolder=False)
        self.endDirectory()
Beispiel #19
0
def authTrakt():
    try:
        if getTraktCredentialsInfo() == True:
            if control.yesnoDialog(control.lang(32511).encode('utf-8'), control.lang(32512).encode('utf-8'), '', 'Trakt'):
                control.setSetting(id='trakt.user', value='')
                control.setSetting(id='trakt.token', value='')
                control.setSetting(id='trakt.refresh', value='')
            raise Exception()

        result = getTraktAsJson('/oauth/device/code', {'client_id': V2_API_KEY})
        verification_url = (control.lang(32513) % result['verification_url']).encode('utf-8')
        user_code = (control.lang(32514) % result['user_code']).encode('utf-8')
        expires_in = int(result['expires_in'])
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('Trakt', verification_url, user_code)

        for i in range(0, expires_in):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                r = getTraktAsJson('/oauth/device/token', {'client_id': V2_API_KEY, 'client_secret': CLIENT_SECRET, 'code': device_code})
                if 'access_token' in r: break
            except:
                pass

        try: progressDialog.close()
        except: pass

        token, refresh = r['access_token'], r['refresh_token']

        headers = {'Content-Type': 'application/json', 'trakt-api-key': V2_API_KEY, 'trakt-api-version': 2, 'Authorization': 'Bearer %s' % token}


        result = client.request(urlparse.urljoin(BASE_URL, '/users/me'), headers=headers)
        result = utils.json_loads_as_str(result)

        user = result['username']

        control.setSetting(id='trakt.user', value=user)
        control.setSetting(id='trakt.token', value=token)
        control.setSetting(id='trakt.refresh', value=refresh)
        raise Exception()
    except:
        control.openSettings('3.1')
def set_reuselanguageinvoker():
    try:
        addon_xml = control.joinPath(control.addonPath('plugin.video.dg'),
                                     'addon.xml')
        tree = ET.parse(addon_xml)
        root = tree.getroot()
        for item in root.iter('reuselanguageinvoker'):
            current_value = str(item.text)
        if current_value:
            new_value = 'true' if current_value == 'false' else 'false'
            if not control.yesnoDialog(
                    control.lang(33018) % (current_value, new_value), '', ''):
                return control.openSettings(query='12.6')
            if new_value == 'true':
                if not control.yesnoDialog(control.lang(33019), '', ''): return
            item.text = new_value
            hash_start = gen_file_hash(addon_xml)
            tree.write(addon_xml)
            hash_end = gen_file_hash(addon_xml)
            if hash_start != hash_end:
                control.setSetting('reuse.languageinvoker', new_value)
                control.okDialog(
                    message='%s\n%s' %
                    (control.lang(33017) % new_value, control.lang(33020)))
            else:
                return control.okDialog(message=33021)
            current_profile = control.infoLabel('system.profilename')
            control.execute('LoadProfile(%s)' % current_profile)
    except:
        from resources.lib.modules import log_utils
        log_utils.error()
Beispiel #21
0
def backup(mode='full'):
    KODIV = get_Kodi_Version()

    backupdir = control.setting('download.path')
    if backupdir == '' or backupdir == None:
        control.infoDialog('Please Setup a Path for Downlads first')
        control.openSettings(query='1.3')
        return

    if mode == 'full':
        defaultName = "kodi_backup"
        BACKUPDATA = control.HOME
        FIX_SPECIAL()
    elif mode == 'userdata':
        defaultName = "kodi_settings"
        BACKUPDATA = control.USERDATA
    else:
        return
    if os.path.exists(BACKUPDATA):
        if not backupdir == '':
            name = _get_keyboard(default=defaultName,
                                 heading='Name your Backup')
            today = datetime.now().strftime('%Y%m%d%H%M')
            today = re.sub('[^0-9]', '', str(today))
            zipDATE = "_%s.zip" % today
            name = re.sub(' ', '_', name) + zipDATE
            backup_zip = xbmc.translatePath(os.path.join(backupdir, name))
            exclude_database = ['.pyo', '.log']

            try:
                maintenance.clearCache(mode='silent')
                maintenance.deleteThumbnails(mode='silent')
                maintenance.purgePackages(mode='silent')
            except:
                pass

            exclude_dirs = ['']
            CreateZip(BACKUPDATA, backup_zip, 'Creating Backup',
                      'Backing up files', exclude_dirs, exclude_database)
            dialog.ok(AddonTitle, 'Backup complete', '', '')
        else:
            dialog.ok(
                AddonTitle,
                'No backup location found: Please setup your Backup location',
                '', '')
Beispiel #22
0
    def authenticate(self, username, password, service_id):

        if not self.is_authenticated(username, password, service_id) and (
                username and password and service_id):
            control.log('username/password set. trying to authenticate')
            self.credentials = self._authenticate(username, password,
                                                  service_id)

            success = self.credentials.get('success')
            if success is False:
                error_message = self.credentials.get('error_message')
                control.log('authentication error: %s' % error_message)
                control.infoDialog(error_message, icon='ERROR')
                return {}, {}

            is_authenticated, self.user_data = self.check_service(
                bypass_cache=True)
            if is_authenticated and self.is_authenticated(
                    username, password, service_id):
                control.log('successfully authenticated')
                self._save_credentials()
            else:
                control.log('wrong username or password')
                message = '[%s] %s' % (self.__class__.__name__,
                                       control.lang(32003))
                control.infoDialog(message, icon='ERROR')
                return {}, {}
        elif self.is_authenticated(username, password, service_id):
            control.log('[GLOBO AUTH] - already authenticated')
        else:
            control.log('no username set to authenticate', control.LOGWARNING)
            message = 'Missing user credentials'
            control.infoDialog(message, icon='ERROR')
            control.openSettings()
            return {}, {}

        control.log(repr(self.credentials))

        returned_credentials = dict(self.credentials)
        del returned_credentials['brplay_id']
        del returned_credentials['success']
        del returned_credentials['error_message']

        return returned_credentials, self.user_data
Beispiel #23
0
    def premiumizeNav(self):
        from resources.lib.api import premiumize
        try:
			accountStatus = premiumize.info()
			self.addDirectoryItem(accountStatus, '0', 'search.png', 'DefaultMovies.png')
        except:pass
        if control.setting('premiumize.customer_id') == '' or control.setting('premiumize.customer_id') == None: 
				authDialog = deviceAuthDialog.DeviceAuthDialog('script-DeviceAuthDialog.xml', __addon__.getAddonInfo('path'), code='test code', url='http://premiumize.me')
				authDialog.doModal()
				del authDialog			
				control.openSettings('0.0')
			
        else:
			self.addDirectoryItem(50002, 'premiumizerootFolder', 'cloud.png', 'DefaultMovies.png')
			self.addDirectoryItem(50003, 'premiumizeTransfers', 'cloud.png', 'DefaultMovies.png')
			self.addDirectoryItem(50004, 'premiumizeAdd', 'cloud.png', 'DefaultMovies.png')
			self.addDirectoryItem('Library', 'libraryNavigator', 'cloud.png', 'DefaultMovies.png', isFolder=True)
			
        self.endDirectory()
def upload_log():
    url = 'https://paste.kodi.tv/'

    if not os.path.exists(log_file):
        w = open(log_file, 'w')
        w.close()
    f = open(log_file, 'rb')
    data = f.read()
    f.close()

    if not data:
        msg = control.lang(32140)
        ok = control.dialog.ok(name, msg)
        if ok: control.openSettings('9.0')

    else:
        import requests
        session = requests.Session()
        UserAgent = 'TheOath %s' % version
        try:
            response = session.post(url + 'documents',
                                    data=data,
                                    headers={'User-Agent': UserAgent})
            #log('log_response: ' + str(response))
            if 'key' in response.json():
                result = url + response.json()['key']
                msg = control.lang(32141) % str(result)
                log('log_upload_url: ' + result)
                control.dialog.ok(name, msg)
            elif 'message' in response.json():
                control.infoDialog('Log upload failed: %s' %
                                   str(response.json()['message']),
                                   sound=True)
                log('log_upload_msg: %s' % str(response.json()['message']))
            else:
                control.infoDialog('Log upload failed', sound=True)
                log('log_error: %s' % response.text)
        except:
            control.infoDialog('Unable to retrieve the paste url', sound=True)
            log('log_upload_fail', 1)
Beispiel #25
0
def authTrakt():
    try:
        if getTraktCredentialsInfo() == True:
            if control.yesnoDialog(control.lang(30479).encode('utf-8'), control.lang(30481).encode('utf-8'), '', 'Trakt', control.lang(30483).encode('utf-8'), control.lang(30482).encode('utf-8')):
                control.setSetting(id='trakt.user', value='')
                control.setSetting(id='trakt.token', value='')
                control.setSetting(id='trakt.refresh', value='')
            raise Exception()

        if control.yesnoDialog(control.lang(30484).encode('utf-8') + '[COLOR skyblue]http://trakt.tv/pin/7920[/COLOR]', control.lang(30485).encode('utf-8'), control.lang(30486).encode('utf-8'), 'Trakt', control.lang(30487).encode('utf-8'), control.lang(30488).encode('utf-8')): raise Exception()

        k = control.keyboard('', control.lang(30487).encode('utf-8'))
        k.doModal() ; pin = k.getText() if k.isConfirmed() else None
        if pin == '' or pin == None: raise Exception()

        trakt_base = 'http://api-v2launch.trakt.tv'

        headers = {'Content-Type': 'application/json', 'trakt-api-key': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'trakt-api-version': '2'}

        post = {'client_id': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'client_secret': '90a1840447a1e39d350023263902fe7010338d19789e6260f18df56a8b07a68a', 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'grant_type': 'authorization_code', 'code': pin}

        result = client.request(urlparse.urljoin(trakt_base, '/oauth/token'), post=json.dumps(post), headers=headers)
        result = json.loads(result)

        token, refresh = result['access_token'], result['refresh_token']

        headers['Authorization'] = 'Bearer %s' % token

        result = client.request(urlparse.urljoin(trakt_base, '/users/me'), headers=headers)
        result = json.loads(result)

        user = result['username']

        control.setSetting(id='trakt.user', value=user)
        control.setSetting(id='trakt.token', value=token)
        control.setSetting(id='trakt.refresh', value=refresh)
        raise Exception()
    except:
        control.openSettings('3.1')
    def authenticate(self, provider_id, username, password, select_profile=True):

        if not self.is_authenticated(provider_id) and (username and password):
            control.log('username/password set. trying to authenticate')

            credentials = self._authenticate(provider_id, username, password, select_profile)

            self.credentials.update(credentials)

            if self.is_authenticated(provider_id):
                control.log('successfully authenticated')
                self._save_credentials()
            else:
                control.log('wrong username or password')
                control.infoDialog('[%s] %s' % (self.__class__.__name__, control.lang('32003')), icon='ERROR')
                return None
        elif self.is_authenticated(provider_id):
            control.log('already authenticated')
            pass
        else:
            control.log_warning('no username set to authenticate')
            message = 'Missing user credentials'
            control.infoDialog(message, icon='ERROR')
            control.openSettings()
            return None

        control.log("credentials: %s" % repr(self.credentials))

        credentials_cookie = {}

        for key in self.credentials.keys():
            if key.endswith(provider_id):
                credentials_cookie.update({
                    key: self.credentials[key]
                })

        control.log("credentials_cookie: %s" % repr(credentials_cookie))

        return credentials_cookie
Beispiel #27
0
    def resolve(self, url):
        try:
            m3u8 = [

                [
                '#EXTM3U',
                '',
                '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH={bandwidth},NAME="{stream_name}"',
                '{video_stream}'
                ],

                [
                '#EXTM3U',
                '#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="{audio_group}",DEFAULT=YES,AUTOSELECT=YES,NAME="Stream 1",URI="{audio_stream}"',
                '',
                '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH={bandwidth},NAME="{stream_name}",AUDIO="{audio_group}"',
                '{video_stream}'
                ]

                ]

            query = urlparse.parse_qs(url)
            query = dict([(key, query[key][0]) if query[key] else (key, '') for key in query])

            for i in m3u8:
                try: content = ('\n'.join(i)).format(**query)
                except: pass


            auth = query['video_stream']

            r = client.request(auth, headers={'User-Agent': 'Lavf/56.40.101'})
            try: url = json.loads(r)['url']
            except: url = None

            if not url == None:

                def dialog(url):
                    try: self.disableScraper = control.yesnoDialog('To watch this video visit from any device', '[COLOR skyblue]%s[/COLOR]' % url, '', 'Torba', 'Cancel', 'Settings')
                    except: pass

                workers.Thread(dialog, url).start()
                control.sleep(3000)

                for i in range(100):
                    try:
                        if not control.condVisibility('Window.IsActive(yesnoDialog)'): break

                        r = client.request(auth, headers={'User-Agent': 'Lavf/56.40.101'})
                        try: url = json.loads(r)['url']
                        except: url = None

                        if url == None: break

                        workers.Thread(dialog, url).start()
                        control.sleep(3000)
                    except:
                        pass

                if self.disableScraper:
                    control.openSettings(query='2.0')
                    return ''

                control.execute('Dialog.Close(yesnoDialog)')


            if not url == None: return

            path = os.path.join(control.dataPath, 'torbase.m3u8')

            control.makeFile(control.dataPath) ; control.deleteFile(path)

            file = control.openFile(path, 'w') ; file.write(content) ; file.close()

            return path
        except:
            return
Beispiel #28
0
elif action == 'addSearch':
	from resources.lib.indexers import hub
	hub.indexer().addSearch(url)

elif action == 'delSearch':
	from resources.lib.indexers import hub
	hub.indexer().delSearch()

elif action == 'queueItem':
	from resources.lib.modules import control
	control.queueItem()

elif action == 'openSettings':
	from resources.lib.modules import control
	control.openSettings()

elif action == 'urlresolverSettings':
	from resources.lib.modules import control
	control.openSettings(id='script.module.urlresolver')

elif action == 'addView':
	from resources.lib.modules import views
	views.addView(content)

elif action == 'downloader':
	from resources.lib.modules import downloader
	downloader.downloader()

elif action == 'addDownload':
	from resources.lib.modules import downloader
Beispiel #29
0
elif action == 'refresh':
    from resources.lib.modules import control
    control.refresh()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openPlaylist':
    from resources.lib.modules import control
    control.openPlaylist()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings(query)

elif action == 'artwork':
    from resources.lib.modules import control
    control.artwork()

elif action == 'moviePlaycount':
    from resources.lib.modules import playcount
    playcount.movies(imdb, query)

elif action == 'episodePlaycount':
    from resources.lib.modules import playcount
    playcount.episodes(imdb, tvdb, season, episode, query)

elif action == 'tvPlaycount':
    from resources.lib.modules import playcount
Beispiel #30
0
 def openSettings(self):
     control.openSettings('7.1')
     xbmc.executebuiltin('Container.Refresh')
Beispiel #31
0
    if subid == None:
        youtube.yt_index().root(action)
    else:
        youtube.yt_index().get(action, subid)

elif action == 'refresh':
    from resources.lib.modules import control
    control.refresh()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings(query)

elif action == 'artwork':
    from resources.lib.modules import control
    control.artwork()

elif action == 'addView':
    from resources.lib.modules import views
    views.addView(content)

elif action == 'moviePlaycount':
    from resources.lib.modules import playcount
    playcount.movies(imdb, query)

elif action == 'episodePlaycount':
    from resources.lib.modules import playcount
Beispiel #32
0
    else:
        parent.enable()

elif mode[0] == 'set_password':
    from resources.lib.modules import parental
    parent = parental.Parental()
    parent.setPassword()

elif mode[0] == 'change_password':
    from resources.lib.modules import parental
    parent = parental.Parental()
    parent.changePassword()

elif mode[0] == 'settings':
    from resources.lib.modules import control
    control.openSettings()

elif mode[0] == 'addon_installer':
    from resources.lib.modules import addonInstaller
    addons = addonInstaller.get_addons()
    for a in addons:
        addon.add_item(
            {
                'mode': 'install',
                'id': a[2],
                'key': a[1],
                'name': a[0]
            }, {
                'title': a[0],
                'plot': 'Install addon'
            },
Beispiel #33
0
    def resolve(self, url):
        try:
            m3u8 = [
                '#EXTM3U',
                '#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",DEFAULT=YES,AUTOSELECT=YES,NAME="Stream 1",URI="{audio_stream}"',
                '',
                '#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=0,NAME="{stream_name}",AUDIO="audio"',
                '{video_stream}'
                ]


            query = urlparse.parse_qs(url)
            query = dict([(key, query[key][0]) if query[key] else (key, '') for key in query])

            auth = 'http://streamtorrent.tv/api/torrent/%s/%s.m3u8?json=true' % (query['vid_id'], query['stream_id'])

            r = client.request(auth)
            r = json.loads(r)
            try: url = r['url']
            except: url = None


            if not url == None:

                def dialog(url):
                    try: self.disableScraper = control.yesnoDialog('Torba requires you visit, on any device, the following url to watch this video:', '[COLOR skyblue]%s[/COLOR]' % url, '', 'Torba', 'Cancel', 'Settings')
                    except: pass

                workers.Thread(dialog, url).start()
                control.sleep(3000)

                for i in range(100):
                    try:
                        if not control.condVisibility('Window.IsActive(yesnoDialog)'): break

                        r = client.request(auth)
                        r = json.loads(r)
                        try: url = r['url']
                        except: url = None

                        if url == None: break

                        workers.Thread(dialog, url).start()
                        control.sleep(3000)
                    except:
                        pass

                if self.disableScraper:
                    control.openSettings(query='2.0')
                    return ''

                control.execute('Dialog.Close(yesnoDialog)')


            if not url == None: return


            stream_name = '%sp' % (query['height'])
            video_stream = r[stream_name]

            if not 'audio' in r: return video_stream

            audio_stream = r['audio']

            content = ('\n'.join(m3u8)).format(**{'audio_stream': audio_stream, 'stream_name': stream_name, 'video_stream': video_stream})


            path = os.path.join(control.dataPath, 'torbase.m3u8')

            control.makeFile(control.dataPath) ; control.deleteFile(path)

            file = control.openFile(path, 'w') ; file.write(content) ; file.close()

            return path
        except:
            return
Beispiel #34
0
elif action == 'episodeUserlists':
    from resources.lib.indexers import episodes
    episodes.episodes().userlists()

elif action == 'refresh':
    from resources.lib.modules import control
    control.refresh()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings(query)

elif action == 'open.Settings.CacheProviders':
    from resources.lib.modules import control
    control.openSettings(query)

elif action == 'artwork':
    from resources.lib.modules import control
    control.artwork()

elif action == 'addView':
    from resources.lib.modules import views
    views.addView(content)

elif action == 'moviePlaycount':
    from resources.lib.modules import playcount
Beispiel #35
0
def rdAuthorize():
    xbmc.log("hya")
    try:
        CLIENT_ID = 'RAQBAEYSNZCJY'
        USER_AGENT = 'BOB for Kodi/1.0'

        if not '' in credentials()['realdebrid'].values():
            if control.yesnoDialog("A RealDebrid account already exists",
                                   "Do you want to reset the account?", '',
                                   'RealDebrid', "No", "yes"):
                control.setSetting('realdebrid_client_id', '')
                control.setSetting('realdebrid_client_secret', '')
                control.setSetting('realdebrid_token', '')
                control.setSetting('realdebrid_refresh', '')
                control.setSetting('realdebrid_auth', '')
            raise Exception()

        headers = {'User-Agent': USER_AGENT}
        url = 'https://api.real-debrid.com/oauth/v2/device/code?client_id=%s&new_credentials=yes' % (
            CLIENT_ID)
        result = client.request(url, headers=headers)
        result = json.loads(result)
        verification_url = control.lang(30416).encode(
            'utf-8') + '[COLOR skyblue]%s[/COLOR]' % (
                result['verification_url'])
        user_code = control.lang(30417).encode(
            'utf-8') + '[COLOR skyblue]%s[/COLOR]' % (result['user_code'])
        device_code = result['device_code']
        interval = result['interval']

        progressDialog = control.progressDialog
        progressDialog.create('RealDebrid', verification_url, user_code)

        for i in range(0, 3600):
            try:
                if progressDialog.iscanceled(): break
                time.sleep(1)
                if not float(i) % interval == 0: raise Exception()
                url = 'https://api.real-debrid.com/oauth/v2/device/credentials?client_id=%s&code=%s' % (
                    CLIENT_ID, device_code)
                result = client.request(url, headers=headers, error=True)
                result = json.loads(result)
                if 'client_secret' in result: break
            except:
                pass

        try:
            progressDialog.close()
        except:
            pass

        id, secret = result['client_id'], result['client_secret']

        url = 'https://api.real-debrid.com/oauth/v2/token'
        post = urllib.urlencode({
            'client_id':
            id,
            'client_secret':
            secret,
            'code':
            device_code,
            'grant_type':
            'http://oauth.net/grant_type/device/1.0'
        })

        result = client.request(url, post=post, headers=headers)
        #control.log("### result:%s " % (result))

        result = json.loads(result)

        token, refresh = result['access_token'], result['refresh_token']
        control.setSetting('realdebrid_client_id', id)
        control.setSetting('realdebrid_client_secret', secret)
        control.setSetting('realdebrid_token', token)
        control.setSetting('realdebrid_refresh', refresh)
        control.setSetting('realdebrid_auth', '*************')

        raise Exception()
    except:
        xbmc.log("hello?")
        control.openSettings()
Beispiel #36
0
        parent.enable()

elif mode[0]=='set_password':
    from resources.lib.modules import parental
    parent = parental.Parental()
    parent.setPassword()

elif mode[0]=='change_password':
    from resources.lib.modules import parental
    parent = parental.Parental()
    parent.changePassword()


elif mode[0]=='settings':
    from resources.lib.modules import control
    control.openSettings()

elif mode[0]=='addon_installer':
    from resources.lib.modules import addonInstaller
    addons = addonInstaller.get_addons()
    for a in addons:
        addon.add_item({'mode': 'install', 'id':a[2], 'key':a[1], 'name':a[0]}, {'title': a[0], 'plot': 'Install addon'}, img=a[3], fanart=fanart, is_folder=True)

    addon.end_of_directory()

elif mode[0]=='install':
    id = args['id'][0]
    key = args['key'][0]
    name = args['name'][0]

    from resources.lib.modules import addonInstaller
Beispiel #37
0
def authTrakt():

    try:

        if getTraktCredentialsInfo() == True:

            if control.yesnoDialog(control.lang(32700).encode('utf-8'), control.lang(32701).encode('utf-8'), '', 'Trakt'):

                utils.setting('trakt.user', '');
                utils.setting('trakt.token', '');
                utils.setting('trakt.refresh', '');

            raise Exception();

        result = getTrakt('/oauth/device/code', {'client_id': '49e7f57ee0c22e6ca39649a9255f6097d10cbdb708a5f1c3dc196e615cce6549'});
        result = json.loads(result);

        verification_url = (control.lang(32702) % result['verification_url']).encode('utf-8');
        user_code = (control.lang(32703) % result['user_code']).encode('utf-8');
        expires_in = int(result['expires_in']);
        device_code = result['device_code'];
        interval = result['interval'];

        progressDialog = control.progressDialog;
        progressDialog.create('Trakt', verification_url, user_code);

        for i in range(0, expires_in):

            try:

                if progressDialog.iscanceled(): 
                    break;

                time.sleep(1);

                if not float(i) % interval == 0: 
                    raise Exception();

                r = getTrakt('/oauth/device/token', {'client_id': '49e7f57ee0c22e6ca39649a9255f6097d10cbdb708a5f1c3dc196e615cce6549', 'client_secret': '49288059527f042ac3e953419ecfd8c6783438ae966cd0b05982423e7fbb0259', 'code': device_code});
                r = json.loads(r);

                if 'access_token' in r: 
                    break;
            
            except:
                pass;

        try: 
            progressDialog.close();
        
        except: 
            pass;


        token = r['access_token'];
        refresh = r['refresh_token'];

        headers = {
            'Content-Type': 'application/json', 
            'trakt-api-key': '49e7f57ee0c22e6ca39649a9255f6097d10cbdb708a5f1c3dc196e615cce6549', 
            'trakt-api-version': '2', 
            'Authorization': 'Bearer %s' % token
        };

        result = client.request('http://api-v2launch.trakt.tv/users/me', headers=headers);
        result = json.loads(result);

        user = result['username'];

        utils.setting('trakt.user', user);
        utils.setting('trakt.token', token);
        utils.setting('trakt.refresh', refresh);

        raise Exception();

    except:
        control.openSettings('3.1');
Beispiel #38
0
elif action == 'addSearch':
    from resources.lib.indexers import streamhub
    streamhub.indexer().addSearch(url)

elif action == 'delSearch':
    from resources.lib.indexers import streamhub
    streamhub.indexer().delSearch()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings()

elif action == 'urlresolverSettings':
    from resources.lib.modules import control
    control.openSettings(id='script.module.urlresolver')

elif action == 'addView':
    from resources.lib.modules import views
    views.addView(content)

elif action == 'downloader':
    from resources.lib.modules import downloader
    downloader.downloader()

elif action == 'addDownload':
    from resources.lib.modules import downloader
elif action == 'mymovieliteNavigator':
    navigator.navigator().mymovies(lite=True)
elif action == 'mymovieNavigator':
    navigator.navigator().mymovies()
elif action == 'mytvliteNavigator':
    navigator.navigator().mytvshows(lite=True)
elif action == 'mytvNavigator':
    navigator.navigator().mytvshows()
elif action == 'collectionsMovies':
    navigator.navigator().collectionsMovies()
elif action == 'kidsCollections':
    navigator.navigator().kidsCollections()
elif action == 'holidayCollections':
    navigator.navigator().holidayCollections()
elif action == 'openSettings':
    control.openSettings(query)
elif action == 'play':
    select = control.setting('hosts.mode')
    if select == '3' and 'plugin' in control.infoLabel('Container.PluginName'):
        sources().play_dialog(title, year, imdb, tvdb, season, episode,
                              tvshowtitle, premiered, meta, select)
    elif select == '4' and 'plugin' in control.infoLabel(
            'Container.PluginName'):
        sources().play_dialog_list(title, year, imdb, tvdb, season, episode,
                                   tvshowtitle, premiered, meta, select)
    else:
        sources().play(title, year, imdb, tvdb, season, episode, tvshowtitle,
                       premiered, meta, select)
elif action == 'play_alter':
    sources().play_alter(title, year, imdb, tvdb, season, episode, tvshowtitle,
                         premiered, meta)
Beispiel #40
0
def Open_settings():
    control.openSettings()
Beispiel #41
0
elif action == 'episodeUserlists':
    from resources.lib.indexers import episodes
    episodes.episodes().userlists()

elif action == 'refresh':
    from resources.lib.modules import control
    control.refresh()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings(query)

elif action == 'artwork':
    from resources.lib.modules import control
    control.artwork()

elif action == 'addView':
    from resources.lib.modules import views
    views.addView(content)

elif action == 'moviePlaycount':
    from resources.lib.modules import playcount
    playcount.movies(imdb, query)

elif action == 'episodePlaycount':
    from resources.lib.modules import playcount
Beispiel #42
0
elif action == 'addSearch':
    from resources.lib.indexers import snstreams
    snstreams.indexer().addSearch(url)

elif action == 'delSearch':
    from resources.lib.indexers import snstreams
    snstreams.indexer().delSearch()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings()


elif action == 'urlresolverSettings':
    from resources.lib.modules import control
    control.openSettings(id='script.module.urlresolver')

elif action == 'addView':
    from resources.lib.modules import views
    views.addView(content)

elif action == 'downloader':
    from resources.lib.modules import downloader
    downloader.downloader()

elif action == 'addDownload':
Beispiel #43
0
elif action == 'episodeUserlists':
    from resources.lib.indexers import episodes
    episodes.episodes().userlists()

elif action == 'refresh':
    from resources.lib.modules import control
    control.refresh()

elif action == 'queueItem':
    from resources.lib.modules import control
    control.queueItem()

elif action == 'openSettings':
    from resources.lib.modules import control
    control.openSettings(query)

elif action == 'artwork':
    from resources.lib.modules import control
    control.artwork()

elif action == 'addView':
    from resources.lib.modules import views
    views.addView(content)

elif action == 'moviePlaycount':
    from resources.lib.modules import playcount
    playcount.movies(imdb, query)

elif action == 'episodePlaycount':
    from resources.lib.modules import playcount
Beispiel #44
0
elif action == 'xdirectory':
    from resources.lib.indexers import bob; bob.Indexer().getx(url)
elif action == 'developer':
    from resources.lib.indexers import bob; bob.Indexer().developer()
elif action == 'play':
    from resources.lib.indexers import bob; bob.Player().play(url, content)
elif action == 'browser':
    from resources.lib.indexers import bob; bob.Resolver().browser(url)
elif action == 'search':
    from resources.lib.indexers import bob; bob.Indexer().search()
elif action == 'add_search':
    from resources.lib.indexers import bob; bob.Indexer().add_search(url)
elif action == 'delete_search':
    from resources.lib.indexers import bob; bob.Indexer().delete_search()
elif action == 'openSettings':
    from resources.lib.modules import control; control.openSettings()
elif action == 'addView':
    from resources.lib.modules import views; views.addView(content)
elif action == 'clearCache':
    from resources.lib.modules import cache; cache.clear()
elif action == 'trailer':
    from resources.lib.modules import trailer; trailer.trailer().play(name)
elif action == 'ScraperSettings':
    from resources.lib.modules import control
    control.openSettings(id='script.module.nanscrapers')
elif action == 'ResolverSettings':
    from resources.lib.modules import control
    control.openSettings(id='script.mrknow.urlresolver')
elif action == 'queueItem':
    from resources.lib.modules import control
    from resources.lib.indexers.bob import Resolver, Indexer, replace_url