Diff
checker
Text
Text
Bilder
Dokumente
Excel
Ordner
Legal
Enterprise
Desktop-App
Preise
Einloggen
Diffchecker Desktop herunterladen
Texte vergleichen
Finde den Unterschied zwischen zwei Textdateien
Werkzeuge
Verlauf
Live-Editor
Leerzeichen ausblenden
Gleiches ausblenden
Zeilenumbruch aus
Ansicht
Zweispaltig
Einspaltig
Vergleichsgenauigkeit
Intelligent
Wort
Zeichen
Textstile
Darstellung ändern
Syntaxhervorhebung
Syntax auswählen
Ignorieren
Text umwandeln
Zur ersten Änderung
Eingabe bearbeiten
Diffchecker Desktop
Der sicherste Weg, Diffchecker zu nutzen. Hol dir die Desktop-App: Deine Diffs verlassen nie deinen Computer!
Desktop holen
Untitled diff
Erstellt
vor 7 Jahren
Diff läuft nie ab
Löschen
Exportieren
Teilen
Erklären
280 Entfernungen
Zeilen
Gesamt
Entfernt
Zeichen
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
353 Zeilen
Kopieren
171 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Zeichen
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
246 Zeilen
Kopieren
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# ------------------------------------------------------------
Kopieren
Kopiert
Kopieren
Kopiert
#
Icarus
- XBMC Plugin
#
Ringraziamo
Icarus
crew
# Canale per filmpertutti.co
# Canale per filmpertutti.co
Kopieren
Kopiert
Kopieren
Kopiert
# https://alfa-addon.com/categories/icarus-addon.50/
# ------------------------------------------------------------
# ------------------------------------------------------------
import re
import re
import urlparse
import urlparse
Kopieren
Kopiert
Kopieren
Kopiert
from core import scrapertools
, servertools, httptools
from channels import autoplay, support
from core import scrapertools
V2
, servertools, httptools
, tmdb
from core.item import Item
from core.item import Item
Kopieren
Kopiert
Kopieren
Kopiert
from core.tmdb import infoIca
from lib import unshortenit
from lib import unshortenit
from platformcode import config, logger
from platformcode import config, logger
Kopieren
Kopiert
Kopieren
Kopiert
from channelselector import thumb
Kopieren
Kopiert
Kopieren
Kopiert
host = "https://www.filmpertutti.
uno"
host = "https://www.filmpertutti.
club"
headers = [['Referer', host]]
list_servers = ['openload', 'streamango', 'wstream', 'akvideo']
list_quality = ['HD', 'SD']
def mainlist(item):
def mainlist(item):
Kopieren
Kopiert
Kopieren
Kopiert
logger.info(
"icarus.filmpertutti mainlist")
logger.info(
)
itemlist = [Item(channel=item.channel,
title="[COLOR azure]Ultimi film inseriti[/COLOR]",
itemlist =[]
action="peliculas",
extra="movie",
support.menu(itemlist, '[B]Film[/B]', 'peliculas', host + '/category/film/', 'movie')
url="%s/category/film/" % host,
support.menu(itemlist, '[B] > Film per Genere[/B]', 'genre', host, 'episode')
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
support.menu(itemlist, '[B]Serie TV[/B]', 'peliculas', host + '/category/serie-tv/', 'episode')
Item(channel=item.channel,
support.menu(itemlist, '[B] > Serie TV in ordine alfabetico[/B]', 'az', host + '/category/serie-tv/', 'episode')
title="[COLOR azure]Categorie film[/COLOR]",
support.menu(itemlist, '[COLOR blue]Cerca Serie TV...[/COLOR]', 'search', '', 'episode')
action="categorias",
url="%s/category/film/" % host,
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
autoplay.init(item.channel, list_servers, list_quality)
Item(channel=item.channel,
autoplay.show_option(item.channel, itemlist)
title="[COLOR yellow]Cerca...[/COLOR]",
action="search",
for item in itemlist:
extra="movie",
logger.info('MENU=' + str(item) )
thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search"),
Item(channel=item.channel,
title="[COLOR azure]Serie TV[/COLOR]",
extra="tvshow",
action="peliculas_tv",
url="%s/category/serie-tv/" % host,
thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"),
Item(channel=item.channel,
title="[COLOR yellow]Cerca Serie TV...[/COLOR]",
action="search",
extra="tvshow",
thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")]
return itemlist
return itemlist
def newest(categoria):
def newest(categoria):
Kopieren
Kopiert
Kopieren
Kopiert
logger.info("
icarus.
filmpertutti newest" + categoria)
logger.info("
filmpertutti newest" + categoria)
itemlist = []
itemlist = []
item = Item()
item = Item()
try:
try:
if categoria == "film":
if categoria == "film":
item.url = host + "/category/film/"
item.url = host + "/category/film/"
item.action = "peliculas"
item.action = "peliculas"
item.extra = "movie"
item.extra = "movie"
itemlist = peliculas(item)
itemlist = peliculas(item)
if itemlist[-1].action == "peliculas":
if itemlist[-1].action == "peliculas":
itemlist.pop()
itemlist.pop()
# Continua la ricerca in caso di errore
# Continua la ricerca in caso di errore
except:
except:
import sys
import sys
for line in sys.exc_info():
for line in sys.exc_info():
logger.error("{0}".format(line))
logger.error("{0}".format(line))
return []
return []
return itemlist
return itemlist
Kopieren
Kopiert
Kopieren
Kopiert
def peliculas(item):
logger.info("icarus.filmpertutti peliculas")
itemlist = []
# Carica la pagina
data = httptools.downloadpage(item.url).data
# Estrae i contenuti
patron = '<li><a href="([^"]+)" data-thumbnail="([^"]+)"><div>\s*<div class="title">(.*?)<.*?IMDb">([^<]+)'
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedtitle, scraprate in matches:
scrapedplot = ""
itemlist.append(infoIca(
Item(channel=item.channel,
action="findvideos",
contentType="movie",
fulltitle=scrapedtitle,
show=scrapedtitle,
title="[COLOR azure]" + scrapedtitle + "[/COLOR] - IMDb: " + scraprate,
url=scrapedurl,
thumbnail=scrapedthumbnail,
plot=scrapedplot,
extra=item.extra,
folder=True), tipo='movie'))
# Paginazione
patronvideos = '<a href="([^"]+)"[^>]+>Pagina'
matches = re.compile(patronvideos, re.DOTALL).findall(data)
if len(matches) > 0:
scrapedurl = urlparse.urljoin(item.url, matches[0])
itemlist.append(
Item(channel=item.channel,
action="peliculas",
title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]",
url=scrapedurl,
thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png",
extra=item.extra,
folder=True))
return itemlist
def peliculas_tv(item):
logger.info("icarus.filmpertutti peliculas")
itemlist = []
# Carica la pagina
data = httptools.downloadpage(item.url).data
# Estrae i contenuti
patron = '<li><a href="([^"]+)" data-thumbnail="([^"]+)"><div>\s*<div class="title">(.*?)<'
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedtitle in matches:
title = scrapertools.decodeHtmlentities(scrapedtitle)
scrapedplot = ""
itemlist.append(infoIca(
Item(channel=item.channel,
action="episodios",
fulltitle=title,
show=title,
title="[COLOR azure]" + title + "[/COLOR]",
url=scrapedurl,
thumbnail=scrapedthumbnail,
plot=scrapedplot,
extra=item.extra,
folder=True), tipo='tv'))
# Paginazione
patronvideos = '<a href="([^"]+)"[^>]+>Pagina'
matches = re.compile(patronvideos, re.DOTALL).findall(data)
if len(matches) > 0:
scrapedurl = urlparse.urljoin(item.url, matches[0])
itemlist.append(
Item(channel=item.channel,
action="peliculas_tv",
title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]",
url=scrapedurl,
thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png",
extra=item.extra,
folder=True))
return itemlist
def categorias(item):
logger.info("icarus.filmpertutti categorias")
itemlist = []
data = httptools.downloadpage(item.url).data
# Narrow search by selecting only the combo
patron = '<option>Scegli per Genere</option>(.*?)</select'
bloque = scrapertools.get_match(data, patron)
# The categories are the options for the combo
patron = '<option data-src="([^"]+)">([^<]+)</option>'
matches = re.compile(patron, re.DOTALL).findall(bloque)
for scrapedurl, scrapedtitle in matches:
scrapedurl = urlparse.urljoin(item.url, scrapedurl)
scrapedthumbnail = ""
scrapedplot = ""
itemlist.append(
Item(channel=item.channel,
action="peliculas",
title="[COLOR azure]" + scrapedtitle + "[/COLOR]",
url=scrapedurl,
thumbnail=scrapedthumbnail,
extra=item.extra,
plot=scrapedplot))
return itemlist
def search(item, texto):
def search(item, texto):
Kopieren
Kopiert
Kopieren
Kopiert
logger.info("
icarus.
filmpertutti " + item.url + " search " + texto)
logger.info("
filmpertutti " + item.url + " search " + texto)
item.url = host + "/?s=" + texto
item.url = host + "/?s=" + texto
try:
try:
Kopieren
Kopiert
Kopieren
Kopiert
if item.extra == "movie":
return peliculas(item)
return peliculas(item)
if item.extra == "tvshow":
return peliculas_tv(item)
# Continua la ricerca in caso di errore
# Continua la ricerca in caso di errore
except:
except:
import sys
import sys
for line in sys.exc_info():
for line in sys.exc_info():
logger.error("%s" % line)
logger.error("%s" % line)
return []
return []
Kopieren
Kopiert
Kopieren
Kopiert
def
episodios
(item):
def
genre
(item):
def load_episodios(html, item, itemlist, lang_title):
logger.info(item.channel + 'genre')
patron = '.*?<a[^h]+href="[^"]+"[^>]+>[^<]+<\/a>(?:<br \/>|<\/p>|-)'
matches = re.compile(patron).findall(html)
for data in matches:
# Estrae i contenuti
scrapedtitle = data.split('<a ')[0]
scrapedtitle = re.sub(r'<[^>]*>', '', scrapedtitle).strip()
if scrapedtitle != 'Categorie':
scrapedtitle = scrapedtitle.replace('×', 'x')
itemlist.append(
Item(channel=item.channel,
action="findvideos",
contentType="episode",
title="[COLOR azure]%s[/COLOR]" % (scrapedtitle + " (" + lang_title + ")"),
url=data,
thumbnail=item.thumbnail,
extra=item.extra,
fulltitle=scrapedtitle + " (" + lang_title + ")" + ' - ' + item.show,
show=item.show))
logger.info("[filmpertutti.py] episodios")
itemlist = []
itemlist = []
Kopieren
Kopiert
Kopieren
Kopiert
# Carica la pagina
data = httptools.downloadpage(item.url
, headers=headers
).data
data = httptools.downloadpage(item.url
).data
block
= scrapertools
V2.find_single_match
(data
, r'<ul class="table-list">(
.*?
)<\/ul>')
data
= scrapertools
.decodeHtmlentities
(data
)
matches =
scrapertoolsV2.find_multiple_matches(block, r'<a href="([^"]+)">.*?<\/span>(.*?)<\/a>')
for
url, title
in matches:
lang_titles = []
starts = []
patron = r"Stagione
.*?
ITA"
matches =
re.compile(patron, re.IGNORECASE).finditer(data)
for
match
in matches:
season_title = match.group()
if season_title != '':
lang_titles.append('SUB ITA' if 'SUB' in season_title.upper() else 'ITA')
starts.append(match.end())
i = 1
len_lang_titles = len(lang_titles)
while i <= len_lang_titles:
inizio = starts[i - 1]
fine = starts[i] if i < len_lang_titles else -1
html = data[inizio:fine]
lang_title = lang_titles[i - 1]
load_episodios(html, item, itemlist, lang_title)
i += 1
if config.get_videolibrary_support() and len(itemlist) != 0:
itemlist.append(
itemlist.append(
Item(channel=item.channel,
Item(channel=item.channel,
Kopieren
Kopiert
Kopieren
Kopiert
title="[COLOR lightblue]%s[/COLOR]" % config.get_localized_string(30161),
action='peliculas',
url=item.url,
title=title,
action="add_serie_to_library",
url=host+url)
extra="episodios" + "###" + item.extra,
)
show=item.show))
itemlist = thumb(itemlist)
return itemlist
return itemlist
Kopieren
Kopiert
Kopieren
Kopiert
def
findvideos
(item):
def
az
(item):
def add_my
item
(sitemlist, scontentType, stitle, surl):
logger.info(
item
.channel + 'genre')
s
itemlist.append(
itemlist = []
data = httptools.downloadpage(item.url, headers=headers).data
block = scrapertoolsV2.find_single_match(data, r'<select class="cats">(.*?)<\/select>')
matches = scrapertoolsV2.find_multiple_matches(block, r'<option data-src="([^"]+)">(.*?)<\/option>')
for url, title in matches:
itemlist.append(
Item(channel=item.channel,
Item(channel=item.channel,
Kopieren
Kopiert
Kopieren
Kopiert
action=
"play",
action=
'peliculas'
,
contentType=scontentType
,
title=
title,
title=
stitle,
url=
url
)
fulltitle=item.fulltitle,
)
server=s
title,
itemlist =
thumb
(itemlist)
url=
s
url
,
return itemlist
thumb
nail=item.thumbnail,
extra=item.extra))
Kopieren
Kopiert
Kopieren
Kopiert
logger.info(
"icarus.filmpertutti findvideos"
)
def peliculas(item):
logger.info(
item.channel + 'peliculas'
)
itemlist = []
itemlist = []
Kopieren
Kopiert
Kopieren
Kopiert
logger.debug(item)
Kopieren
Kopiert
Kopieren
Kopiert
# Carica la pagina
data = httptools.downloadpage(item.url, headers=headers).data
if item.contentType == "episode":
block = scrapertoolsV2.find_single_match(data, r'<ul class="posts">(.*)<\/ul>')
patron = '<a\s*href="(.*?)\s*".*?[^>]+>([^<]+)<\/a>'
matches = re.compile(patron).findall(item.url)
Kopieren
Kopiert
Kopieren
Kopiert
lsrvo
=
''
patron
=
r'<li><a href="([^"]+)" data-thumbnail="([^"]+)">.*?<div class="title">([^<]+)<\/div>'
for lurl, lsrv in
matches
:
matches = scrapertoolsV2.find_multiple_
matches
(block, patron)
Kopieren
Kopiert
Kopieren
Kopiert
if lsrv == 'HD': lsrv
=
lsrvo + ' HD
'
for scrapedurl, scrapedthumb, scrapedtitle in matches:
lsrvo
=
lsrv
title = re.sub(r'.\(.*?\)|.\[.*?\]', '', scrapedtitle)
quality = scrapertoolsV2.find_single_match(scrapedtitle, r'\[(.*?)\]')
if not quality:
quality
=
'SD
'
longtitle
=
title + ' [COLOR blue][' + quality + '][/COLOR]'
Kopieren
Kopiert
Kopieren
Kopiert
add_myitem(itemlist, "episode", "[COLOR azure]%s[/COLOR]" % lsrv, lurl)
if item.contentType == 'episode':
else:
action = 'episodios'
# Carica la pagina
else:
data = httptools.downloadpage(item.url).data
action ='findvideos'
patron = '<strong>\s*(Versione.*?)<p><strong>Download'
data = re.compile(patron, re.DOTALL).findall(data)
Kopieren
Kopiert
Kopieren
Kopiert
if data:
itemlist.append(
vqual = re.compile('ersione.*?:\s*([^|,\s,&,<]+)').findall(data[0])
Item(channel=item.channel,
sect = re.compile('Streaming', re.DOTALL).split(data[0])
action=action,
contentType=item.contentType,
title=longtitle,
fulltitle=title,
show=title,
quality=quality,
url=scrapedurl,
thumbnail=scrapedthumb
))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
Kopieren
Kopiert
Kopieren
Kopiert
## SD links
next_page = scrapertoolsV2.find_single_match(data, '<a href="([^"]+)">Pagina')
links = re.compile('<a\s*href="([^",\s]+).*?>([^<]+)', re.DOTALL).findall(sect[1])
if next_page != "":
itemlist.append(
Item(channel=item.channel,
action="peliculas",
contentType=item.contentType,
title="[COLOR blue]" + config.get_localized_string(30992) + " >[/COLOR]",
url=next_page,
thumbnails=thumb()))
Kopieren
Kopiert
Kopieren
Kopiert
for link, srv in links:
return
itemlist
add_myitem(
itemlist
, "movie", "[COLOR azure]%s (SD)[/COLOR] - %s" % (srv, vqual[0]), link)
Kopieren
Kopiert
Kopieren
Kopiert
## HD Links
if len(sect) > 2:
links = re.compile('<a\s*href="([^",\s]+).*?>([^<]+)', re.DOTALL).findall(sect[2])
Kopieren
Kopiert
Kopieren
Kopiert
for link, srv in links:
def episodios(item):
add_myitem(itemlist, "movie", "[COLOR azure]%s (HD)[/COLOR] - %s" % (srv, vqual[0]), link)
logger.info(item.channel + 'findvideos')
else:
itemlist = []
itemlist = servertools.find_video_items(item=item)
Kopieren
Kopiert
Kopieren
Kopiert
# for item in itemlist:
data = httptools.downloadpage(item.url, headers=headers).data
#
logger.info(item)
if 'accordion-item' in data:
block = scrapertoolsV2.find_single_match(data, 'accordion-item.*?>(.*?)<div id="disqus_thread">')
patron = r'<img src="([^"]+)">.*?<li class="season-no">(.*?)<\/li>(.*?)<\/table>'
matches = scrapertoolsV2.find_multiple_matches(block, patron)
for scrapedthumb, scrapedtitle, scrapedurl in matches:
title = scrapedtitle + ' - ' + item.title
if title[0] == 'x':
title = '1' + title
itemlist.append(
Item(channel=item.channel,
action='findvideos',
contentType=item.contentType,
title=title,
fulltitle=title,
show=title,
quality=item.quality,
url=scrapedurl,
thumbnail=scrapedthumb
))
else:
block = scrapertoolsV2.find_single_match(data, '<div id="info" class="pad">(.*?)<div id="disqus_thread">').replace('</p>','<br />').replace('×','x')
matches = scrapertoolsV2.find_multiple_matches(block, r'<strong>(.*?)<\/strong>.*?<p>(.*?)<span')
for lang, seasons in matches:
lang = re.sub('.*?Stagione[^a-zA-Z]+', '', lang)
# patron = r'([0-9]+x[0-9]+) (.*?)<br'
season = scrapertoolsV2.find_multiple_matches(seasons, r'([0-9]+x[0-9]+) (.*?)<br')
for title, url in season:
title = title + ' - ' + lang
itemlist.append(
Item(channel=item.channel,
title=title,
fulltitle=title,
show=title,
url=url,
contentType=item.contentType,
action='findvideos'
))
return itemlist
return itemlist
Kopieren
Kopiert
Kopieren
Kopiert
def
play
(item):
def
findvideos
(item):
logger.info(
"icarus.filmpertutti play: %s" %
item.
url)
logger.info(
item.
channel + 'findvideos'
)
data = item.url
data, c = unshortenit.unshorten(data
)
Kopieren
Kopiert
Kopieren
Kopiert
if item.contentType == 'movie':
data = httptools.downloadpage(item.url, headers=headers).data
else:
data = item.url
itemlist = servertools.find_video_items(data=data)
itemlist = servertools.find_video_items(data=data)
for videoitem in itemlist:
for videoitem in itemlist:
Kopieren
Kopiert
Kopieren
Kopiert
videoitem.title = item.title +
videoitem.title
videoitem.title = item.title +
' - [COLOR limegreen][[/COLOR]' +
videoitem.title
+ '[COLOR limegreen]][/COLOR]'
videoitem.fulltitle = item.fulltitle
videoitem.fulltitle = item.fulltitle
videoitem.thumbnail = item.thumbnail
videoitem.thumbnail = item.thumbnail
videoitem.show = item.show
videoitem.show = item.show
videoitem.plot = item.plot
videoitem.plot = item.plot
videoitem.channel = item.channel
videoitem.channel = item.channel
videoitem.contentType = item.contentType
videoitem.contentType = item.contentType
Kopieren
Kopiert
Kopieren
Kopiert
videoitem.quality = item.quality
autoplay.start(itemlist, item)
if item.contentType != 'episode':
if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos':
itemlist.append(
Item(channel=item.channel, title='[COLOR yellow][B]'+config.get_localized_string(30161)+'[/B][/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=item.fulltitle))
return itemlist
return itemlist
Gespeicherte Diffs
Originaltext
Datei öffnen
# -*- coding: utf-8 -*- # ------------------------------------------------------------ # Icarus - XBMC Plugin # Canale per filmpertutti.co # https://alfa-addon.com/categories/icarus-addon.50/ # ------------------------------------------------------------ import re import urlparse from core import scrapertools, servertools, httptools from core.item import Item from core.tmdb import infoIca from lib import unshortenit from platformcode import config, logger host = "https://www.filmpertutti.uno" def mainlist(item): logger.info("icarus.filmpertutti mainlist") itemlist = [Item(channel=item.channel, title="[COLOR azure]Ultimi film inseriti[/COLOR]", action="peliculas", extra="movie", url="%s/category/film/" % host, thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), Item(channel=item.channel, title="[COLOR azure]Categorie film[/COLOR]", action="categorias", url="%s/category/film/" % host, thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), Item(channel=item.channel, title="[COLOR yellow]Cerca...[/COLOR]", action="search", extra="movie", thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search"), Item(channel=item.channel, title="[COLOR azure]Serie TV[/COLOR]", extra="tvshow", action="peliculas_tv", url="%s/category/serie-tv/" % host, thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), Item(channel=item.channel, title="[COLOR yellow]Cerca Serie TV...[/COLOR]", action="search", extra="tvshow", thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")] return itemlist def newest(categoria): logger.info("icarus.filmpertutti newest" + categoria) itemlist = [] item = Item() try: if categoria == "film": item.url = host + "/category/film/" item.action = "peliculas" item.extra = "movie" itemlist = peliculas(item) if itemlist[-1].action == "peliculas": itemlist.pop() # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist def peliculas(item): logger.info("icarus.filmpertutti peliculas") itemlist = [] # Carica la pagina data = httptools.downloadpage(item.url).data # Estrae i contenuti patron = '<li><a href="([^"]+)" data-thumbnail="([^"]+)"><div>\s*<div class="title">(.*?)<.*?IMDb">([^<]+)' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail, scrapedtitle, scraprate in matches: scrapedplot = "" itemlist.append(infoIca( Item(channel=item.channel, action="findvideos", contentType="movie", fulltitle=scrapedtitle, show=scrapedtitle, title="[COLOR azure]" + scrapedtitle + "[/COLOR] - IMDb: " + scraprate, url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, extra=item.extra, folder=True), tipo='movie')) # Paginazione patronvideos = '<a href="([^"]+)"[^>]+>Pagina' matches = re.compile(patronvideos, re.DOTALL).findall(data) if len(matches) > 0: scrapedurl = urlparse.urljoin(item.url, matches[0]) itemlist.append( Item(channel=item.channel, action="peliculas", title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]", url=scrapedurl, thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", extra=item.extra, folder=True)) return itemlist def peliculas_tv(item): logger.info("icarus.filmpertutti peliculas") itemlist = [] # Carica la pagina data = httptools.downloadpage(item.url).data # Estrae i contenuti patron = '<li><a href="([^"]+)" data-thumbnail="([^"]+)"><div>\s*<div class="title">(.*?)<' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedthumbnail, scrapedtitle in matches: title = scrapertools.decodeHtmlentities(scrapedtitle) scrapedplot = "" itemlist.append(infoIca( Item(channel=item.channel, action="episodios", fulltitle=title, show=title, title="[COLOR azure]" + title + "[/COLOR]", url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, extra=item.extra, folder=True), tipo='tv')) # Paginazione patronvideos = '<a href="([^"]+)"[^>]+>Pagina' matches = re.compile(patronvideos, re.DOTALL).findall(data) if len(matches) > 0: scrapedurl = urlparse.urljoin(item.url, matches[0]) itemlist.append( Item(channel=item.channel, action="peliculas_tv", title="[COLOR lightgreen]" + config.get_localized_string(30992) + "[/COLOR]", url=scrapedurl, thumbnail="http://2.bp.blogspot.com/-fE9tzwmjaeQ/UcM2apxDtjI/AAAAAAAAeeg/WKSGM2TADLM/s1600/pager+old.png", extra=item.extra, folder=True)) return itemlist def categorias(item): logger.info("icarus.filmpertutti categorias") itemlist = [] data = httptools.downloadpage(item.url).data # Narrow search by selecting only the combo patron = '<option>Scegli per Genere</option>(.*?)</select' bloque = scrapertools.get_match(data, patron) # The categories are the options for the combo patron = '<option data-src="([^"]+)">([^<]+)</option>' matches = re.compile(patron, re.DOTALL).findall(bloque) for scrapedurl, scrapedtitle in matches: scrapedurl = urlparse.urljoin(item.url, scrapedurl) scrapedthumbnail = "" scrapedplot = "" itemlist.append( Item(channel=item.channel, action="peliculas", title="[COLOR azure]" + scrapedtitle + "[/COLOR]", url=scrapedurl, thumbnail=scrapedthumbnail, extra=item.extra, plot=scrapedplot)) return itemlist def search(item, texto): logger.info("icarus.filmpertutti " + item.url + " search " + texto) item.url = host + "/?s=" + texto try: if item.extra == "movie": return peliculas(item) if item.extra == "tvshow": return peliculas_tv(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] def episodios(item): def load_episodios(html, item, itemlist, lang_title): patron = '.*?<a[^h]+href="[^"]+"[^>]+>[^<]+<\/a>(?:<br \/>|<\/p>|-)' matches = re.compile(patron).findall(html) for data in matches: # Estrae i contenuti scrapedtitle = data.split('<a ')[0] scrapedtitle = re.sub(r'<[^>]*>', '', scrapedtitle).strip() if scrapedtitle != 'Categorie': scrapedtitle = scrapedtitle.replace('×', 'x') itemlist.append( Item(channel=item.channel, action="findvideos", contentType="episode", title="[COLOR azure]%s[/COLOR]" % (scrapedtitle + " (" + lang_title + ")"), url=data, thumbnail=item.thumbnail, extra=item.extra, fulltitle=scrapedtitle + " (" + lang_title + ")" + ' - ' + item.show, show=item.show)) logger.info("[filmpertutti.py] episodios") itemlist = [] # Carica la pagina data = httptools.downloadpage(item.url).data data = scrapertools.decodeHtmlentities(data) lang_titles = [] starts = [] patron = r"Stagione.*?ITA" matches = re.compile(patron, re.IGNORECASE).finditer(data) for match in matches: season_title = match.group() if season_title != '': lang_titles.append('SUB ITA' if 'SUB' in season_title.upper() else 'ITA') starts.append(match.end()) i = 1 len_lang_titles = len(lang_titles) while i <= len_lang_titles: inizio = starts[i - 1] fine = starts[i] if i < len_lang_titles else -1 html = data[inizio:fine] lang_title = lang_titles[i - 1] load_episodios(html, item, itemlist, lang_title) i += 1 if config.get_videolibrary_support() and len(itemlist) != 0: itemlist.append( Item(channel=item.channel, title="[COLOR lightblue]%s[/COLOR]" % config.get_localized_string(30161), url=item.url, action="add_serie_to_library", extra="episodios" + "###" + item.extra, show=item.show)) return itemlist def findvideos(item): def add_myitem(sitemlist, scontentType, stitle, surl): sitemlist.append( Item(channel=item.channel, action="play", contentType=scontentType, title=stitle, fulltitle=item.fulltitle, server=stitle, url=surl, thumbnail=item.thumbnail, extra=item.extra)) logger.info("icarus.filmpertutti findvideos") itemlist = [] logger.debug(item) # Carica la pagina if item.contentType == "episode": patron = '<a\s*href="(.*?)\s*".*?[^>]+>([^<]+)<\/a>' matches = re.compile(patron).findall(item.url) lsrvo = '' for lurl, lsrv in matches: if lsrv == 'HD': lsrv = lsrvo + ' HD' lsrvo = lsrv add_myitem(itemlist, "episode", "[COLOR azure]%s[/COLOR]" % lsrv, lurl) else: # Carica la pagina data = httptools.downloadpage(item.url).data patron = '<strong>\s*(Versione.*?)<p><strong>Download' data = re.compile(patron, re.DOTALL).findall(data) if data: vqual = re.compile('ersione.*?:\s*([^|,\s,&,<]+)').findall(data[0]) sect = re.compile('Streaming', re.DOTALL).split(data[0]) ## SD links links = re.compile('<a\s*href="([^",\s]+).*?>([^<]+)', re.DOTALL).findall(sect[1]) for link, srv in links: add_myitem(itemlist, "movie", "[COLOR azure]%s (SD)[/COLOR] - %s" % (srv, vqual[0]), link) ## HD Links if len(sect) > 2: links = re.compile('<a\s*href="([^",\s]+).*?>([^<]+)', re.DOTALL).findall(sect[2]) for link, srv in links: add_myitem(itemlist, "movie", "[COLOR azure]%s (HD)[/COLOR] - %s" % (srv, vqual[0]), link) else: itemlist = servertools.find_video_items(item=item) # for item in itemlist: # logger.info(item) return itemlist def play(item): logger.info("icarus.filmpertutti play: %s" % item.url) data = item.url data, c = unshortenit.unshorten(data) itemlist = servertools.find_video_items(data=data) for videoitem in itemlist: videoitem.title = item.title + videoitem.title videoitem.fulltitle = item.fulltitle videoitem.thumbnail = item.thumbnail videoitem.show = item.show videoitem.plot = item.plot videoitem.channel = item.channel videoitem.contentType = item.contentType return itemlist
Bearbeitung
Datei öffnen
# -*- coding: utf-8 -*- # ------------------------------------------------------------ # Ringraziamo Icarus crew # Canale per filmpertutti.co # ------------------------------------------------------------ import re import urlparse from channels import autoplay, support from core import scrapertoolsV2, servertools, httptools, tmdb from core.item import Item from lib import unshortenit from platformcode import config, logger from channelselector import thumb host = "https://www.filmpertutti.club" headers = [['Referer', host]] list_servers = ['openload', 'streamango', 'wstream', 'akvideo'] list_quality = ['HD', 'SD'] def mainlist(item): logger.info() itemlist =[] support.menu(itemlist, '[B]Film[/B]', 'peliculas', host + '/category/film/', 'movie') support.menu(itemlist, '[B] > Film per Genere[/B]', 'genre', host, 'episode') support.menu(itemlist, '[B]Serie TV[/B]', 'peliculas', host + '/category/serie-tv/', 'episode') support.menu(itemlist, '[B] > Serie TV in ordine alfabetico[/B]', 'az', host + '/category/serie-tv/', 'episode') support.menu(itemlist, '[COLOR blue]Cerca Serie TV...[/COLOR]', 'search', '', 'episode') autoplay.init(item.channel, list_servers, list_quality) autoplay.show_option(item.channel, itemlist) for item in itemlist: logger.info('MENU=' + str(item) ) return itemlist def newest(categoria): logger.info("filmpertutti newest" + categoria) itemlist = [] item = Item() try: if categoria == "film": item.url = host + "/category/film/" item.action = "peliculas" item.extra = "movie" itemlist = peliculas(item) if itemlist[-1].action == "peliculas": itemlist.pop() # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("{0}".format(line)) return [] return itemlist def search(item, texto): logger.info("filmpertutti " + item.url + " search " + texto) item.url = host + "/?s=" + texto try: return peliculas(item) # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): logger.error("%s" % line) return [] def genre(item): logger.info(item.channel + 'genre') itemlist = [] data = httptools.downloadpage(item.url, headers=headers).data block = scrapertoolsV2.find_single_match(data, r'<ul class="table-list">(.*?)<\/ul>') matches = scrapertoolsV2.find_multiple_matches(block, r'<a href="([^"]+)">.*?<\/span>(.*?)<\/a>') for url, title in matches: itemlist.append( Item(channel=item.channel, action='peliculas', title=title, url=host+url) ) itemlist = thumb(itemlist) return itemlist def az(item): logger.info(item.channel + 'genre') itemlist = [] data = httptools.downloadpage(item.url, headers=headers).data block = scrapertoolsV2.find_single_match(data, r'<select class="cats">(.*?)<\/select>') matches = scrapertoolsV2.find_multiple_matches(block, r'<option data-src="([^"]+)">(.*?)<\/option>') for url, title in matches: itemlist.append( Item(channel=item.channel, action='peliculas', title=title, url=url) ) itemlist = thumb(itemlist) return itemlist def peliculas(item): logger.info(item.channel + 'peliculas') itemlist = [] data = httptools.downloadpage(item.url, headers=headers).data block = scrapertoolsV2.find_single_match(data, r'<ul class="posts">(.*)<\/ul>') patron = r'<li><a href="([^"]+)" data-thumbnail="([^"]+)">.*?<div class="title">([^<]+)<\/div>' matches = scrapertoolsV2.find_multiple_matches(block, patron) for scrapedurl, scrapedthumb, scrapedtitle in matches: title = re.sub(r'.\(.*?\)|.\[.*?\]', '', scrapedtitle) quality = scrapertoolsV2.find_single_match(scrapedtitle, r'\[(.*?)\]') if not quality: quality = 'SD' longtitle = title + ' [COLOR blue][' + quality + '][/COLOR]' if item.contentType == 'episode': action = 'episodios' else: action ='findvideos' itemlist.append( Item(channel=item.channel, action=action, contentType=item.contentType, title=longtitle, fulltitle=title, show=title, quality=quality, url=scrapedurl, thumbnail=scrapedthumb )) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) next_page = scrapertoolsV2.find_single_match(data, '<a href="([^"]+)">Pagina') if next_page != "": itemlist.append( Item(channel=item.channel, action="peliculas", contentType=item.contentType, title="[COLOR blue]" + config.get_localized_string(30992) + " >[/COLOR]", url=next_page, thumbnails=thumb())) return itemlist def episodios(item): logger.info(item.channel + 'findvideos') itemlist = [] data = httptools.downloadpage(item.url, headers=headers).data if 'accordion-item' in data: block = scrapertoolsV2.find_single_match(data, 'accordion-item.*?>(.*?)<div id="disqus_thread">') patron = r'<img src="([^"]+)">.*?<li class="season-no">(.*?)<\/li>(.*?)<\/table>' matches = scrapertoolsV2.find_multiple_matches(block, patron) for scrapedthumb, scrapedtitle, scrapedurl in matches: title = scrapedtitle + ' - ' + item.title if title[0] == 'x': title = '1' + title itemlist.append( Item(channel=item.channel, action='findvideos', contentType=item.contentType, title=title, fulltitle=title, show=title, quality=item.quality, url=scrapedurl, thumbnail=scrapedthumb )) else: block = scrapertoolsV2.find_single_match(data, '<div id="info" class="pad">(.*?)<div id="disqus_thread">').replace('</p>','<br />').replace('×','x') matches = scrapertoolsV2.find_multiple_matches(block, r'<strong>(.*?)<\/strong>.*?<p>(.*?)<span') for lang, seasons in matches: lang = re.sub('.*?Stagione[^a-zA-Z]+', '', lang) # patron = r'([0-9]+x[0-9]+) (.*?)<br' season = scrapertoolsV2.find_multiple_matches(seasons, r'([0-9]+x[0-9]+) (.*?)<br') for title, url in season: title = title + ' - ' + lang itemlist.append( Item(channel=item.channel, title=title, fulltitle=title, show=title, url=url, contentType=item.contentType, action='findvideos' )) return itemlist def findvideos(item): logger.info(item.channel + 'findvideos') if item.contentType == 'movie': data = httptools.downloadpage(item.url, headers=headers).data else: data = item.url itemlist = servertools.find_video_items(data=data) for videoitem in itemlist: videoitem.title = item.title + ' - [COLOR limegreen][[/COLOR]' + videoitem.title + '[COLOR limegreen]][/COLOR]' videoitem.fulltitle = item.fulltitle videoitem.thumbnail = item.thumbnail videoitem.show = item.show videoitem.plot = item.plot videoitem.channel = item.channel videoitem.contentType = item.contentType videoitem.quality = item.quality autoplay.start(itemlist, item) if item.contentType != 'episode': if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos': itemlist.append( Item(channel=item.channel, title='[COLOR yellow][B]'+config.get_localized_string(30161)+'[/B][/COLOR]', url=item.url, action="add_pelicula_to_library", extra="findvideos", contentTitle=item.fulltitle)) return itemlist
Unterschied finden