本文整理汇总了Python中resources.lib.modules.control.setSetting函数的典型用法代码示例。如果您正苦于以下问题:Python setSetting函数的具体用法?Python setSetting怎么用?Python setSetting使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setSetting函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: main_menu
def main_menu():
upgrade_warning = control.setting("upgrade.warning")
if upgrade_warning is "":
import xbmcgui
xbmcgui.Dialog().ok("Masterani Redux Warning",
" \n\nIt has come to our attention that the addon stopped working for some people. During our investigation in the matter,"
" we found that security upgrades rendered Kodi 16 unable to fetch the required data.\n\n"
"If the addon is unable to load anything, you are affected by this. Please update your Kodi to the latest version.")
control.setSetting("upgrade.warning", "shown")
lastvisited = control.setting("anime.lastvisited")
if int(lastvisited) != 0:
add_last_visited(lastvisited)
add_favorites()
items = [
{'name': "Recent",
'action': "recent"},
{'name': "Popular Today",
'action': "popular"},
{'name': "Anime",
'action': "list"},
{'name': "Search",
'action': 'search'},
{'name': "Tools",
'action': "tools"}
]
add_directory(items)
开发者ID:varunrai,项目名称:Masterani-Redux,代码行数:34,代码来源:root.py
示例2: get_api
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
开发者ID:varunrai,项目名称:repository.magicality,代码行数:29,代码来源:furk.py
示例3: auth
def auth():
email = control.setting("kitsu.user")
password = control.setting("kitsu.pass")
resp = requests.post("https://kitsu.io/api/oauth/token",
params={"grant_type": "password", "username": email, "password": password})
print resp
token = json.loads(resp.text)['access_token']
control.setSetting("kitsu.token", token)
useridScrobble_resp = requests.get('https://kitsu.io/api/edge/users?filter[self]=true', headers=kitsu_headers())
userid = json.loads(useridScrobble_resp.text)['data'][0]['id']
control.setSetting("kitsu.userid", userid)
开发者ID:varunrai,项目名称:Masterani-Redux,代码行数:11,代码来源:kitsu.py
示例4: search_new
def search_new(self):
t = control.lang(32010).encode('utf-8')
k = control.keyboard('', t) ; k.doModal()
q = k.getText().strip() if k.isConfirmed() else None
if not q: return
search_history = control.setting('moviesearch')
if q not in search_history.split('\n'):
control.setSetting('moviesearch', q + '\n' + search_history)
url = self.search_link + urllib.quote_plus(q)
self.get(url)
开发者ID:YourFriendCaspian,项目名称:dotfiles,代码行数:14,代码来源:movies.py
示例5: __getTrakt
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
开发者ID:varunrai,项目名称:Masterani-Redux,代码行数:46,代码来源:trakt.py
示例6: kitsu_logout
def kitsu_logout(self):
control.setSetting("kitsu.token", '')
control.setSetting("kitsu.userid", '')
control.setSetting("kitsu.login_auth", '')
control.refresh()
dialog = xbmcgui.Dialog()
dialog.ok('Kitsu', 'Logout successful')
开发者ID:varunrai,项目名称:Masterani-Redux,代码行数:7,代码来源:kitsu.py
示例7: getTrakt
def getTrakt(url, post=None):
try:
url = urlparse.urljoin('http://api-v2launch.trakt.tv', url)
headers = {'Content-Type': 'application/json', 'trakt-api-key': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'trakt-api-version': '2'}
if not post == None: post = json.dumps(post)
if getTraktCredentialsInfo() == False:
result = client.request(url, post=post, headers=headers)
return result
headers['Authorization'] = 'Bearer %s' % control.setting('trakt.token')
result = client.request(url, post=post, headers=headers, output='response', error=True)
if not (result[0] == '401' or result[0] == '405'): return result[1]
oauth = 'http://api-v2launch.trakt.tv/oauth/token'
opost = {'client_id': 'c029c80fd3d3a5284ee820ba1cf7f0221da8976b8ee5e6c4af714c22fc4f46fa', 'client_secret': '90a1840447a1e39d350023263902fe7010338d19789e6260f18df56a8b07a68a', 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'grant_type': 'refresh_token', 'refresh_token': control.setting('trakt.refresh')}
result = client.request(oauth, post=json.dumps(opost), headers=headers)
result = json.loads(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)
return result
except:
pass
开发者ID:sokam,项目名称:kodiprofile,代码行数:37,代码来源:trakt.py
示例8: getTrakt
def getTrakt(url, post=None):
try:
url = urlparse.urljoin('http://api-v2launch.trakt.tv', url)
headers = {'Content-Type': 'application/json', 'trakt-api-key': '3b76e1b99fa4a5b27f63e04307754751514d88916195ea8abc1c48eeef68f0d9', 'trakt-api-version': '2'}
if not post == None: post = json.dumps(post)
if getTraktCredentialsInfo() == False:
result = client.request(url, post=post, headers=headers)
return result
headers['Authorization'] = 'Bearer %s' % control.setting('trakt.token')
result = client.request(url, post=post, headers=headers, output='extended', error=True)
if not (result[1] == '401' or result[1] == '405'): return result[0]
oauth = 'http://api-v2launch.trakt.tv/oauth/token'
opost = {'client_id': '3b76e1b99fa4a5b27f63e04307754751514d88916195ea8abc1c48eeef68f0d9', 'client_secret': 'b0be7e72b647bcb44f2846b29729028e5d75fa710b91812027ae79cc48456a16', 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'grant_type': 'refresh_token', 'refresh_token': control.setting('trakt.refresh')}
result = client.request(oauth, post=json.dumps(opost), headers=headers)
result = json.loads(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)
return result
except:
pass
开发者ID:azumimuo,项目名称:family-xbmc-addon,代码行数:37,代码来源:trakt.py
示例9: kitsu_login
def kitsu_login(self):
try:
token_url = 'https://kitsu.io/api/oauth/token'
resp = requests.post(token_url, params={"grant_type": "password", "username": '%s' %(control.getSetting("kitsu.email")), "password": '%s' %(control.getSetting("kitsu.password"))})
token = json.loads(resp.text)['access_token']
control.setSetting("kitsu.token", token)
useridScrobble_resp = requests.get('https://kitsu.io/api/edge/users?filter[self]=true', headers=self.kitsu_headers())
userid = json.loads(useridScrobble_resp.text)['data'][0]['id']
control.setSetting("kitsu.userid", userid)
control.setSetting("kitsu.login_auth", 'Kitsu')
dialog = xbmcgui.Dialog()
dialog.ok('Kitsu', 'Login successful')
except:
dialog = xbmcgui.Dialog()
dialog.ok('Kitsu', 'Login error. Incorrect email or password.')
开发者ID:varunrai,项目名称:Masterani-Redux,代码行数:15,代码来源:kitsu.py
示例10: rdAuthorize
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')
开发者ID:freeworldxbmc,项目名称:maximumTv,代码行数:59,代码来源:debrid.py
示例11: onPlayBackStarted
def onPlayBackStarted(self):
control.execute('Dialog.Close(all,true)')
control.setSetting("anime.lastvisited", str(self.anime_id))
pass
开发者ID:varunrai,项目名称:Masterani-Redux,代码行数:4,代码来源:player.py
示例12: authTrakt
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')
开发者ID:c0ns0le,项目名称:YCBuilds,代码行数:39,代码来源:trakt.py
示例13: authTrakt
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')
开发者ID:CYBERxNUKE,项目名称:xbmc-addon,代码行数:48,代码来源:trakt.py
示例14: clearCacheSearch
def clearCacheSearch(self):
control.idle()
if control.yesnoDialog(control.lang(32056).encode('utf-8'), '', ''):
control.setSetting('tvsearch', '')
control.setSetting('moviesearch', '')
control.refresh()
开发者ID:YourFriendCaspian,项目名称:dotfiles,代码行数:6,代码来源:navigator.py
示例15: getTrakt
def getTrakt(url, post = None, cache = True, check = True, timestamp = None, extended = False, direct = False, authentication = None):
try:
if not url.startswith('http://api-v2launch.trakt.tv'):
url = urlparse.urljoin('http://api-v2launch.trakt.tv', url)
if authentication:
valid = True
token = authentication['token']
refresh = authentication['refresh']
else:
valid = getTraktCredentialsInfo() == True
token = control.setting('accounts.informants.trakt.token')
refresh = control.setting('accounts.informants.trakt.refresh')
headers = {'Content-Type': 'application/json', 'trakt-api-key': base64.b64decode(traktCI), 'trakt-api-version': '2'}
if not post == None: post = json.dumps(post)
if direct or not valid:
result = client.request(url, post = post, headers = headers)
return result
headers['Authorization'] = 'Bearer %s' % token
result = client.request(url, post = post, headers = headers, output = 'extended', error = True)
if result and not (result[1] == '401' or result[1] == '405'):
if check: _cacheCheck()
if extended: return result[0], result[2]
else: return result[0]
try: code = str(result[1])
except: code = ''
if code.startswith('5') or (result and isinstance(result, basestring) and '<html' in result) or not result:
return _error(url = url, post = post, timestamp = timestamp, message = 33676)
oauth = 'http://api-v2launch.trakt.tv/oauth/token'
opost = {'client_id': base64.b64decode(traktCI), 'client_secret': base64.b64decode(traktCS), 'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob', 'grant_type': 'refresh_token', 'refresh_token': refresh}
result = client.request(oauth, post = json.dumps(opost), headers = headers, error = True)
try: code = str(result[1])
except: code = ''
if code.startswith('5') or not result or (result and isinstance(result, basestring) and '<html' in result):
return _error(url = url, post = post, timestamp = timestamp, message = 33676)
elif result and code in ['404']:
return _error(url = url, post = post, timestamp = timestamp, message = 33786)
elif result and code in ['401', '405']:
return _error(url = url, post = post, timestamp = timestamp, message = 33677)
result = json.loads(result)
token, refresh = result['access_token'], result['refresh_token']
control.setSetting(id='accounts.informants.trakt.token', value = token)
control.setSetting(id='accounts.informants.trakt.refresh', value = refresh)
headers['Authorization'] = 'Bearer %s' % token
result = client.request(url, post = post, headers = headers, output = 'extended')
if check: _cacheCheck()
if extended: return result[0], result[2]
else: return result[0]
except:
tools.Logger.error()
return None
开发者ID:azumimuo,项目名称:family-xbmc-addon,代码行数:69,代码来源:trakt.py
示例16: get_vk_token
def get_vk_token():
import xbmcgui
import xbmcaddon
from resources.lib.modules import vkAuth
if not bool(control.setting("enable_vk")):
return False
# flag if a vk.com token is valid
validVKToken = False
# if empty vk.com email xor password
if bool(control.setting('vk_email') == "") ^ bool(control.setting('vk_password') == ""):
dialog = xbmcgui.Dialog()
ok = dialog.ok("VK", "Please enter your VK.com credentials")
control.setSetting('vk_token', '')
xbmcaddon.Addon().openSettings()
return False
# if empty vk.com email and password
elif control.setting('vk_email') == "" and control.setting('vk_password') == "":
control.setSetting('vk_token_email', '')
control.setSetting('vk_token_password', '')
control.setSetting('vk_token', '')
# display vk.com account need message
dialog = xbmcgui.Dialog()
ok = dialog.ok("VK", "Please Enter your VK.com credentials")
xbmcaddon.Addon().openSettings()
return False
# if credentials are given
else:
# check if user changed vk_email/vk_password or if vk_token_email/vk_token_password is empty (need reauth)
if control.setting('vk_token_email') != control.setting('vk_email') or control.setting(
'vk_token_password') != control.setting('vk_password'):
control.setSetting('vk_token_email', '')
control.setSetting('vk_token_password', '')
control.setSetting('vk_token', '')
# check current token
if control.setting('vk_token'): validVKToken = vkAuth.isTokenValid(control.setting('vk_token'))
# if the token provided is not valid, login and generate a new one
if validVKToken != True:
# login in vk.com - get the token
email = control.setting('vk_email')
passw = control.setting('vk_password')
try:
token = vkAuth.auth(email, passw, 2648691, 'audio,offline,video')
except:
token = False
# check login status
if token == False:
dialog = xbmcgui.Dialog()
ok = dialog.ok("VK Log in Failed", "Please enter your VK.com credentials")
xbmcaddon.Addon().openSettings()
return False
else:
# test the new token
validVKToken = vkAuth.isTokenValid(token)
# if there was an error, inform the user
if validVKToken != True:
dialog = xbmcgui.Dialog()
ok = dialog.ok("VK Log in Failed", "Reason" + validVKToken)
xbmcaddon.Addon().openSettings()
return False
else:
control.setSetting('vk_token_email', email)
control.setSetting('vk_token_password', passw)
control.setSetting('vk_token', token)
return token
else:
return control.setting('vk_token')
开发者ID:vphuc81,项目名称:MyRepository,代码行数:69,代码来源:__init__.py
示例17: onPlayBackStarted
def onPlayBackStarted(self):
control.setSetting("anime.lastvisited", str(self.anime_id))
pass
开发者ID:azumimuo,项目名称:family-xbmc-addon,代码行数:3,代码来源:player.py
示例18: authTrakt
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')
开发者ID:azumimuo,项目名称:family-xbmc-addon,代码行数:49,代码来源:trakt.py
示例19: authTrakt
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')
开发者ID:sokam,项目名称:kodiprofile,代码行数:49,代码来源:trakt.py
示例20: authTrakt
def authTrakt(openSettings = True):
# NB: Seems like there is a Kodi bug that you can't write the same setting twice in one execution.
# After writing the second time, the settings still contains the first value.
# Only write once.
user = ''
token = ''
refresh = ''
try:
if getTraktCredentialsInfo() == True:
if interface.Dialog.option(title = 32315, message = control.lang(32511).encode('utf-8') + ' ' + control.lang(32512).encode('utf-8')):
pass
else: # Bubbles
return False
result = getTrakt('/oauth/device/code', {'client_id': base64.b64decode(traktCI)}, direct = True)
result = json.loads(result)
expires_in = int(result['expires_in'])
device_code = result['device_code']
interval = result['interval']
message = interface.Translation.string(33494) + interface.Format.newline()
message += ' ' + interface.Translation.string(33381) + ': ' + interface.Format.fontBold(result['verification_url'])
message += interface.Format.newline()
message += ' ' + interface.Translation.string(33495) + ': ' + interface.Format.fontBold(result['user_code'])
message += interface.Format.newline() + interface.Translation.string(33978)
clipboard.Clipboard.copy(result['user_code'])
progressDialog = interface.Dialog.progress(title = 32315, message = message, background = False)
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': base64.b64decode(traktCI), 'client_secret': base64.b64decode(traktCS), 'code': device_code}, direct = True)
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': base64.b64decode(traktCI), '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']
except:
pass
control.setSetting(id='accounts.informants.trakt.user', value=user)
control.setSetting(id='accounts.informants.trakt.token', value=token)
control.setSetting(id='accounts.informants.trakt.refresh', value=refresh)
if openSettings:
tools.Settings.launch(category = tools.Settings.CategoryAccounts)
return {'user' : user, 'token' : token, 'refresh' : refresh}
开发者ID:azumimuo,项目名称:family-xbmc-addon,代码行数:62,代码来源:trakt.py
注:本文中的resources.lib.modules.control.setSetting函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论