def login(self, silent=False):
        query = '''
        query ($name: String) {
            User(name: $name) {
                id
                }
            }
        '''

        variables = {"name": self.username}

        resp = requests.post(self.site,
                             json={
                                 'query': query,
                                 'variables': variables
                             })
        results = json.loads(resp.content)
        if results.has_key('errors'):
            if silent != True:
                tools.showDialog.notification(tools.addonName,
                                              'AniList - Login unsuccessful')
            else:
                tools.log('Anilist - Login unsuccessful')
            return

        tools.setSetting('ani.userid', str(results['data']['User']['id']))
        if silent != True:
            tools.showDialog.notification(tools.addonName,
                                          'AniList - Logged in successfully')
        else:
            tools.log('Anilist - Logged in successfully')
        return
 def login(self, silent=False):
     try:
         login = requests.post(self.oauth + '/token',
                               params={
                                   'grant_type': 'password',
                                   'username': self.email,
                                   'password': self.password
                               },
                               headers=self.headers)
         info = json.loads(login.text)
         tools.setSetting('kitsu.access', str(info['access_token']))
         tools.setSetting('kitsu.refresh', str(info['refresh_token']))
         tools.setSetting('kitsu.create', str(info['created_at']))
         tools.setSetting('kitsu.expiry', str(info['expires_in']))
         user = requests.get(
             'https://kitsu.io/api/edge/users?filter[name]=%s' %
             self.username,
             headers=self.headers)
         userdata = json.loads(user.content)
         userdata = userdata['data'][0]
         tools.setSetting('kitsu.userid', str(userdata['id']))
         if silent != True:
             tools.showDialog.notification(
                 tools.addonName, 'Kitsu - Logged in successfully')
         else:
             tools.log('Kitsu - Logged in successfully')
     except:
         if silent != True:
             tools.showDialog.notification(tools.addonName,
                                           'Kitsu - Login unsuccessful')
         else:
             tools.log('Kitsu - Login unsuccessful')
Example #3
0
 def login(self, silent=False):
     session = requests.session()
     crsf_res = session.get(self.site).text
     crsf = (re.compile("<meta name='csrf_token' content='(.+?)'>").findall(crsf_res))[0]
     payload = {
         "user_name": self.username,
         "password": self.password,
         "cookie": 1,
         "sublogin": "******",
         "submit": 1,
         "csrf_token": crsf
         }        
     url = self.site + '/login.php?from=%2F'
     session.get(url)
     result = session.post(url, data=payload)
     soup = BeautifulSoup(result.text, 'html.parser')
     results = soup.find_all('div', attrs={'class': 'badresult'})
     if results:
         if silent != True:
             tools.showDialog.notification(tools.addonName, 'MAL - Login Unsuccessful')
         else:
             tools.log('MAL - Login Unsuccessful')
         return
     
     tools.setSetting('mal.logsess', str(session.cookies['MALHLOGSESSID']))
     tools.setSetting('mal.sessionid', str(session.cookies['MALSESSIONID']))
     
     if silent != True:
         tools.showDialog.notification(tools.addonName, 'MAL - Logged in successfully')
     else:
         tools.log('MAL - Logged in successfully')
     
     return
Example #4
0
    def _try_set_token(self):
        token = tools.getSetting('ws.token')
        if token == '':
            token = self._do_login()

        self._session.set_token(token)
        tools.setSetting('ws.token', token)
        self._is_authorized = True
Example #5
0
 def logout(self):
     tools.setSetting('kitsu.access', '')
     tools.setSetting('kitsu.refresh', '')
     tools.setSetting('kitsu.create', '')
     tools.setSetting('kitsu.expiry', '')
     tools.setSetting('kitsu.userid', '')
     tools.showDialog.notification(tools.addonName, 'Kitsu - Logged out successfully')        
     return
    from resources.lib.modules import accounts
    accounts.Kitsu().login()

if action == 'malLogin':
    from resources.lib.modules import accounts
    accounts.Mal().login()

if action == 'anilistLogin':
    from resources.lib.modules import accounts
    accounts.Anilist().login()

