diff --git a/channels/animesaturn.py b/channels/animesaturn.py index 560ecedc..90edb519 100644 --- a/channels/animesaturn.py +++ b/channels/animesaturn.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------ # Canale per AnimeSaturn -# Thanks to me +# Thanks to 4l3x87 # ---------------------------------------------------------- import re @@ -10,6 +10,7 @@ import urlparse import channelselector from core import httptools, tmdb, support, scrapertools, jsontools from core.item import Item +from core.support import log from platformcode import logger, config from specials import autoplay, autorenumber @@ -19,30 +20,19 @@ headers = [['Referer', host]] IDIOMAS = {'Italiano': 'IT'} list_language = IDIOMAS.values() -list_servers = ['openload','fembed'] -list_quality = ['default'] +list_servers = ['openload', 'fembed', 'animeworld'] +list_quality = ['default', '480p', '720p', '1080p'] def mainlist(item): - support.log(item.channel + 'mainlist') + log() itemlist = [] - support.menu(itemlist, 'Anime bold', 'lista_anime', "%s/animelist?load_all=1" % host) - support.menu(itemlist, 'Novità submenu', 'ultimiep', "%s/fetch_pages.php?request=episodes" % host,'tvshow') - support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', '%s/animelist?load_all=1' % host,args=['tvshow','alfabetico']) + support.menu(itemlist, 'Novità bold', 'ultimiep', "%s/fetch_pages.php?request=episodes" % host, 'tvshow') + support.menu(itemlist, 'Anime bold', 'lista_anime', "%s/animelist?load_all=1" % host) + support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', '%s/animelist?load_all=1' % host, args=['tvshow', 'alfabetico']) support.menu(itemlist, 'Cerca', 'search', host) - - - autoplay.init(item.channel, list_servers, list_quality) - autoplay.show_option(item.channel, itemlist) - - itemlist.append( - Item(channel='setting', - action="channel_config", - title=support.typo("Configurazione Canale color lime"), - config=item.channel, - folder=False, - thumbnail=channelselector.get_thumb('setting_0.png')) - ) + support.aplay(item, itemlist, list_servers, list_quality) + support.channel_config(item, itemlist) return itemlist @@ -50,7 +40,7 @@ def mainlist(item): # ---------------------------------------------------------------------------------------------------------------- def cleantitle(scrapedtitle): scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle.strip()) - scrapedtitle = scrapedtitle.replace('[HD]', '').replace('’', '\'').replace('×','x') + scrapedtitle = scrapedtitle.replace('[HD]', '').replace('’', '\'').replace('×', 'x').replace('"', "'") year = scrapertools.find_single_match(scrapedtitle, '\((\d{4})\)') if year: scrapedtitle = scrapedtitle.replace('(' + year + ')', '') @@ -62,7 +52,7 @@ def cleantitle(scrapedtitle): # ---------------------------------------------------------------------------------------------------------------- def lista_anime(item): - support.log(item.channel + " lista_anime") + log() itemlist = [] PERPAGE = 15 @@ -78,37 +68,33 @@ def lista_anime(item): for i, serie in enumerate(series): matches.append(serie.split('||')) else: - # Carica la pagina - data = httptools.downloadpage(item.url).data - # Estrae i contenuti patron = r']*?>[^>]*?>(.+?)<' - matches = re.compile(patron, re.DOTALL).findall(data) - + matches = support.match(item, patron, headers=headers)[0] scrapedplot = "" scrapedthumbnail = "" for i, (scrapedurl, scrapedtitle) in enumerate(matches): if (p - 1) * PERPAGE > i: continue if i >= p * PERPAGE: break - title = cleantitle(scrapedtitle).replace('(ita)','(ITA)') + title = cleantitle(scrapedtitle).replace('(ita)', '(ITA)') movie = False showtitle = title if '(ITA)' in title: - title = title.replace('(ITA)','').strip() + title = title.replace('(ITA)', '').strip() showtitle = title - title += ' '+support.typo(' (ITA)') + else: + title += ' ' + support.typo('Sub-ITA', '_ [] color kod') infoLabels = {} if 'Akira' in title: movie = True - infoLabels['year']= 1988 + infoLabels['year'] = 1988 if 'Dragon Ball Super Movie' in title: movie = True infoLabels['year'] = 2019 - itemlist.append( Item(channel=item.channel, extra=item.extra, @@ -130,15 +116,7 @@ def lista_anime(item): # Paginazione if len(matches) >= p * PERPAGE: - scrapedurl = item.url + '{}' + str(p + 1) - itemlist.append( - Item(channel=item.channel, - action='lista_anime', - contentType=item.contentType, - title=support.typo(config.get_localized_string(30992), 'color kod bold'), - url=scrapedurl, - args=item.args, - thumbnail=support.thumb())) + support.nextPage(itemlist, item, next_page=(item.url + '{}' + str(p + 1))) return itemlist @@ -148,17 +126,14 @@ def lista_anime(item): # ---------------------------------------------------------------------------------------------------------------- def episodios(item): - support.log(item.channel + " episodios") + log() itemlist = [] - data = httptools.downloadpage(item.url).data - + data = httptools.downloadpage(item.url, headers=headers, ignore_response_code=True).data anime_id = scrapertools.find_single_match(data, r'\?anime_id=(\d+)') - - #movie or series + # movie or series movie = scrapertools.find_single_match(data, r'\Episodi:\s(\d*)\sMovie') - data = httptools.downloadpage( host + "/loading_anime?anime_id=" + anime_id, headers={ @@ -167,7 +142,7 @@ def episodios(item): patron = r'
]+>([^<]+)<[^>]+>[^>]+>[^>]+>'
- patron += r'[^<]+[^"]+".*?serie="([^"]+)".*?stag="([0-9]*)".*?ep="([0-9]*)"\s*'
- patron += r'.*?embed="([^"]+)"\s*.*?embed2="([^"]+)?"\s*.*?embed3="([^"]+)?"?[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>\s*'
- patron += r'(?:]+>|
]+>)?'
- # matches = re.compile(patron, re.DOTALL).findall(data)
-
- # logger.debug(matches)
+ patron = r'
]+>([^<]+)<[^>]+>[^>]+>[^>]+>'
+ patron += r'[^"]+".*?serie="([^"]+)".*?stag="([0-9]*)".*?ep="([0-9]*)"\s'
+ patron += r'.*?embed="([^"]+)"\s.*?embed2="([^"]+)?"\s.*?embed3="([^"]+)?"?[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>\s?'
+ patron += r'(?:]+>|
]+>)?'
matches = support.match(item, patron, headers=headers)[0]
-
- for scrapedtitle, scrapedepisodetitle, scrapedplot, scrapedserie, scrapedseason, scrapedepisode, scrapedurl, scrapedurl2,scrapedurl3,scrapedthumbnail,scrapedthumbnail2 in matches:
+ for scrapedtitle, scrapedepisodetitle, scrapedplot, scrapedserie, scrapedseason, scrapedepisode, scrapedurl, scrapedurl2, scrapedurl3, scrapedthumbnail, scrapedthumbnail2 in matches:
scrapedtitle = cleantitle(scrapedtitle)
scrapedepisode = scrapedepisode.zfill(2)
scrapedepisodetitle = cleantitle(scrapedepisodetitle)
title = str("%sx%s %s" % (scrapedseason, scrapedepisode, scrapedepisodetitle)).strip()
if 'SUB-ITA' in scrapedtitle:
- title +=" Sub-ITA"
+ title += " "+support.typo("Sub-ITA", '_ [] color kod')
infoLabels = {}
infoLabels['season'] = scrapedseason
infoLabels['episode'] = scrapedepisode
itemlist.append(
- Item(channel=item.channel,
- action="findvideos",
- title=title,
- fulltitle=scrapedtitle,
- url=scrapedurl+"\r\n"+scrapedurl2+"\r\n"+scrapedurl3,
- contentType="episode",
- plot=scrapedplot,
- contentSerieName=scrapedserie,
- contentLanguage='Sub-ITA' if 'Sub-ITA' in title else '',
- infoLabels=infoLabels,
- thumbnail=scrapedthumbnail2 if scrapedthumbnail2 != '' else scrapedthumbnail,
- folder=True))
+ Item(channel=item.channel,
+ action="findvideos",
+ title=support.typo(title, 'bold'),
+ fulltitle=scrapedtitle,
+ url=scrapedurl + "\r\n" + scrapedurl2 + "\r\n" + scrapedurl3,
+ contentType="episode",
+ plot=scrapedplot,
+ contentSerieName=scrapedserie,
+ contentLanguage='Sub-ITA' if 'Sub-ITA' in title else '',
+ infoLabels=infoLabels,
+ thumbnail=scrapedthumbnail2 if scrapedthumbnail2 != '' else scrapedthumbnail,
+ folder=True))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
@@ -315,22 +197,24 @@ def episodios(item):
# ----------------------------------------------------------------------------------------------------------------
def findepvideos(item):
- support.log(item.channel+" findepvideos")
- data = httptools.downloadpage(item.url, headers=headers).data
+ log()
+ data = httptools.downloadpage(item.url, headers=headers, ignore_response_code=True).data
matches = scrapertools.find_multiple_matches(data, item.extra)
data = "\r\n".join(matches[0])
item.contentType = 'movie'
- itemlist = support.server(item, data=data)
-
- return itemlist
+ return support.server(item, data=data)
# ================================================================================================================
# ----------------------------------------------------------------------------------------------------------------
def findvideos(item):
- support.log(item.channel+" findvideos")
- logger.debug(item.url)
- itemlist = support.server(item, data=item.url)
-
- return itemlist
+ log()
+ if item.contentType == 'tvshow':
+ data = httptools.downloadpage(item.url, headers=headers).data
+ matches = scrapertools.find_multiple_matches(data, item.extra)
+ data = "\r\n".join(matches[0])
+ else:
+ log(item.url)
+ data = item.url
+ return support.server(item, data)
diff --git a/channels/serietvsubita.py b/channels/serietvsubita.py
index 3ce72d6b..693e7487 100644
--- a/channels/serietvsubita.py
+++ b/channels/serietvsubita.py
@@ -1,16 +1,16 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
-# Canale per Serie Tv Sub ITA
-# Thanks to Icarus crew & Alfa addon
+# Canale per Serietvsubita
+# Thanks to Icarus crew & Alfa addon & 4l3x87
# ----------------------------------------------------------
+
import re
import time
-import channelselector
from core import httptools, tmdb, scrapertools, support
from core.item import Item
+from core.support import log
from platformcode import logger, config
-from specials import autoplay
__channel__ = "serietvsubita"
host = config.get_setting("channel_host", __channel__)
@@ -18,33 +18,19 @@ headers = [['Referer', host]]
IDIOMAS = {'Italiano': 'IT'}
list_language = IDIOMAS.values()
-list_servers = ['gounlimited','verystream','streamango','openload']
+list_servers = ['gounlimited', 'verystream', 'streamango', 'openload']
list_quality = ['default']
-# checklinks = config.get_setting('checklinks', __channel__)
-# checklinks_number = config.get_setting('checklinks_number', __channel__)
-
def mainlist(item):
- support.log(item.channel + 'mainlist')
+ log()
itemlist = []
- support.menu(itemlist, 'Serie TV bold', 'lista_serie', host,'tvshow')
- support.menu(itemlist, 'Novità submenu', 'peliculas_tv', host,'tvshow')
- support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', host,'tvshow',args=['serie'])
- support.menu(itemlist, 'Cerca', 'search', host,'tvshow')
-
-
- autoplay.init(item.channel, list_servers, list_quality)
- autoplay.show_option(item.channel, itemlist)
-
- itemlist.append(
- Item(channel='setting',
- action="channel_config",
- title=support.typo("Configurazione Canale color lime"),
- config=item.channel,
- folder=False,
- thumbnail=channelselector.get_thumb('setting_0.png'))
- )
+ support.menu(itemlist, 'Novità bold', 'peliculas_tv', host, 'tvshow')
+ support.menu(itemlist, 'Serie TV bold', 'lista_serie', host, 'tvshow')
+ support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', host, 'tvshow', args=['serie'])
+ support.menu(itemlist, 'Cerca', 'search', host, 'tvshow')
+ support.aplay(item, itemlist, list_servers, list_quality)
+ support.channel_config(item, itemlist)
return itemlist
@@ -52,20 +38,57 @@ def mainlist(item):
# ----------------------------------------------------------------------------------------------------------------
def cleantitle(scrapedtitle):
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle.strip())
- scrapedtitle = scrapedtitle.replace('[HD]', '').replace('’', '\'').replace('×','x').replace('Game of Thrones –','').replace('In The Dark 2019','In The Dark (2019)').strip()
+ scrapedtitle = scrapedtitle.replace('[HD]', '').replace('’', '\'').replace('×', 'x').replace('Game of Thrones –','')\
+ .replace('In The Dark 2019', 'In The Dark (2019)').replace('"', "'").strip()
year = scrapertools.find_single_match(scrapedtitle, '\((\d{4})\)')
if year:
scrapedtitle = scrapedtitle.replace('(' + year + ')', '')
-
return scrapedtitle.strip()
# ================================================================================================================
+# ----------------------------------------------------------------------------------------------------------------
+def findvideos(item):
+ log()
+ data = httptools.downloadpage(item.url, headers=headers, ignore_response_code=True).data
+ data = re.sub(r'\n|\t|\s+', ' ', data)
+ # recupero il blocco contenente i link
+ blocco = scrapertools.find_single_match(data, r'