A modo de instrucciones sencillas:
1) Modificar channelselector.py y añadir el nuevo canal:
2) Añadir este fichero mocosoftx.py en la carpeta "channels":
Código: Seleccionar todo
# -*- coding: iso-8859-1 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para mocosoftx
# 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
CHANNELNAME = "mocosoftx"
# Esto permite su ejecución en modo emulado
try:
pluginhandle = int( sys.argv[ 1 ] )
except:
pluginhandle = ""
# Traza el inicio del canal
xbmc.output("[mocosoftx.py] init")
DEBUG = True
def mainlist(params,url,category):
xbmc.output("[mocosoftx.py] mainlist")
if url=="":
url = "http://mocosoftx.com/foro/index.php?board=14.0/"
# Descarga la página
data = scrapertools.cachePage(url)
#xbmc.output(data)
# Extrae las entradas (carpetas)
patronvideos = '<span id=".*?">'
patronvideos += '<a href="([^"]+)">([^<]+)</a>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
scrapedtitle = match[1]
# URL
scrapedurl = urlparse.urljoin(url,match[0])
# Thumbnail
scrapedthumbnail = ""
# Argumento
scrapedplot = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
xbmctools.addnewfolder( CHANNELNAME , "detail" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot)
# Página siguiente
# patronvideos = "<a class='blog-pager-older-link' href='([^']+)' id='Blog1_blog-pager-older-link' title='Entradas antiguas'>Entradas antiguas</a>"
patronvideos = '<a class="navPages" href="([^"]+)">([^<]+)<'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
scrapedtitle = "Página " + match[ 1 ]
# URL
scrapedurl = urlparse.urljoin(url,match[ 0 ])
# Thumbnail
scrapedthumbnail = ""
# Argumento
scrapedplot = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
xbmctools.addnewfolder( CHANNELNAME , "mainlist" , category , scrapedtitle , scrapedurl , scrapedthumbnail , scrapedplot)
if xbmcplugin.getSetting("singlechannel")=="true":
xbmctools.addSingleChannelOptions(params,url,category)
# 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 )
def detail(params,url,category):
xbmc.output("[mocosoftx.py] detail")
title = unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" )
thumbnail = urllib.unquote_plus( params.get("thumbnail") )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
# Descarga la página
data = scrapertools.cachePage(url)
#xbmc.output(data)
# ------------------------------------------------------------------------------------
# Busca los enlaces a los videos
# ------------------------------------------------------------------------------------
listavideos = servertools.findvideos(data)
for video in listavideos:
xbmctools.addvideo( CHANNELNAME , "Megavideo - "+video[0] , video[1] , category , video[2] )
# ------------------------------------------------------------------------------------
# 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 )
def play(params,url,category):
xbmc.output("[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)
3) Por último, añadir este fichero PNG en la carpeta "resources\images" como mocosoftx.png:
Lo que faltaría es poder mostrar la portada de cada peli. A ver si lo conseguimos. Y tambien control parental.
Por lo demás, es un canal realmente bueno