#Admin Commands
if action == 'adminCommands':
    if tools.getSetting('admin.warning') == 'false':
        warning = tools.showDialog.yesno(
            tools.addonName,
            'These commands enable features that are not enabled by default FOR A REASON, they will not break the addon but are only recommended for certain audiences',
            yeslabel='OK',
            nolabel="OK - Don't Show Again")
        if warning == False:
            tools.setSetting('admin.warning', 'true')
    k = tools.showKeyboard('', 'Admin Commands')
    k.doModal()
    command = (k.getText() if k.isConfirmed() else None)
    if command == None:
        tools.showDialog.notification(tools.addonName, 'No command entered.')
    elif command == 'degenerate':
        tools.setSetting('kitsu.18plus', 'true')
        tools.showDialog.ok(
            tools.addonName,
            'You can now view 18+ content if signed into Kitsu.')
Example #7
0
    def play(self, data, args):
        #Set Up Metadata
        info = json.loads(tools.unquote(args))

        try:
            ep_num = info['episodeNumber']

            genre_string = ', '.join(info['genres'])

            metadata = {
                'title': info['episode_title'],
                'tvshowtitle': info['titles']['canon'],
                'season': info['seasonNumber'],
                'episode': info['episodeNumber'],
                'genre': genre_string,
                'year': info['airdate'][:4],
                'plot': info['episodePlot']
            }
        except:
            genre_string = ', '.join(info['genres'])

            metadata = {
                'title': info['titles']['canon'],
                'genre': genre_string,
                'year': info['year'],
                'plot': info['plot']
            }

        item = tools.menuItem(path=data['url'])
        item.setInfo(type='video', infoLabels=metadata)
        item.setArt(info['art'])
        item.setProperty('Video', 'true')
        item.setProperty('isPlayable', 'true')

        if data['adaptive'] != False and 'auengine' not in data['url']:
            item.setProperty('inputstreamaddon', 'inputstream.adaptive')
            item.setProperty('inputstream.adaptive.manifest_type',
                             data['adaptive'])

        tools.setSetting('anime.lastwatched', str(info['id']))

        try:
            if int(info['episodeNumber']) == int(info['episode_count']):
                kitsu_status = 'completed'
                mal_status = 2
                anilist_status = 'COMPLETED'
            else:
                kitsu_status = 'current'
                mal_status = 1
                anilist_status = 'CURRENT'
        except:
            kitsu_status = 'current'
            mal_status = 1
            anilist_status = 'CURRENT'

        try:
            if tools.getSetting('kitsu.access') != '' and tools.getSetting(
                    'kitsu.track') == 'true':
                accounts.Kitsu().track(info['id'], info['episodeNumber'],
                                       kitsu_status)
            if tools.getSetting('mal.sessionid') != '' and tools.getSetting(
                    'mal.track') == 'true':
                accounts.Mal().track(info['id'], info['episodeNumber'],
                                     mal_status)
            if tools.getSetting('ani.userid') != '' and tools.getSetting(
                    'ani.track') == 'true':
                accounts.Anilist().track(info['id'], info['episodeNumber'],
                                         anilist_status)
        except:
            if tools.getSetting('kitsu.access') != '' and tools.getSetting(
                    'kitsu.track') == 'true':
                accounts.Kitsu().track(info['id'], '1', 'current')
            if tools.getSetting('mal.sessionid') != '' and tools.getSetting(
                    'mal.track') == 'true':
                accounts.Mal().track(info['id'], '1', 2)
            if tools.getSetting('ani.userid') != '' and tools.getSetting(
                    'ani.track') == 'true':
                accounts.Anilist().track(info['id'], '1', 'COMPLETED')

        tools.resolvedUrl(syshandle, True, item)

        if data['subtitles'] != None:
            subtitle_link = data['subtitles']

            sub_file_ex = subtitle_link.split('.')
            sub_file_ex = sub_file_ex[int(len(sub_file_ex) - 1)]

            #subtitle_location = os.path.join(tools.subtitle_file, 'temp.%s' % sub_file_ex)
            subtitle_location = tools.subtitle_file

            if os.path.exists(subtitle_location):
                os.remove(subtitle_location)
            file = requests.get(subtitle_link)
            sub_data = file.text
            sub_data = sub_data.encode('utf-8')
            with open(subtitle_location, 'wb') as code:
                code.write(sub_data)
            tools.sleep(3000)
            tools.player().setSubtitles(subtitle_location)