2009-09-26, 19:54
# -*- coding: iso-8859-1 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para peliculasyonkis
# 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 = "darmoweonline"
# Esto permite su ejecución en modo emulado
try:
pluginhandle = int( sys.argv[ 1 ] )
except:
pluginhandle = ""
# Traza el inicio del canal
xbmc.output("[darmoweonline.py] init")
DEBUG = True
def mainlist(params,url,category):
xbmc.output("[darmoweonline.py] mainlist")
# Añade al listado de XBMC
addfolder("Listado por categorias","http://www.darmowefilmyonline.pl/index.php","listcategorias")
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def listcategorias(params,url,category):
xbmc.output("[darmoweonline.py] listcategorias")
# Descarga la página
data = scrapertools.cachePage(url)
#xbmc.output(data)
# Extrae las entradas (carpetas)
patronvideos = '<a href="([^"]+)">([^<]+)</a><br><br>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
try:
scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
except:
scrapedtitle = match[1]
# URL
scrapedurl = urlparse.urljoin("http://www.darmowefilmyonline.pl",match[0])
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapeddescription = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , "listvideos" )
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def listvideos(params,url,category):
xbmc.output("[darmoweonline.py] listvideos")
# Descarga la página
data = scrapertools.cachePage(url)
#xbmc.output(data)
# Extrae las entradas (carpetas)
patronvideos = '<a href="([^"]+)">Nas.*?</a></div></div>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
scrapedtitle = "Nas"
# URL
scrapedurl = match
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapeddescription = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
addfolder( scrapedtitle , scrapedurl , "listvideos" )
# Extrae las entradas (carpetas)
patronvideos = '<span.*?>: <b><a href="([^"]+)">([^"]+)</a></b></span></td>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
try:
scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
except:
scrapedtitle = match[1]
# URL
scrapedurl = match[0]
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapeddescription = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , "detail" )
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def detail(params,url,category):
xbmc.output("[darmoweonline.py.] detail")
data = scrapertools.cachePage(url)
patronvideos = '<embed src="([^"]+)"'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
listavideos = servertools.findvideos(data)
for video in listavideos:
addvideo( video[0] , video[1] , category , video[2] )
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
'''
def play(params,url,category):
xbmc.output("[peliculasyonkis.py] play")
title = unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" )
thumbnail = xbmc.getInfoImage( "ListItem.Thumb" )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
server = params["server"]
xbmc.output("[peliculasyonkis.py] thumbnail="+thumbnail)
xbmc.output("[peliculasyonkis.py] server="+server)
# Abre dialogo
dialogWait = xbmcgui.DialogProgress()
dialogWait.create( 'Accediendo al video...', title )
# Playlist vacia
playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO )
playlist.clear()
# Averigua la URL del vídeo
mediaurl=servertools.findurl(url,server)
xbmc.output("[peliculasyonkis.py] mediaurl="+mediaurl)
# Crea la entrada y la añade al playlist
listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
listitem.setInfo( "video", { "Title": title, "Plot" : plot , "Studio" : "peliculasyonkis.us" , "Genre" : category } )
playlist.add( mediaurl, listitem )
# Cierra dialogo
dialogWait.close()
del dialogWait
# Reproduce
xbmcPlayer = xbmc.Player( xbmc.PLAYER_CORE_AUTO )
xbmcPlayer.play(playlist)
'''
def play(params,url,category):
xbmc.output("[darmoweonline.py] play")
title = unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" )
thumbnail = xbmc.getInfoImage( "ListItem.Thumb" )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
server = params["server"]
xbmc.output("[darmoweonline.py] thumbnail="+thumbnail)
xbmc.output("[darmoweonline.py] server="+server)
xbmctools.playvideo(CHANNELNAME,server,url,category,title,thumbnail,plot)
def addfolder(nombre,url,accion):
xbmc.output('[darmoweonline.py] addfolder( "'+nombre+'" , "' + url + '" , "'+accion+'")"')
listitem = xbmcgui.ListItem( nombre , iconImage="DefaultFolder.png")
itemurl = '%s?channel=darmoweonline&action=%s&category=%s&url=%s' % ( sys.argv[ 0 ] , accion , urllib.quote_plus(nombre) , urllib.quote_plus(url) )
xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = itemurl , listitem=listitem, isFolder=True)
def addvideo(nombre,url,category,server):
xbmc.output('[darmoweonline.py] addvideo( "'+nombre+'" , "' + url + '" , "'+server+'")"')
listitem = xbmcgui.ListItem( nombre, iconImage="DefaultVideo.png" )
listitem.setInfo( "video", { "Title" : nombre, "Plot" : nombre } )
itemurl = '%s?channel=darmoweonline&action=play&category=%s&url=%s&server=%s' % ( sys.argv[ 0 ] , category , urllib.quote_plus(url) , server )
xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=itemurl, listitem=listitem, isFolder=False)
def addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , accion ):
xbmc.output('[darmoweonline.py] addthumbnailfolder( "'+scrapedtitle+'" , "' + scrapedurl + '" , "'+scrapedthumbnail+'" , "'+accion+'")"')
listitem = xbmcgui.ListItem( scrapedtitle, iconImage="DefaultFolder.png", thumbnailImage=scrapedthumbnail )
itemurl = '%s?channel=darmoweonline&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)
#mainlist(None,"","mainlist")
#listnovedades(None,"http://www.peliculasyonkis.com/ultimas-peliculas.php","")
#listcategorias(None,"http://www.peliculasyonkis.com/","")
#listvideos(None,"http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasG.php","")
#detail(None,"http://www.peliculasyonkis.com/pelicula/guerra-de-novias-bride-wars2009/","")
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para peliculasyonkis
# 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 = "darmoweonline"
# Esto permite su ejecución en modo emulado
try:
pluginhandle = int( sys.argv[ 1 ] )
except:
pluginhandle = ""
# Traza el inicio del canal
xbmc.output("[darmoweonline.py] init")
DEBUG = True
def mainlist(params,url,category):
xbmc.output("[darmoweonline.py] mainlist")
# Añade al listado de XBMC
addfolder("Listado por categorias","http://www.darmowefilmyonline.pl/index.php","listcategorias")
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def listcategorias(params,url,category):
xbmc.output("[darmoweonline.py] listcategorias")
# Descarga la página
data = scrapertools.cachePage(url)
#xbmc.output(data)
# Extrae las entradas (carpetas)
patronvideos = '<a href="([^"]+)">([^<]+)</a><br><br>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
try:
scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
except:
scrapedtitle = match[1]
# URL
scrapedurl = urlparse.urljoin("http://www.darmowefilmyonline.pl",match[0])
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapeddescription = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , "listvideos" )
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def listvideos(params,url,category):
xbmc.output("[darmoweonline.py] listvideos")
# Descarga la página
data = scrapertools.cachePage(url)
#xbmc.output(data)
# Extrae las entradas (carpetas)
patronvideos = '<a href="([^"]+)">Nas.*?</a></div></div>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
scrapedtitle = "Nas"
# URL
scrapedurl = match
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapeddescription = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
addfolder( scrapedtitle , scrapedurl , "listvideos" )
# Extrae las entradas (carpetas)
patronvideos = '<span.*?>: <b><a href="([^"]+)">([^"]+)</a></b></span></td>'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for match in matches:
# Titulo
try:
scrapedtitle = unicode( match[1], "utf-8" ).encode("iso-8859-1")
except:
scrapedtitle = match[1]
# URL
scrapedurl = match[0]
# Thumbnail
scrapedthumbnail = ""
# procesa el resto
scrapeddescription = ""
# Depuracion
if (DEBUG):
xbmc.output("scrapedtitle="+scrapedtitle)
xbmc.output("scrapedurl="+scrapedurl)
xbmc.output("scrapedthumbnail="+scrapedthumbnail)
# Añade al listado de XBMC
addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , "detail" )
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
def detail(params,url,category):
xbmc.output("[darmoweonline.py.] detail")
data = scrapertools.cachePage(url)
patronvideos = '<embed src="([^"]+)"'
matches = re.compile(patronvideos,re.DOTALL).findall(data)
scrapertools.printMatches(matches)
listavideos = servertools.findvideos(data)
for video in listavideos:
addvideo( video[0] , video[1] , category , video[2] )
# Label (top-right)...
xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=category )
# Disable sorting...
xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
# End of directory...
xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True )
'''
def play(params,url,category):
xbmc.output("[peliculasyonkis.py] play")
title = unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" )
thumbnail = xbmc.getInfoImage( "ListItem.Thumb" )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
server = params["server"]
xbmc.output("[peliculasyonkis.py] thumbnail="+thumbnail)
xbmc.output("[peliculasyonkis.py] server="+server)
# Abre dialogo
dialogWait = xbmcgui.DialogProgress()
dialogWait.create( 'Accediendo al video...', title )
# Playlist vacia
playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO )
playlist.clear()
# Averigua la URL del vídeo
mediaurl=servertools.findurl(url,server)
xbmc.output("[peliculasyonkis.py] mediaurl="+mediaurl)
# Crea la entrada y la añade al playlist
listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
listitem.setInfo( "video", { "Title": title, "Plot" : plot , "Studio" : "peliculasyonkis.us" , "Genre" : category } )
playlist.add( mediaurl, listitem )
# Cierra dialogo
dialogWait.close()
del dialogWait
# Reproduce
xbmcPlayer = xbmc.Player( xbmc.PLAYER_CORE_AUTO )
xbmcPlayer.play(playlist)
'''
def play(params,url,category):
xbmc.output("[darmoweonline.py] play")
title = unicode( xbmc.getInfoLabel( "ListItem.Title" ), "utf-8" )
thumbnail = xbmc.getInfoImage( "ListItem.Thumb" )
plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )
server = params["server"]
xbmc.output("[darmoweonline.py] thumbnail="+thumbnail)
xbmc.output("[darmoweonline.py] server="+server)
xbmctools.playvideo(CHANNELNAME,server,url,category,title,thumbnail,plot)
def addfolder(nombre,url,accion):
xbmc.output('[darmoweonline.py] addfolder( "'+nombre+'" , "' + url + '" , "'+accion+'")"')
listitem = xbmcgui.ListItem( nombre , iconImage="DefaultFolder.png")
itemurl = '%s?channel=darmoweonline&action=%s&category=%s&url=%s' % ( sys.argv[ 0 ] , accion , urllib.quote_plus(nombre) , urllib.quote_plus(url) )
xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = itemurl , listitem=listitem, isFolder=True)
def addvideo(nombre,url,category,server):
xbmc.output('[darmoweonline.py] addvideo( "'+nombre+'" , "' + url + '" , "'+server+'")"')
listitem = xbmcgui.ListItem( nombre, iconImage="DefaultVideo.png" )
listitem.setInfo( "video", { "Title" : nombre, "Plot" : nombre } )
itemurl = '%s?channel=darmoweonline&action=play&category=%s&url=%s&server=%s' % ( sys.argv[ 0 ] , category , urllib.quote_plus(url) , server )
xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=itemurl, listitem=listitem, isFolder=False)
def addthumbnailfolder( scrapedtitle , scrapedurl , scrapedthumbnail , accion ):
xbmc.output('[darmoweonline.py] addthumbnailfolder( "'+scrapedtitle+'" , "' + scrapedurl + '" , "'+scrapedthumbnail+'" , "'+accion+'")"')
listitem = xbmcgui.ListItem( scrapedtitle, iconImage="DefaultFolder.png", thumbnailImage=scrapedthumbnail )
itemurl = '%s?channel=darmoweonline&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)
#mainlist(None,"","mainlist")
#listnovedades(None,"http://www.peliculasyonkis.com/ultimas-peliculas.php","")
#listcategorias(None,"http://www.peliculasyonkis.com/","")
#listvideos(None,"http://www.peliculasyonkis.com/lista-peliculas/listaPeliculasG.php","")
#detail(None,"http://www.peliculasyonkis.com/pelicula/guerra-de-novias-bride-wars2009/","")