Пример #1
0
 def withinRangeCheck(self, debrid_provider, days_remaining):
     if days_remaining < 15:
         try:
             current_notification_range = int(
                 control.setting('%s.notification.range' % debrid_provider))
         except:
             current_notification_range = 5
         for index, day_range in enumerate(self.duration):
             if day_range[0] > days_remaining > day_range[
                     1] and current_notification_range != index:
                 control.setSetting(
                     '%s.notification.range' % debrid_provider, str(index))
                 return True
         return False
     else:
         control.setSetting('%s.notification.range' % debrid_provider, '')
         return False
Пример #2
0
 def revoke_session_id(self):
     try:
         if control.setting('tmdb.session_id') == '': return
         url = self.auth_base_link + '/session?api_key=%s' % API_key
         post = {"session_id": "%s" % control.setting('tmdb.session_id')}
         result = requests.delete(url, data=post).json()
         if result.get('success') is True:
             control.setSetting('tmdb.session_id', '')
             control.notification(title='default',
                                  message=32681,
                                  icon='default')
         else:
             control.notification(title='default',
                                  message=32682,
                                  icon='ERROR')
     except:
         log_utils.error()
Пример #3
0
 def revoke(self):
     data = {"token": control.setting('trakt.token')}
     try:
         self.call("oauth/revoke", data=data, with_auth=False)
     except:
         pass
     control.setSetting('trakt.username', '')
     control.setSetting('trakt.expires', '')
     control.setSetting('trakt.token', '')
     control.setSetting('trakt.refresh', '')
     control.dialog.ok(control.lang(32315), control.lang(32314))
Пример #4
0
 def revoke(self):
     data = {"token": control.setting('trakt.token')}
     try:
         self.call("oauth/revoke", data=data, with_auth=False)
     except:
         pass
     control.setSetting('trakt.username', '')
     control.setSetting('trakt.expires', '')
     control.setSetting('trakt.token', '')
     control.setSetting('trakt.refresh', '')
     control.notification(title='default', message=40009, icon=trakt_icon)
Пример #5
0
    def create_session_id(self):
        try:
            if control.setting('tmdb.username') == '' or control.setting(
                    'tmdb.password') == '':
                control.notification(title='default',
                                     message=32683,
                                     icon='ERROR')
                return
            url = self.auth_base_link + '/token/new?api_key=%s' % API_key
            result = requests.get(url).json()
            token = result.get('request_token').encode('utf-8')
            url2 = self.auth_base_link + '/token/validate_with_login?api_key=%s' % API_key

            username = control.setting('tmdb.username')
            password = control.setting('tmdb.password')

            post2 = {
                "username": "******" % username,
                "password": "******" % password,
                "request_token": "%s" % token
            }
            result2 = requests.post(url2, data=post2).json()
            url3 = self.auth_base_link + '/session/new?api_key=%s' % API_key
            post3 = {"request_token": "%s" % token}
            result3 = requests.post(url3, data=post3).json()

            if result3.get('success') is True:
                session_id = result3.get('session_id')
                msg = '%s' % ('username ='******'[CR]password ='******'[CR]token = ' + token +
                              '[CR]confirm?')
                if control.yesnoDialog(msg, '', ''):
                    control.setSetting('tmdb.session_id', session_id)
                    control.notification(title='default',
                                         message=32679,
                                         icon='default')
                else:
                    control.notification(title='default',
                                         message=32680,
                                         icon='ERROR')
        except:
            log_utils.error()
            pass
