Canales X Adaptados
Publicado: 04 Feb 2011, 10:36
Hola a tod@s
Dejo aqui el código de la adaptación de algunos canales:
[*]tupornotv
No funciona el buscador
[*]myhentaitube
[*]mocosoftx
Solo funciona las novedades
Para habilitar estos canales añadir al archivo de configuración pelisalacarta.conf
Y en el channelselector.py
Cambiad el atributo xbmc a generic del listado
Un saludo
Dejo aqui el código de la adaptación de algunos canales:
[*]tupornotv
No funciona el buscador
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para tupornotv
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys
import xbmc
import xbmcgui
import xbmcplugin
import scrapertools
import megavideo
import servertools
import binascii
import xbmctools
import config
from item import Item
import logger
import buscador
CHANNELNAME = "tupornotv"
# Esto permite su ejecución en modo emulado
try:
pluginhandle = int( sys.argv[ 1 ] )
except:
pluginhandle = ""
# Traza el inicio del canal
logger.info("[tupornotv.py] init")
def mainlist(params,url,category):
logger.info("[tupornotv.py] mainlist")
itemlist = getmainlist(params,url,category)
xbmctools.renderItems(itemlist, params, url, category)
def getmainlist(params,url,category):
logger.info("[tupornotv.py] getmainlist")
itemlist = []
itemlist.append( Item( channel=CHANNELNAME , title="Novedades" , action="novedades" , url="http://tuporno.tv/" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Categorias" , action="categorias" , url="http://tuporno.tv/" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Videos Recientes" , action="novedades" , url="http://tuporno.tv/videosRecientes/" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Top Videos (mas votados)" , action="masVotados" , url="http://tuporno.tv/topVideos/" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Nube de Tags" , action="categorias" , url="http://tuporno.tv/" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Buscar" , action="buscar" , url="http://tuporno.tv/" , folder=True ) )
return itemlist
def masVotados(params,url,category):
logger.info("[tupornotv.py] masVotadas")
itemlist = getmasVotados(params,url,category)
xbmctools.renderItems(itemlist, params, url, category)
def novedades(params,url,category):
logger.info("[tupornotv.py] novedades")
itemlist = getnovedades(params,url,category)
xbmctools.renderItems(itemlist, params, url, category)
def categorias(params,url,category):
logger.info("[tupornotv.py] categorias")
itemlist = getcategorias(params,url,category)
xbmctools.renderItems(itemlist, params, url, category)
def buscar(params,url,category):
logger.info("[tupornotv.py] buscar")
buscador.listar_busquedas(params,url,category)
def searchresults(params,Url,category):
logger.info("[tupornotv.py] searchresults")
buscador.salvar_busquedas(params,Url,category)
url = "http://www.tuporno.tv/buscador/?str=%s" %Url
itemlist = getsearchresults(params,url,category)
xbmctools.renderItems(itemlist, params, url, category)
def nextsearchpage(params,url,category):
logger.info("[tupornotv.py] nextsearchpage")
itemlist = getsearchresults(params,url,category)
xbmctools.renderItems(itemlist, params, url, category)
def getmasVotados(params,url,category):
logger.info("[tupornotv.py] getmasVotadas")
itemlist = []
itemlist.append( Item( channel=CHANNELNAME , title="Hoy" , action="novedades" , url="http://tuporno.tv/topVideos/todas/hoy" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Recientes" , action="novedades" , url="http://tuporno.tv/topVideos/todas/recientes" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Semana" , action="novedades" , url="http://tuporno.tv/topVideos/todas/semana" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Mes" , action="novedades" , url="http://tuporno.tv/topVideos/todas/mes" , folder=True ) )
itemlist.append( Item( channel=CHANNELNAME , title="Año" , action="novedades" , url="http://tuporno.tv/topVideos/todas/ano" , folder=True ) )
return itemlist
def getsearchresults(params,url,category):
logger.info("[tupornotv.py] getsearchresults")
# ------------------------------------------------------
# Descarga la página
# ------------------------------------------------------
data = scrapertools.cachePage(url)
#logger.info(data)
# ------------------------------------------------------
# Extrae las entradas
# ------------------------------------------------------
# seccion busquedas
'''
<td align="left"><a href="/videos/cumpleanos_4"><img src="/imagenes/videos//c/u/cumpleanos_4_imagen2.jpg" alt="cumpleaños" border="0" /></a></td>
<td width="100%" rowspan="2" valign="top" class="datos">
<h2><a href="/videos/cumpleanos_4">cumpleaños</a> <span class="tmp">1:53</span></h2>
'''
patronvideos = '<td align="left"><a href="(.videos[^"]+)"><img src="([^"]+)" alt="([^"]+)".*?</a>.*?'
patronvideos += '<span class="tmp">([^<]+)</span>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
if DEBUG: scrapertools.printMatches(matches)
itemlist = []
for match in matches:
# Titulo
scrapedtitle = match[2].replace("<b>","").replace("</b>","")
scrapedurl = urlparse.urljoin(url,match[0])
scrapedthumbnail = urlparse.urljoin(url,match[1])
scrapedplot = ""
duracion = match[3].replace("Duración: ","")
print duracion
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 , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=False , duration=duracion) )
# ------------------------------------------------------
# Extrae el paginador
# ------------------------------------------------------
#<a href="/buscador/?str=pillada&desde=2" class="enlace_si">Siguiente </a>
patronvideos = '<a href="([^"]+)" class="enlace_si">Siguiente </a>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
if len(matches)>0:
scrapedurl = urlparse.urljoin(url,matches[0])
itemlist.append( Item(channel=CHANNELNAME, action="nextsearchpage", title="!Next page" , url=scrapedurl , folder=True) )
return itemlist
def getnovedades(params,url,category):
logger.info("[tupornotv.py] getnovedades")
# ------------------------------------------------------
# Descarga la página
# ------------------------------------------------------
data = scrapertools.cachePage(url)
#logger.info(data)
# ------------------------------------------------------
# Extrae las entradas
# ------------------------------------------------------
# seccion novedades
'''
<table border="0" cellpadding="0" cellspacing="0" ><tr><td align="center" width="100%" valign="top" height="160px">
<a href="/videos/cogiendo-en-el-bosque"><img src="imagenes/videos//c/o/cogiendo-en-el-bosque_imagen2.jpg" alt="Cogiendo en el bosque" border="0" align="top" /></a>
<h2><a href="/videos/cogiendo-en-el-bosque">Cogiendo en el bosque</a></h2>
'''
patronvideos = '(?:<table border="0" cellpadding="0" cellspacing="0" ><tr><td align="center" width="100." valign="top" height="160px">|<td align="center" valign="top" width="25%">)[^<]+'
patronvideos += '<a href="(.videos[^"]+)"><img src="([^"]+)" alt="([^"]+)"(.*?)</td>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
if DEBUG: scrapertools.printMatches(matches)
itemlist = []
for match in matches:
# Titulo
scrapedtitle = match[2]
scrapedurl = urlparse.urljoin(url,match[0])
scrapedthumbnail = urlparse.urljoin(url,match[1])
scrapedplot = ""
try:
duracion = re.compile('Duración: (.+?)</span>').findall(match[3])[0]
except:
try:
duracion = re.compile('\((.+?)\)<br').findall(match[3])[0]
except:
duracion = ""
logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
print duracion
# Añade al listado de XBMC
itemlist.append( Item(channel=CHANNELNAME, action="play", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=False , duration=duracion) )
# ------------------------------------------------------
# Extrae el paginador
# ------------------------------------------------------
#<a href="/topVideos/todas/mes/2/" class="enlace_si">Siguiente </a>
patronvideos = '<a href="([^"]+)" class="enlace_si">Siguiente </a>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
if len(matches)>0:
scrapedurl = urlparse.urljoin(url,matches[0])
itemlist.append( Item(channel=CHANNELNAME, action="novedades", title="!Next page" , url=scrapedurl , folder=True) )
return itemlist
def getcategorias(params,url,category):
logger.info("[tupornotv.py] getcategorias")
# ------------------------------------------------------
# Descarga la página
# ------------------------------------------------------
data = scrapertools.cachePage(url)
#logger.info(data)
title = urllib.unquote_plus( params.get("title") )
# ------------------------------------------------------
# Extrae las entradas
# ------------------------------------------------------
# seccion categorias
# Patron de las entradas
if title == "Categorias":
patronvideos = '<li><a href="([^"]+)"' # URL
patronvideos += '>([^<]+)</a></li>' # TITULO
else:
patronvideos = '<a href="(.tags[^"]+)"' # URL
patronvideos += ' class="[^"]+">([^<]+)</a>' # TITULO
matches = re.compile(patronvideos,re.DOTALL).findall(data)
if DEBUG: scrapertools.printMatches(matches)
itemlist = []
for match in matches:
if match[1] in ["SexShop","Videochat","Videoclub"]:
continue
# Titulo
scrapedtitle = match[1]
scrapedurl = urlparse.urljoin(url,match[0])
scrapedthumbnail = ""
scrapedplot = ""
logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
# Añade al listado de XBMC
itemlist.append( Item(channel=CHANNELNAME, action="novedades", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) )
return itemlist
def play(params,url,category):
logger.info("[tupornotv.py] play")
title = urllib.unquote_plus( params.get("title") )
thumbnail = urllib.unquote_plus( params.get("thumbnail") )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
server = "Directo"
#http://tuporno.tv/videos/adolescentes-trio-follando-18
#http://149.12.64.129/videoscodiH264/a/d/adolescentes-trio-follando-18.flv
trozos = url.split("/")
id = trozos[len(trozos)-1]
url = "http://149.12.64.129/videoscodiH264/"+id[0:1]+"/"+id[1:2]+"/"+id+".flv"
logger.info("url="+url)
xbmctools.playvideo(CHANNELNAME,server,url,category,title,thumbnail,plot)
def addfolder(nombre,url,accion):
logger.info('[tupornotv.py] addfolder( "'+nombre+'" , "' + url + '" , "'+accion+'")"')
listitem = xbmcgui.ListItem( nombre , iconImage="DefaultFolder.png")
itemurl = '%s?channel=tupornotv&action=%s&category=%s&url=%s' % ( sys.argv[ 0 ] , accion , urllib.quote_plus(nombre) , url )
xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = itemurl , listitem=listitem, isFolder=True)
def addvideo(nombre,url,category,server):
logger.info('[tupornotv.py] addvideo( "'+nombre+'" , "' + url + '" , "'+server+'")"')
listitem = xbmcgui.ListItem( nombre, iconImage="DefaultVideo.png" )
listitem.setInfo( "video", { "Title" : nombre, "Plot" : nombre } )
itemurl = '%s?channel=tupornotv&action=play&category=%s&url=%s&server=%s' % ( sys.argv[ 0 ] , category , url , server )
xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=itemurl, listitem=listitem, isFolder=False)
def addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , accion ):
logger.info('[tupornotv.py] addthumbnailfolder( "'+scrapedtitle+'" , "' + scrapedurl + '" , "'+scrapedthumbnail+'" , "'+accion+'")"')
listitem = xbmcgui.ListItem( scrapedtitle, iconImage="DefaultFolder.png", thumbnailImage=scrapedthumbnail )
itemurl = '%s?channel=tupornotv&action=%s&category=%s&url=%s' % ( sys.argv[ 0 ] , accion , urllib.quote_plus( scrapedtitle ) , urllib.quote_plus( scrapedurl ) )
xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = itemurl , listitem=listitem, isFolder=True)
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para myhentaitube
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys
import scrapertools
import megavideo
import servertools
import binascii
import config
from item import Item
import logger
CHANNELNAME = "myhentaitube"
# Traza el inicio del canal
logger.info("[myhentaitube.py] init")
DEBUG = True
def mainlist(item):
logger.info("[myhentaitube.py] mainlist")
itemlist = getmainlist(item)
#xbmctools.renderItems(itemlist, params, url, category)
return itemlist
def getmainlist(item):
logger.info("[myhentaitube.py] getmainlist")
itemlist = []
itemlist.append( Item( channel=CHANNELNAME , title="Novedades" , action="novedades" , url="http://myhentaitube.com/" , folder=True ) )
return itemlist
def novedades(item):
logger.info("[myhentaitube.py] novedades")
itemlist = getnovedades(item)
#xbmctools.renderItems(itemlist, params, url, category)
return itemlist
def getnovedades(item):
logger.info("[myhentaitube.py] getnovedades")
# Descarga la pagina
data = scrapertools.cachePage(item.url)
#logger.info(data)
# Extrae las entradas
# seccion novedades
'''
<a href="/index.php?option=com_content&view=article&id=29:ai-shimai-hentai-movie-anime-&catid=1:movies&Itemid=2">
<img src="/images/stories/ai_shimai_dvd copy.gif" border="0" />
</a>
'''
#patronvideos = '<p style="text-align: center;">.*?'
patronvideos = '<a href="(/index.php[^"]+view=article[^"]+id=[^:]([^"]+)catid=1+[^"]+)">[^<]*?'
patronvideos += '<img src="([^"]+)".*?</a>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
if DEBUG: scrapertools.printMatches(matches)
itemlist = []
for match in matches:
# Titulo
scrapedtitle = match[1]
scrapedurl = urlparse.urljoin(item.url,match[0])
scrapedthumbnail = urlparse.urljoin(item.url,match[2]).replace(" ", "%20")
scrapedplot = scrapertools.htmlclean(match[1].strip())
if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
# Añade al listado de XBMC
itemlist.append( Item(channel=CHANNELNAME, action="capitulos", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) )
# Extrae el paginador
patronvideos = '<a href="(\/index.php\?pageNum[^"]+)">[^<]+</a></span>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
if len(matches)>0:
scrapedurl = urlparse.urljoin(item.url,matches[0])
itemlist.append( Item(channel=CHANNELNAME, action="novedades", title="!Página siguiente" , url=scrapedurl , folder=True) )
return itemlist
def capitulos(item):
logger.info("[myhentaitube.py] capitulos")
itemlist = getcapitulos(item)
#xbmctools.renderItems(itemlist, params, url, category)
return itemlist
def getcapitulos(item):
logger.info("[myhentaitube.py] getcapitulos")
title = urllib.unquote_plus( item.title )
thumbnail = urllib.unquote_plus( item.thumbnail )
plot = urllib.unquote_plus( item.plot )
# Descarga la pagina
data = scrapertools.cachePage(item.url)
#logger.info(data)
# Busca el argumento
patronvideos = '<div class="ficha_des">(.*?)</div>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
if len(matches)>0:
plot = scrapertools.htmlclean(matches[0])
logger.info("plot actualizado en detalle");
else:
logger.info("plot no actualizado en detalle");
# Busca los enlaces a los mirrors, o a los capitulos de las series...
'''
<h3 style="text-align: center;">
<a href="/index.php?option=com_content&view=article&id=8&Itemid=2">CAPITULO 1
</a></h3>
'''
patronvideos = '<a href="(/index.php[^"]+view=article[^"]+id=[^"]+)">([^<]+)<'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
itemlist = listURL(matches,item.url)
#~ for match in matches:
#~ # Titulo
#~ scrapedtitle = match[1]
#~ scrapedurl = urlparse.urljoin(item.url,match[0])
#~ scrapedthumbnail = thumbnail
#~ scrapedplot = plot
#~
#~ 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 , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=False) )
return itemlist
def listURL(matches, url):
logger.info("[myhentaitube.py] detail")
itemlist=[]
for match in matches:
# Titulo
scrapedtitle = match[1]
scrapedurl = urlparse.urljoin(url,match[0])
# Descarga la pagina
data = scrapertools.cachePage(scrapedurl)
patron = "QT_WriteOBJECT_XHTML\('([^']+)'"
matchesVideos = re.compile(patron,re.DOTALL).findall(data)
if len(matchesVideos)>0:
scrapedurl = matchesVideos[0]
server="Directo"
# Añade al listado de XBMC
itemlist.append( Item(channel=CHANNELNAME, action="play", title=scrapedtitle , url=scrapedurl , server=server, folder=False) )
return itemlist
Solo funciona las novedades
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para mocosoftx
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys
import scrapertools
import megavideo
import servertools
import binascii
import config
import logger
from item import Item
CHANNELNAME = "mocosoftx"
USER = config.getSetting("privateuser")
PASSWORD = config.getSetting("privatepassword")
LOGINURL = "http://mocosoftx.com/foro/login2/?user=" + USER + "&passwrd=" + PASSWORD + "&cookieneverexp=on&hash_passwrd="
DEBUG=True
# Esto permite su ejecución en modo emulado
try:
pluginhandle = int( sys.argv[ 1 ] )
except:
pluginhandle = ""
# Traza el inicio del canal
logger.info("[mocosoftx.py] init")
DEBUG = True
def GetSessionID():
# Descarga la página
data = scrapertools.cachePage(LOGINURL)
#logger.info(data)
plogin = '<a href="([^"]+)">ingresa</a>'
plogout = '<a href="http://mocosoftx.com/foro/logout/?([^"]+)"><span>'
matches = re.compile(plogout,re.DOTALL).findall(data)
if len(matches)>0:
return str(matches[0])
else:
return ''
def mainlist(item):
logger.info("[mocosoftx.py] mainlist")
itemlist = []
sid = GetSessionID()
# Añade al listado de XBMC
#xbmctools.addnewfolder( CHANNELNAME , "Novedades" , category , "Novedades" ,"http://mocosoftx.com/foro/index.php"+sid,"","")
itemlist.append( Item( channel=CHANNELNAME , title="Novedades" , action="Novedades" , url="http://mocosoftx.com/foro/index.php"+sid , folder=True ) )
if sid=='':
itemlist.append( Item( channel=CHANNELNAME , title="Listado Completo" , action="FullList" , url="http://www.mocosoftx.com/foro/index.php?action=.xml;type=rss2;limit=500;board=14" , folder=True ) )
#xbmctools.addnewfolder( CHANNELNAME , "FullList" , category , "Listado Completo" ,"http://www.mocosoftx.com/foro/index.php?action=.xml;type=rss2;limit=500;board=14","","")
else:
itemlist.append( Item( channel=CHANNELNAME , title="Listado Completo" , action="FullList" , url="http://www.mocosoftx.com/foro/index.php"+sid+";action=.xml;type=rss2;limit=500;board=14" , folder=True ) )
#xbmctools.addnewfolder( CHANNELNAME , "FullList" , category , "Listado Completo" ,"http://www.mocosoftx.com/foro/index.php"+sid+";action=.xml;type=rss2;limit=500;board=14","","")
# Propiedades
#xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
#xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
#xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
return itemlist
def Novedades(item):
logger.info("[mocosoftx.py] Novedades")
itemlist = []
# Descarga la página
data = scrapertools.cachePage(item.url)
#logger.info(data)
# Extrae las entradas (carpetas)
patron = '<td class="sp_middle sp_regular_padding sp_fullwidth">'
patron += '<a href="(http://mocosoftx.com/foro/peliculas-xxx-online-\(completas\)/[^/]+/)[^"]+"'
patron += '>([^<]+)</a>'
patron += '.*?<img src="([^"]+)" alt="'
matches = re.compile(patron,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Atributos
scrapedtitle = match[1]
scrapedurl = match[0]
scrapedthumbnail = match[2]
scrapedplot = ""
# if (DEBUG): logger.info("title=["+scrapedtitle+"], url=["+scrapedurl+"], thumbnail=["+scrapedthumbnail+"]")
# Añade al listado de XBMC
itemlist.append( Item( channel=CHANNELNAME , title=scrapedtitle , action="detail" , url=scrapedurl , plot=scrapedplot, thumbnail=scrapedthumbnail, folder=True ) )
#xbmctools.addnewfolder( CHANNELNAME , "detail" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
# Extrae la marca de siguiente página
patronvideos = '\[<b>[^<]+</b>\] <a class="navPages" href="([^"]+)">'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
if len(matches)>0:
scrapedtitle = "Página siguiente"
scrapedurl = urlparse.urljoin(item.url,matches[0])
scrapedthumbnail = ""
scrapedplot = ""
itemlist.append( Item( channel=CHANNELNAME , title=scrapedtitle , action="Novedades" , url=scrapedurl , plot=scrapedplot, thumbnail=scrapedthumbnail, folder=True ) )
#xbmctools.addnewfolder( CHANNELNAME , "Novedades" , category , scrapedtitle , scrapedurl , scrapedthumbnail, scrapedplot )
# Propiedades
#~ xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
#~ xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
#~ xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
return itemlist
def FullList(item):
logger.info("[mocosoftx.py] FullList")
itemlist = []
url = item.url
if url=="":
url = "http://www.mocosoftx.com/foro/index.php?action=.xml;type=rss2;limit=500;board=14"
# Descarga la página
data = scrapertools.cachePage(url)
#logger.info(data)
# Extrae las entradas (carpetas)
patron = '<item>(.*?)</item>'
matchesITEM = re.compile(patron,re.DOTALL).findall(data)
#scrapertools.printMatches(matchesITEM[0])
patronvideos = '<title>(.*?)</title><link>(.*?)</link>.*?'
#patronvideos += '<\!\[CDATA\[<a href="[^"]+" target="_blank"><img src="([^"]+)".*?'
for match in matchesITEM:
matches = re.compile(patronvideos,re.DOTALL).findall(match)
#print len(matches)
scrapertools.printMatches(matches)
for match2 in matches:
# Titulo
scrapedtitle = match2[0]
scrapedtitle = scrapedtitle.replace("<![CDATA[","")
scrapedtitle = scrapedtitle.replace("]]>","")
# URL
scrapedurl = match
# Thumbnail
scrapedthumbnail = match2[1]
# Argumento
scrapedplot = ""
# Depuracion
if (DEBUG):
logger.info("scrapedtitle="+scrapedtitle)
logger.info("scrapedurl="+scrapedurl)
logger.info("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
itemlist.append( Item( channel=CHANNELNAME , title=scrapedtitle , action="detail" , url=scrapedurl , plot=scrapedplot, thumbnail=scrapedthumbnail, folder=True ) )
#xbmctools.addnewfolder( CHANNELNAME , "detail" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot)
# Label (top-right)...
#xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )
# Disable sorting...
#xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
#xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
return itemlist
def detail(item):
logger.info("[mocosoftx.py] detail")
itemlist = []
url = item.url
title = urllib.unquote_plus( item.title )
thumbnail = urllib.unquote_plus( item.thumbnail )
#plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
if "CDATA" in url:
data = url
patronthumb = '<img src="([^"]+)"'
matches = re.compile(patronthumb,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
else:
#Descarga la página
sid = GetSessionID()
data = scrapertools.cachePage(url+sid)
patronthumb = '<img src="([^"]+)" alt="" border="0" />[</a>|<br />]+'
matches = re.compile(patronthumb,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
#logger.info(data)
#addnewvideo( canal , accion , category , server , title , url , thumbnail, plot ):
# ------------------------------------------------------------------------------------
# Busca los enlaces a los videos
# ------------------------------------------------------------------------------------
listavideos = servertools.findvideos(data)
c=0
for video in listavideos:
c=c+1
try:
imagen = matches[c]
except:
imagen = thumbnail
itemlist.append( Item( channel=CHANNELNAME , title=title+" - ["+video[2]+"]" , action="play" , server= video[2], url=video[1] , plot=item.plot, folder=True ) )
#xbmctools.addnewvideo( CHANNELNAME ,"play",category,video[2], title+" - ["+video[2]+"]" , video[1] , imagen, plot )
# ------------------------------------------------------------------------------------
# Label (top-right)...
#xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )
# Disable sorting...
#xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
#xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
return itemlist
def play(params,url,category):
logger.info("[mocosoftx.py] play")
title = ""#unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" )
thumbnail = ""#urllib.unquote_plus( params.get("thumbnail") )
plot = "" #unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
server = params["server"]
xbmctools.playvideo(CHANNELNAME,server,url,category,title,thumbnail,plot)
Código: Seleccionar todo
# Adult Mode
enableadultmode=true
Cambiad el atributo xbmc a generic del listado
Código: Seleccionar todo
if config.getSetting("enableadultmode") == "true":
channelslist.append([ "PeliculasEroticas" , "peliculaseroticas" , "" , "ES" , "F" , "xbmc" ])
channelslist.append([ "MocosoftX" , "mocosoftx" , "" , "ES" , "F" , "generic" ])
channelslist.append([ "Anifenix.com" , "anifenix" , "" , "ES" , "F" , "xbmc" ])
channelslist.append([ "tuporno.tv" , "tupornotv" , "" , "ES" , "F" , "generic" ])
channelslist.append([ "myhentaitube" , "myhentaitube" , "" , "ES" , "F" , "generic" ])
channelslist.append([ "tubehentai" , "tubehentai" , "" , "ES" , "F" , "xbmc" ])
channelslist.append([ "xhamster" , "xhamster" , "" , "ES" , "F" , "xbmc" ])