def login_refresh(self): try: control.setSetting(id='login.tokenrem', value='') control.setSetting(id='login.tokenses', value='') control.setSetting(id='login.tokencfd', value='') payload = { 'username': control.getSetting("9anime.username"), 'password': control.getSetting("9anime.password"), 'remember': 1 } url = self._to_url_login("user/ajax/login") p = requests.post(url, data=payload) r = p.headers['Set-Cookie'] remember_me = ''.join( re.compile('remember_web_.+?=(.+?);').findall(r)) session = ''.join(re.compile('session=(.+?);').findall(r)) cfduid = ''.join(re.compile('__cfduid=(.+?);').findall(r)) control.setSetting(id='login.tokenrem', value=remember_me) control.setSetting(id='login.tokenses', value=session) control.setSetting(id='login.tokencfd', value=cfduid) control.setSetting(id='login.auth', value='loggedin') dialog = xbmcgui.Dialog() dialog.ok(control.lang(30200), control.lang(30202)) except: dialog = xbmcgui.Dialog() dialog.ok(control.lang(30200), control.lang(30201))
def _get_watchlist_request(self, url, data=None): cookie = {'__cfduid': '%s' %(control.getSetting("login.tokencfd")),'web_theme': 'dark', 'session': '%s' %(control.getSetting("login.tokenses")), 'remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d': '%s' %(control.getSetting("login.tokenrem"))} results = requests.get(url, data, cookies=cookie) if results.status_code == 200: pass elif results.status_code == 503: xbmc.executebuiltin('RunPlugin(plugin://plugin.video.9anime/login_refresh)') cookie = {'__cfduid': '%s' %(control.getSetting("login.tokencfd")),'web_theme': 'dark', 'session': '%s' %(control.getSetting("login.tokenses")), 'remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d': '%s' %(control.getSetting("login.tokenrem"))} results = requests.get(url, data, cookies=cookie) results = results.text soup = bs.BeautifulSoup(results, 'html.parser') results = soup.find_all('div', attrs={"class":"content "}) return results
def bookmark(self, anime_id, folder): anime_id = anime_id.split('.')[-1] data = { "id" : anime_id[:4], "folder": folder, "random": 1 } cookie = {'__cfduid': '%s' %(control.getSetting("login.tokencfd")),'web_theme': 'dark', 'session': '%s' %(control.getSetting("login.tokenses")), 'remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d': '%s' %(control.getSetting("login.tokenrem"))} url = self._to_url_login("user/ajax/edit-watchlist") results = requests.get(url, data, cookies=cookie) if results.status_code == 200: pass elif results.status_code == 503: xbmc.executebuiltin('RunPlugin(plugin://plugin.video.9anime/login_refresh)') cookie = {'__cfduid': '%s' %(control.getSetting("login.tokencfd")),'web_theme': 'dark', 'session': '%s' %(control.getSetting("login.tokenses")), 'remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d': '%s' %(control.getSetting("login.tokenrem"))} results = requests.get(url, data, cookies=cookie) dialog = xbmcgui.Dialog() dialog.ok(control.lang(30203), json.loads(results.text)['message'])
def episode_playing(self, anime_id): try: anime_id = ' '.join(anime_id) anime_id = anime_id.rsplit('.', 1)[-1] anime_id = anime_id.rsplit('/', 1) data = {'data[%s]' % (anime_id[0]): anime_id[1]} cookie = { '__cfduid': '%s' % (control.getSetting("login.tokencfd")), 'web_theme': 'dark', 'session': '%s' % (control.getSetting("login.tokenses")), 'remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d': '%s' % (control.getSetting("login.tokenrem")) } url = self._to_url_login("user/ajax/playing") results = requests.post(url, data, cookies=cookie) except: dialog = xbmcgui.Dialog() dialog.ok(control.lang(30203), control.lang(30204))
def is_logged_in(self): return control.getSetting("login.auth") != ''
def _to_url_login(self, url): return self._to_url(url).replace( 'https://', 'https://%s.' % (control.getSetting("9anime.login_tld")))
def WATCHLIST(payload, params): return control.draw_items(WatchlistFlavor.watchlist_request(payload), contentType=control.getSetting("contenttype.menu"))