Пример #6
0
 def auth_loop(self):
     control.sleep(5000)
     response = requests.get(self.check_url, timeout=self.timeout).json()
     response = response['data']
     if 'error' in response:
         self.token = 'failed'
         return control.notification(title='default',
                                     message=40021,
                                     icon='default')
     if response['activated']:
         try:
             control.progressDialog.close()
             self.token = str(response['apikey'])
             control.setSetting('alldebrid.token', self.token)
         except:
             self.token = 'failed'
             return control.notification(title='default',
                                         message=40021,
                                         icon='default')
     return
	def auth(self):
		self.token = ''
		url = base_url + 'pin/get?agent=%s' % user_agent
		response = requests.get(url, timeout=self.timeout).json()
		response = response['data']
		control.progressDialog.create(control.lang(40056))
		control.progressDialog.update(-1, control.progress_line % (control.lang(32513) % 'https://alldebrid.com/pin/', control.lang(32514) % response['pin'], ''))
		self.check_url = response.get('check_url')
		control.sleep(2000)
		while not self.token:
			if control.progressDialog.iscanceled():
				control.progressDialog.close()
				break
			self.auth_loop()
		if self.token in (None, '', 'failed'):
			return
		control.sleep(2000)
		account_info = self.account_info()
		control.setSetting('alldebrid.username', str(account_info['user']['username']))
		control.notification(title=40059, message=40081, icon=ad_icon)
Пример #8
0
    def refresh_token(self):
        traktToken = None
        traktRefresh = None
        traktExpires = None
        data = {
            "client_id": self.client_id,
            "client_secret": self.client_secret,
            "redirect_uri": "urn:ietf:wg:oauth:2.0:oob",
            "grant_type": "refresh_token",
            "refresh_token": control.setting('trakt.refresh')
        }

        response = self.call("oauth/token",
                             data=data,
                             with_auth=False,
                             return_str=True)
        try:
            code = str(response[1])
        except:
            code = ''

        if code.startswith('5') or (
                response and isinstance(response, py_tools.string_types)
                and '<html' in response
        ) or not response:  # covers Maintenance html responses ["Bad Gateway", "We're sorry, but something went wrong (500)"])
            log_utils.log('Temporary Trakt Server Problems',
                          level=log_utils.LOGNOTICE)
            control.notification(title=32315, message=33676)
            return False
        elif response and code in ['423']:
            log_utils.log('Locked User Account - Contact Trakt Support: %s' %
                          str(response[0]),
                          level=log_utils.LOGWARNING)
            control.notification(title=32315, message=33675)
            return False

        if response and code not in ['401', '405']:
            try:
                response = response.json()
            except:
                log_utils.error()
                return False
            if 'error' in response and response['error'] == 'invalid_grant':
                log_utils.log('Please Re-Authorize your Trakt Account: %s' %
                              response['error'],
                              __name__,
                              level=log_utils.LOGWARNING)
                control.notification(title=32315, message=33677)
                return False

            traktToken = response["access_token"]
            traktRefresh = response["refresh_token"]
            traktExpires = time.time() + 7776000
            control.setSetting('trakt.token', traktToken)
            control.setSetting('trakt.refresh', traktRefresh)
            control.setSetting('trakt.expires', str(traktExpires))
        self.token = traktToken
Пример #9
0
 def auth(self):
     try:
         code = self.get_device_code()
         token = self.get_device_token(code)
         if token:
             expires_at = time.time() + 60 * 60 * 24 * 30
             control.setSetting('trakt.expires', str(expires_at))
             control.setSetting('trakt.token', token["access_token"])
             control.setSetting('trakt.refresh', token["refresh_token"])
             control.sleep(1000)
             try:
                 user = self.call("users/me", with_auth=True)
                 control.setSetting('trakt.username', str(user['username']))
             except:
                 pass
             control.notification(message=40074, icon=trakt_icon)
             return True
         control.notification(message=40075, icon=trakt_icon)
         return False
     except:
         log_utils.error()
Пример #10
0
 def refresh_token(self):
     traktToken = None
     traktRefresh = None
     traktExpires = None
     data = {
         "client_id": self.client_id,
         "client_secret": self.client_secret,
         "redirect_uri": "urn:ietf:wg:oauth:2.0:oob",
         "grant_type": "refresh_token",
         "refresh_token": control.setting('trakt.refresh')
     }
     response = self.call("oauth/token", data=data, with_auth=False)
     if response:
         traktToken = response["access_token"]
         traktRefresh = response["refresh_token"]
         traktExpires = time.time() + 7776000
         control.setSetting('trakt.token', traktToken)
         control.setSetting('trakt.refresh', traktRefresh)
         control.setSetting('trakt.expires', traktExpires)
     self.token = traktToken