# -*- coding: utf-8 -*- # ------------------------------------------------------------ # Canale per AnimeSaturn # ---------------------------------------------------------- from core import support from platformcode import logger import pyaes host = support.config.get_channel_url() __channel__ = 'animesaturn' cookie = support.config.get_setting('cookie', __channel__) headers = {'X-Requested-With': 'XMLHttpRequest', 'Cookie': cookie} def get_cookie(data): global cookie, headers a = support.match(data, patron=r'a=toNumbers\("([^"]+?)"\)').match b = support.match(data, patron=r'b=toNumbers\("([^"]+?)"\)').match c = support.match(data, patron=r'c=toNumbers\("([^"]+?)"\)').match aes = pyaes.AESModeOfOperationCBC(bytes.fromhex(a), iv = bytes.fromhex(b)) cookie = "ASNew-9v=" + aes.decrypt(bytes.fromhex(c)).hex() logger.debug("cookie = " + cookie) support.config.set_setting('cookie', cookie, __channel__) headers = [['Cookie', cookie]] def get_data(url): data = support.match(url, headers=headers, follow_redirects=True).data if 'ASNew-9v' in data: get_cookie(data) data = get_data(url) return data @support.menu def mainlist(item): anime = ['/animelist', ('ITA',['', 'submenu', '/filter?language%5B0%5D=1']), ('SUB-ITA',['', 'submenu', '/filter?language%5B0%5D=0']), ('Più Votati',['/toplist','menu', 'top']), ('In Corso',['/animeincorso','peliculas','incorso']), ('Ultimi Episodi',['/fetch_pages.php?request=episodes&d=1','peliculas','updated'])] return locals() def search(item, texto): support.info(texto) item.url = host + '/animelist?search=' + texto item.contentType = 'tvshow' try: return peliculas(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): support.logger.error("%s" % line) return [] def newest(categoria): support.info() itemlist = [] item = support.Item() try: if categoria == "anime": item.url = host + '/fetch_pages.php?request=episodes&d=1' item.args = "updated" return peliculas(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): support.logger.error("{0}".format(line)) return [] return itemlist @support.scrape def submenu(item): data = get_data(item.url + item.args) #support.match(item.url + item.args).data action = 'filter' patronMenu = r'