def toggleAll(setting, open_id=None, sourceList=None): from openscrapers import getAllHosters sourceList = getAllHosters() if not sourceList else sourceList for i in sourceList: source_setting = 'provider.' + i control.setSetting(source_setting, setting) control.openSettings(open_id)
def get_api(self): try: api_key = self.api_key if api_key == '': if self.user_name == '' or self.user_pass == '': return else: s = requests.Session() link = (self.base_link + self.login_link % (self.user_name, self.user_pass)) p = s.post(link) p = json.loads(p.text) if p['status'] == 'ok': api_key = p['api_key'] control.setSetting('furk.api', api_key) else: pass return api_key except: print("Unexpected error in Furk Script: check_api", sys.exc_info()[0]) exc_type, exc_obj, exc_tb = sys.exc_info() print(exc_type, exc_tb.tb_lineno) pass
def ToggleProviderAll(enable): from openscrapers import providerNames sourceList = providerNames() (setting, open_id) = ('true', '0.3') if enable else ('false', '0.2') for i in sourceList: source_setting = 'provider.' + i control.setSetting(source_setting, setting) control.openSettings(open_id)
def ScraperChoice(): from openscrapers import providerSources sourceList = sorted(providerSources()) control.idle() select = control.selectDialog([i for i in sourceList]) if select == -1: return module_choice = sourceList[select] control.setSetting('module.provider', module_choice) control.openSettings('0.1')
changelog.get() control.sleep(200) control.openSettings(query, "script.module.openscrapers") elif action == 'ShowHelp': from openscrapers.help import help help.get(name) control.openSettings(query, "script.module.openscrapers") elif action == "Defaults": sourceList = [] sourceList = sources_openscrapers.all_providers for i in sourceList: source_setting = 'provider.' + i value = control.getSettingDefault(source_setting) control.setSetting(source_setting, value) # xbmc.log('provider-default = %s-%s' % (source_setting, value), 2) control.sleep(200) control.openSettings(query, "script.module.openscrapers") elif action == "toggleAll": sourceList = [] sourceList = sources_openscrapers.all_providers for i in sourceList: source_setting = 'provider.' + i control.setSetting(source_setting, params['setting']) # xbmc.log('All providers = %s' % sourceList,2) control.sleep(200) control.openSettings(query, "script.module.openscrapers") elif action == "toggleAllPaid":
def __getTrakt(url, post=None): try: url = urlparse.urljoin(BASE_URL, url) post = json.dumps(post) if post else None headers = { 'Content-Type': 'application/json', 'trakt-api-key': V2_API_KEY, 'trakt-api-version': 2 } if getTraktCredentialsInfo(): headers.update({ 'Authorization': 'Bearer %s' % control.setting('trakt.token') }) result = client.request(url, post=post, headers=headers, output='extended', error=True) resp_code = result[1] resp_header = result[2] result = result[0] if resp_code in [ '500', '502', '503', '504', '520', '521', '522', '524' ]: log_utils.log('Temporary Trakt Error: %s' % resp_code, log_utils.LOGWARNING) return elif resp_code in ['404']: log_utils.log('Object Not Found : %s' % resp_code, log_utils.LOGWARNING) return elif resp_code in ['429']: log_utils.log('Trakt Rate Limit Reached: %s' % resp_code, log_utils.LOGWARNING) return if resp_code not in ['401', '405']: return result, resp_header oauth = urlparse.urljoin(BASE_URL, '/oauth/token') opost = { 'client_id': V2_API_KEY, 'client_secret': CLIENT_SECRET, 'redirect_uri': REDIRECT_URI, 'grant_type': 'refresh_token', 'refresh_token': control.setting('trakt.refresh') } result = client.request(oauth, post=json.dumps(opost), headers=headers) result = utils.json_loads_as_str(result) token, refresh = result['access_token'], result['refresh_token'] control.setSetting(id='trakt.token', value=token) control.setSetting(id='trakt.refresh', value=refresh) headers['Authorization'] = 'Bearer %s' % token result = client.request(url, post=post, headers=headers, output='extended', error=True) return result[0], result[2] except Exception as e: log_utils.log('Unknown Trakt Error: %s' % e, log_utils.LOGWARNING) pass
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('4.1')