Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- #------------------------------------------------------------
- # streamondemand.- XBMC Plugin
- # Canale Video Corsi Programmazione
- # by costaplus
- # http://www.mimediacenter.info/foro/viewforum.php?f=36.
- #------------------------------------------------------------
- import os
- import re
- import urllib2
- import urlparse
- import xbmc
- import xbmcgui
- from core import config
- from core import logger
- from core import scrapertools
- from core.item import Item
- from lib import transmissionrpc
- __channel__ = "scambiofile3"
- __category__ = "D"
- __type__ = "generic"
- __title__ = "scambiofile (IT)"
- __language__ = "IT"
- DEBUG = config.get_setting("debug")
- site = "http://www.scambiofile.info"
- local_folder = os.path.join(config.get_runtime_path(), "torrent")
- ###############################################
- # Impostazioni personali attuali
- ###############################################
- Tran_host = "192.168.1.10"
- Tran_port = 9091
- #==============================================
- try:
- Tran = transmissionrpc.Client(Tran_host,port=Tran_port,timeout=5)
- Tran_stato = True
- except:
- Tran_stato = False
- #==============================================
- def isGeneric():
- return True
- def mainlist(item):
- logger.info("streamondemand.scambiofile mainlist")
- itemlist = []
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]Genere[/COLOR]", action="genere",url="",thumbnail="http://xbmc-repo-ackbarr.googlecode.com/svn/trunk/dev/skin.cirrus%20extended%20v2/extras/moviegenres/All%20Movies%20by%20Genre.png"))
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]Formato[/COLOR]", action="formato", url="",thumbnail="http://i2.wp.com/incautoacquisto.com/wp-content/uploads/2009/03/incautovideo-460x325.jpg?resize=460%2C325"))
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]Film[/COLOR]", action="elenco",url=site+"/browse.php?cat=1",thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"))
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]Animazione[/COLOR]", action="elenco",url=site+"/browse.php?cat=13",thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"))
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]Serie TV[/COLOR]", action="elenco",url=site+"/browse.php?cat=14",thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"))
- itemlist.append(Item(channel=__channel__, title="[COLOR yellow]Cerca...[/COLOR]", action="search",url=site+"/browse.php?search=",thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search"))
- itemlist.append(Item(channel=__channel__, title="[COLOR orange]Elenco Torrent attivi n: %s[/COLOR]" % conta(), action="elenca_torrent",url="",thumbnail="https://raymii.org/s/inc/img/transmission.png"))
- return itemlist
- def genere(item):
- logger.info("streamondemand.scambiofile genere")
- itemlist = []
- generi = ['azione','avventura','biografico','commedia','drammatico','erotico','fantascienza','horror','guerra','thriller','sentimentale']
- for titolo in generi:
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]"+ titolo + "[/COLOR]", action="elenco", url=site+"/browse.php?tag="+titolo,thumbnail=item.thumbnail))
- return itemlist
- def genere(item):
- logger.info("streamondemand.scambiofile genere")
- itemlist = []
- generi = ['azione','avventura','biografico','commedia','drammatico','erotico','fantascienza','horror','guerra','thriller','sentimentale']
- for titolo in generi:
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]"+ titolo + "[/COLOR]", action="elenco", url=site+"/browse.php?tag="+titolo,thumbnail=item.thumbnail))
- return itemlist
- def genere(item):
- logger.info("streamondemand.scambiofile genere")
- itemlist = []
- generi = ['azione','avventura','biografico','commedia','drammatico','erotico','fantascienza','horror','guerra','thriller','sentimentale']
- for titolo in generi:
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]"+ titolo + "[/COLOR]", action="elenco", url=site+"/browse.php?tag="+titolo,thumbnail=item.thumbnail))
- return itemlist
- def formato(item):
- logger.info("streamondemand.scambiofile genere")
- itemlist = []
- formati = ['720p', '1080p', 'm1080p', 'XviD', 'x264', 'x265', 'Subs', '3D']
- for titolo in formati:
- itemlist.append(Item(channel=__channel__, title="[COLOR azure]" + titolo + "[/COLOR]", action="elenco",url=site + "/browse.php?search=" + titolo,thumbnail=item.thumbnail))
- return itemlist
- def search(item,text):
- logger.info("streamondemand.scambiofile cerca")
- itemlist = []
- item.url= "%s/browse.php?search=%s" % (site,text)
- return elenco(item)
- def elenco(item):
- logger.info("streamondemand.scambiofile elenco")
- itemlist = []
- #xbmc.executebuiltin("Container.SetViewMode(500)")
- data = scrapertools.cache_page(item.url)
- patron = '<tr class=\'browse\'>.*?<img src=([^ ]+)[^;]+;.*?href=\'(.*?)\'[^>]+>(.*?)</a>'
- matches = re.compile(patron, re.DOTALL).findall(data)
- scrapertools.printMatches(matches)
- #xbmc.log(data)
- for scrapedthumbnail, scrapedurl, scrapedtitle in matches:
- scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle)
- title = scrapedtitle.split("(")[0]
- try:
- plot, fanart, poster, extrameta = info(title)
- itemlist.append( Item(channel=__channel__,action="dettaglio",fulltitle=scrapedtitle,show=scrapedtitle, title=scrapedtitle, url=site + scrapedurl, thumbnail=scrapedthumbnail,plot=str(plot), extrameta=extrameta, fanart=fanart if fanart != "" else poster,folder=True))
- except:
- itemlist.append(Item(channel=__channel__, action="dettaglio", fulltitle=scrapedtitle, show=scrapedtitle,title=scrapedtitle,url=site + scrapedurl, thumbnail=scrapedthumbnail, plot="", folder=True))
- #Paginazione
- patron = '<td class="highlight">.*?href="(.*?)"'
- matches = re.compile(patron, re.DOTALL).findall(data)
- scrapertools.printMatches(matches)
- xbmc.log("qui %s" % matches)
- if len(matches) > 0:
- paginaurl = urlparse.urljoin(site, matches[0])
- paginaurl = paginaurl.replace("amp;", "")
- itemlist.append(Item(channel=__channel__, action="HomePage", title="[COLOR yellow]Torna Home[/COLOR]",folder=True))
- itemlist.append(Item(channel=__channel__, action="elenco", title="[COLOR orange]Successivo>>[/COLOR]", url=paginaurl, thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png",folder=True))
- return itemlist
- def dettaglio(item):
- logger.info("streamondemand.scambiofile dettaglio")
- itemlist = []
- data = scrapertools.cache_page(item.url)
- patron = '<a class=\'.*?\' href="(.*?)" title=\'Torcache.net\'>.*?href="([^>]+)">'
- matches = re.compile(patron, re.DOTALL).findall(data)
- scrapertools.printMatches(matches)
- for scrapedTorrent, scrapedMagnet in matches:
- xbmc.log("torrent:%s magnet:%s" % (site + scrapedTorrent, scrapedMagnet))
- itemlist.append(Item(channel=__channel__, action="scarica",server="torrent", title="[COLOR yellow] .torrent [/COLOR]" + item.title, url=site+scrapedTorrent, thumbnail=item.thumbnail,plot=item.plot,extrameta=item.extrameta,fanart=item.fanart if item.fanart != "" else item.poster, folder=True))
- itemlist.append(Item(channel=__channel__, action="add_transmission",server="torrent", title="[COLOR orange] .magnet [/COLOR]"+item.title, url=scrapedMagnet,thumbnail=item.thumbnail, plot=item.plot,extrameta=item.extrameta,fanart=item.fanart if item.fanart != "" else item.poster, folder=True))
- return itemlist
- def add_transmission(item):
- logger.info("streamondemand.scambiofile add_transmission")
- itemlist = []
- if Tran_stato:
- risposta = xbmcgui.Dialog().yesno("Aggiungi Torrent a trasmission", "Vuoi aggiungerlo a transmission ?")
- xbmc.log("risposta %s" % risposta)
- if risposta==1:
- Tran.add_torrent(item.url)
- if not Tran_stato:
- xbmcgui.Dialog().ok("trasmission", "Attenzione transmission non è contattabile! \n controllare la connesso.")
- return itemlist
- def scarica(item):
- logger.info("streamondemand.scambiofile add_transmission")
- itemlist = []
- if Tran_stato:
- with open(os.path.join(local_folder, "new.torrent"), "wb") as f:
- f.write(urllib2.urlopen(item.url).read())
- risposta = xbmcgui.Dialog().yesno("Aggiungi Torrent a trasmission", "Vuoi aggiungerlo il torrent scaricato a transmission ?")
- #xbmc.log("risposta %s" % risposta)
- #if risposta == 1: Tran.add_torrent(f)
- return itemlist
- '''
- def elenca_torrent(item):
- logger.info("streamondemand.scambiofile elenca_torrent")
- itemlist = []
- if Tran_stato:
- for elenca in Tran.get_torrents():
- titolo = "[COLOR azure]%s[/COLOR]" % elenca
- itemlist.append(Item(channel=__channel__, action="", title=titolo, url="", thumbnail=item.thumbnail, plot="", folder=False))
- else:
- itemlist.append(Item(channel=__channel__, action="mainlist", title="Il servizio non è attivo", url="", thumbnail="", plot="", folder=False))
- return itemlist(item)
- '''
- def conta():
- if Tran_stato:
- count= len(Tran.get_torrents())
- else:
- count="- Servizio non attivo -"
- return count
- def HomePage(item):
- xbmc.executebuiltin("ReplaceWindow(10024,plugin://plugin.video.streamondemand)")
- def info(title):
- logger.info("streamondemand.tntvillate info")
- try:
- from core.tmdb import Tmdb
- oTmdb = Tmdb(texto_buscado=title, tipo="movie", include_adult="false", idioma_busqueda="it")
- if oTmdb.total_results > 0:
- extrameta = {"Year": oTmdb.result["release_date"][:4],
- "Genre": ", ".join(oTmdb.result["genres"]),
- "Rating": float(oTmdb.result["vote_average"])}
- fanart = oTmdb.get_backdrop()
- poster = oTmdb.get_poster()
- plot = oTmdb.get_sinopsis()
- return plot, fanart, poster, extrameta
- except:
- pass
Advertisement
Add Comment
Please, Sign In to add comment