# -*- coding: utf-8 -*- #------------------------------------------------------------ # pelisalacarta - XBMC Plugin # Canal para seriematic # http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/ #------------------------------------------------------------ import urlparse,urllib2,urllib,re import os import sys from core import logger from core import config from core import scrapertools from core.item import Item from servers import servertools CHANNELNAME = "seriematic" DEBUG = True def isGeneric(): return True def mainlist(item): logger.info("[seriematic.py] mainlist") itemlist = [] itemlist.append( Item(channel=CHANNELNAME, title="Series" , action="series", url="http://www.seriematic.com/series.php")) itemlist.append( Item(channel=CHANNELNAME, title="Miniseries" , action="series", url="http://www.seriematic.com/miniseries.php")) itemlist.append( Item(channel=CHANNELNAME, title="Dibujos" , action="series", url="http://www.seriematic.com/dibujos.php")) itemlist.append( Item(channel=CHANNELNAME, title="Anime" , action="series", url="http://www.seriematic.com/manga.php")) return itemlist def series(item): logger.info("[seriematic.py] series") # Descarga la página data = scrapertools.cachePage(item.url) # Extrae las entradas ''' 1000 Maneras de morir ''' patronvideos = '([^<]+)' matches = re.compile(patronvideos,re.DOTALL).findall(data) if DEBUG: scrapertools.printMatches(matches) itemlist = [] for match in matches: scrapedtitle = match[1] scrapedplot = "" scrapedurl = urlparse.urljoin(item.url,match[0]) scrapedthumbnail = "" if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]") # Añade al listado de XBMC itemlist.append( Item(channel=CHANNELNAME, action="episodios", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) return itemlist def episodios(item): logger.info("[seriematic.py] episodios") # Descarga la página data = scrapertools.cachePage(item.url) # Extrae las entradas patronvideos = '<\!-- Column 1 start -->(.*?)<\!-- Column 1 end -->' matches = re.compile(patronvideos,re.DOTALL).findall(data) if DEBUG: scrapertools.printMatches(matches) itemlist = [] for elemento in matches: patronvideos = '([^<]+)([^<]+)' matches2 = re.compile(patronvideos,re.DOTALL).findall(elemento) for match in matches2: scrapedtitle = match[0]+" "+match[2] scrapedplot = "" scrapedurl = urlparse.urljoin(item.url,match[1]) scrapedthumbnail = "" if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]") # Añade al listado de XBMC itemlist.append( Item(channel=CHANNELNAME, action="videos", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) return itemlist def videos(item): logger.info("[seriematic.py] videos") # Descarga la página data = scrapertools.cachePage(item.url) # Extrae las entradas patronvideos = '([^<]+)[^]+/>([^<]+)<' matches = re.compile(patronvideos,re.DOTALL).findall(data) if DEBUG: scrapertools.printMatches(matches) itemlist = [] for match in matches: scrapedtitle = match[0]+" "+match[2]+" [Megavideo]" scrapedplot = "" scrapedurl = match[1] scrapedthumbnail = "" server="Megavideo" if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]") # Añade al listado de XBMC itemlist.append( Item(channel=CHANNELNAME, action="play", title=scrapedtitle , url=scrapedurl , server=server , folder=False) ) patronvideos = '[^<]+]+>p1\(\'([^\']+)\',\'M\'\).]+>([^<]+)<' matches = re.compile(patronvideos,re.DOTALL).findall(data) if DEBUG: scrapertools.printMatches(matches) for match in matches: scrapedtitle = match[1]+" [Megaupload]" scrapedplot = "" scrapedurl = match[0] scrapedthumbnail = "" server="Megaupload" if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]") # Añade al listado de XBMC itemlist.append( Item(channel=CHANNELNAME, action="play", title=scrapedtitle , url=scrapedurl , server=server , folder=False) ) return itemlist