# -*- coding: utf-8 -*- # ------------------------------------------------------------ # Canale per animeworld # ---------------------------------------------------------- import re import time import urllib import urlparse import channelselector from channelselector import thumb from core import httptools, scrapertoolsV2, servertools, tmdb, support, jsontools from core.item import Item from platformcode import logger, config from specials import autoplay, autorenumber __channel__ = 'animeworld' host = config.get_setting("channel_host", __channel__) headers = [['Referer', host]] IDIOMAS = {'Italiano': 'Italiano'} list_language = IDIOMAS.values() list_servers = ['diretto'] list_quality = [] checklinks = config.get_setting('checklinks', 'animeworld') checklinks_number = config.get_setting('checklinks_number', 'animeworld') def mainlist(item): logger.info(__channel__+" mainlist") itemlist =[] support.menu(itemlist, 'Anime bold', 'lista_anime', host+'/az-list') support.menu(itemlist, 'ITA submenu', 'build_menu', host+'/filter?language[]=1', args=["anime"]) support.menu(itemlist, 'Sub-ITA submenu', 'build_menu', host+'/filter?language[]=0', args=["anime"]) support.menu(itemlist, 'Archivio A-Z submenu', 'alfabetico', host+'/az-list', args=["tvshow","a-z"]) support.menu(itemlist, 'In corso submenu', 'video', host+'/', args=["in sala"]) support.menu(itemlist, 'Generi submenu', 'generi', host+'/') support.menu(itemlist, 'Ultimi Aggiunti bold', 'video', host+'/newest', args=["anime"]) support.menu(itemlist, 'Ultimi Episodi bold', 'video', host+'/updated', args=["novita'"]) support.menu(itemlist, 'Cerca...', 'search') autoplay.init(item.channel, list_servers, list_quality) autoplay.show_option(item.channel, itemlist) itemlist.append( Item(channel='setting', action="channel_config", title=support.typo("Configurazione Canale color lime"), config=item.channel, folder=False, thumbnail=channelselector.get_thumb('setting_0.png')) ) return itemlist # Crea menu dei generi ================================================= def generi(item): support.log(item.channel+" generi") itemlist = [] patron_block = r'\sGeneri\s*' patron = r'' matches = support.match(item,patron, patron_block, headers)[0] for scrapedurl, scrapedtitle in matches: itemlist.append(Item( channel=item.channel, action="video", title=scrapedtitle, url="%s%s" % (host,scrapedurl))) return itemlist # Crea Menu Filtro ====================================================== def build_menu(item): itemlist = [] itemlist.append(Item( channel=item.channel, action="video", title="[B]Tutti[/B]", url=item.url)) data = httptools.downloadpage(item.url).data data = re.sub(r'\n|\t','',data) data = re.sub(r'>\s*<','><',data) block = scrapertoolsV2.find_single_match(data, r'
(.*?) (.*?)<\/ul>', re.DOTALL).findall(block) for title, html in matches: itemlist.append( Item(channel=item.channel, action='build_sub_menu', contentType="tvshow", title='[B] > ' + title + '[/B]', fulltitle=title, show=title, url=item.url, html=html, thumbnail=item.thumbnail, fanart=item.fanart)) # Elimina FLingua dal Menu itemlist.pop(6) itemlist.pop(6) itemlist = thumb(itemlist) return itemlist # Crea SottoMenu Filtro ====================================================== def build_sub_menu(item): itemlist = [] matches = re.compile(r'(.*?)<\/label>', re.DOTALL).findall(item.html) for name, value, title in matches: itemlist.append( Item(channel=item.channel, action='video', contentType="tvshow", title='[B]' + title + ' >[/B]', fulltitle=title, show=title, url=item.url + '&' + name + '=' + value, plot="")) itemlist = thumb(itemlist) return itemlist # Novità ====================================================== def newest(categoria): logger.info(__channel__+" newest") itemlist = [] item = Item() try: if categoria == "anime": item.url = host + '/newest' item.action = "video" itemlist = video(item) if itemlist[-1].action == "video": itemlist.pop() # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist # Cerca =========================================================== def search(item, texto): logger.info(texto) item.url = host + '/search?keyword=' + texto try: return video(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] # Lista A-Z ==================================================== def alfabetico(item): logger.info(__channel__+" alfabetico") itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r'\n|\t','',data) data = re.sub(r'>\s*<','><',data) block = scrapertoolsV2.find_single_match(data, r'.*?A alla Z.<\/span>.*?') id = scrapertoolsV2.find_single_match(block,r'