This commit is contained in:
thepasto
2019-04-30 22:53:58 +02:00
7 changed files with 121 additions and 161 deletions
+6 -6
View File
@@ -1,11 +1,11 @@
{ {
"id": "animeleggendari", "id": "animeleggendari",
"name": "AnimeLeggendari", "name": "AnimePerTutti",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["ita"], "language": ["ita"],
"thumbnail": "https://animeleggendari.com/wp-content/uploads/2018/01/123header.jpg", "thumbnail": "animepertutti.png",
"bannermenu": "https://animeleggendari.com/wp-content/uploads/2018/01/123header.jpg", "bannermenu": "animepertutti.png",
"categories": ["anime"], "categories": ["anime"],
"settings": [ "settings": [
{ {
@@ -20,9 +20,9 @@
"id": "include_in_newest_anime", "id": "include_in_newest_anime",
"type": "bool", "type": "bool",
"label": "Includi in Novità - Anime", "label": "Includi in Novità - Anime",
"default": false, "default": true,
"enabled": false, "enabled": true,
"visible": false "visible": true
}, },
{ {
"id": "include_in_newest_italiano", "id": "include_in_newest_italiano",
+102 -138
View File
@@ -1,18 +1,18 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# ------------------------------------------------------------ # ------------------------------------------------------------
# Ringraziamo Icarus crew
# Canale per animeleggendari # Canale per animeleggendari
# ------------------------------------------------------------ # ------------------------------------------------------------
import re import re
from channels import autoplay from channels import filtertools, autoplay, support, autorenumber
from channels import filtertools, support from channels.support import log, menu
from core import servertools, httptools, scrapertools, tmdb from core import servertools, httptools, scrapertoolsV2, scrapertools, tmdb
from platformcode import logger, config from platformcode import logger, config
from core.item import Item from core.item import Item
from lib.js2py.host import jsfunctions
host = "https://animeleggendari.com" host = "https://animepertutti.com"
# Richiesto per Autoplay # Richiesto per Autoplay
IDIOMAS = {'Italiano': 'IT'} IDIOMAS = {'Italiano': 'IT'}
@@ -24,57 +24,29 @@ __comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'animeleggendari
__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'animeleggendari') __comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'animeleggendari')
def mainlist(item): def mainlist(item):
logger.info('[animeleggendari.py] mainlist') log()
itemlist = []
menu(itemlist, 'Anime Leggendari', 'peliculas', host + '/category/anime-leggendari/')
menu(itemlist, 'Anime ITA', 'peliculas', host + '/category/anime-ita/')
menu(itemlist, 'Anime SUB-ITA', 'peliculas', host + '/category/anime-sub-ita/')
menu(itemlist, 'Anime Conclusi', 'peliculas', host + '/category/serie-anime-concluse/')
menu(itemlist, 'Anime in Corso', 'peliculas', host + '/category/anime-in-corso/')
menu(itemlist, 'Genere', 'genres', host)
menu(itemlist, 'Cerca...', 'search')
menu(itemlist, 'novita', 'newest')
# Richiesto per Autoplay
autoplay.init(item.channel, list_servers, list_quality) autoplay.init(item.channel, list_servers, list_quality)
itemlist = [Item(channel=item.channel,
action="lista_anime",
title="[B]Anime Leggendari[/B]",
url="%s/category/anime-leggendari/" % 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,
action="lista_anime",
title="Anime [B]ITA[/B]",
url="%s/category/anime-ita/" % 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,
action="lista_anime",
title="Anime [B]SUB ITA[/B]",
url="%s/category/anime-sub-ita/" % 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,
action="lista_anime",
title="Conclusi",
url="%s/category/serie-anime-concluse/" % 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,
action="lista_anime",
title="In Corso",
url="%s/category/anime-in-corso/" % 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,
action="generi",
title="Generi >",
url=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,
action="search",
title="[B]Cerca...[/B]",
thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")]
# Autoplay visualizza voce menu
autoplay.show_option(item.channel, itemlist) autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
def search(item, texto): def search(item, texto):
logger.info('[animeleggendari.py] search') log(texto)
item.url = host + "/?s=" + texto item.url = host + "/?s=" + texto
try: try:
return lista_anime(item) return peliculas(item)
# Continua la ricerca in caso di errore # Continua la ricerca in caso di errore
except: except:
@@ -83,139 +55,131 @@ def search(item, texto):
logger.error("%s" % line) logger.error("%s" % line)
return [] return []
def generi(item): def last_ep(item):
logger.info('[animeleggendari.py] generi') log('ANIME PER TUTTI')
return support.scrape(item, '<a href="([^"]+)">([^<]+)<', ['url','title'],patron_block='<ul class="mh-tab-content-posts">(.*?)<\/ul>', action='findvideos')
def newest(categoria):
log('ANIME PER TUTTI')
log(categoria)
itemlist = [] itemlist = []
item = Item()
try:
if categoria == "anime":
item.url = host
item.action = "last_ep"
itemlist = last_ep(item)
data = httptools.downloadpage(item.url).data.replace('\n','').replace('\t','') if itemlist[-1].action == "last_ep":
logger.info("[animeleggendari.py] generi= "+data) itemlist.pop()
# Continua la ricerca in caso di errore
blocco =scrapertools.find_single_match(data, r'Generi.*?<ul.*?>(.*?)<\/ul>') except:
logger.info("[animeleggendari.py] blocco= "+blocco) import sys
patron = '<a href="([^"]+)">([^<]+)<' for line in sys.exc_info():
logger.error("{0}".format(line))
matches = re.compile(patron, re.DOTALL).findall(blocco) return []
logger.info("[animeleggendari.py] matches= "+str(matches))
for scrapedurl, scrapedtitle in matches:
title = scrapedtitle.replace('Anime ','')
itemlist.append(
Item(channel=item.channel,
action="lista_anime",
title=title,
url=scrapedurl))
return itemlist return itemlist
def lista_anime(item): def genres(item):
logger.info('[animeleggendari.py] lista_anime') itemlist = support.scrape(item, '<a href="([^"]+)">([^<]+)<', ['url', 'title'], action='peliculas', patron_block=r'Generi.*?<ul.*?>(.*?)<\/ul>', blacklist=['Contattaci','Privacy Policy', 'DMCA'])
return support.thumb(itemlist)
def peliculas(item):
log()
itemlist = [] itemlist = []
data = httptools.downloadpage(item.url).data blacklist = ['top 10 anime da vedere']
patron = r'<a class="[^"]+" href="([^"]+)" title="([^"]+)"><img[^s]+src="([^"]+)"[^>]+' matches, data = support.match(item, r'<a class="[^"]+" href="([^"]+)" title="([^"]+)"><img[^s]+src="([^"]+)"[^>]+')
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedtitle, scrapedthumbnail in matches: for url, title, thumb in matches:
scrapedtitle = scrapertools.decodeHtmlentities(scrapedtitle.strip()).replace("streaming", "") title = scrapertoolsV2.decodeHtmlentities(title.strip()).replace("streaming", "")
if 'top 10 anime da vedere' in scrapedtitle.lower(): continue lang = scrapertoolsV2.find_single_match(title, r"((?:SUB ITA|ITA))")
videoType = ''
if 'movie' in title.lower():
videoType = ' - (MOVIE)'
if 'ova' in title.lower():
videoType = ' - (OAV)'
lang = scrapertools.find_single_match(scrapedtitle, r"((?:SUB ITA|ITA))") cleantitle = title.replace(lang, "").replace('(Streaming & Download)', '').replace('( Streaming & Download )', '').replace('OAV', '').replace('OVA', '').replace('MOVIE', '').strip()
cleantitle = scrapedtitle.replace(lang, "").replace('(Streaming & Download)', '')
cleantitle = cleantitle.replace('OAV', '').replace('OVA', '').replace('MOVIE', '') if not videoType :
contentType="tvshow"
action="episodios"
else:
contentType="movie"
action="findvideos"
if not title.lower() in blacklist:
itemlist.append( itemlist.append(
Item(channel=item.channel, Item(channel=item.channel,
action="episodios", action=action,
contentType="tvshow" if 'movie' not in scrapedtitle.lower() and 'ova' not in scrapedtitle.lower() else "movie", contentType=contentType,
text_color="azure", title=support.typo(cleantitle + videoType, 'bold') + support.typo(lang,'_ [] color kod'),
title=scrapedtitle.replace('(Streaming & Download)', '').replace(lang, '[B][' + lang + '][/B]'),
fulltitle=cleantitle, fulltitle=cleantitle,
url=scrapedurl,
show=cleantitle, show=cleantitle,
thumbnail=scrapedthumbnail, url=url,
folder=True)) thumbnail=thumb))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
autorenumber.renumber(itemlist)
patronvideos = r'<a class="next page-numbers" href="([^"]+)">' support.nextPage(itemlist, item, data, r'<a class="next page-numbers" href="([^"]+)">')
matches = re.compile(patronvideos, re.DOTALL).findall(data)
if len(matches) > 0:
itemlist.append(
Item(channel=item.channel,
action="lista_anime",
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",
folder=True))
return itemlist return itemlist
def episodios(item): def episodios(item):
logger.info('[animeleggendari.py] episodios') log()
itemlist = [] itemlist = []
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
blocco = scrapertools.find_single_match(data, r'(?:<p style="text-align: left;">|<div class="pagination clearfix">\s*)(.*?)</span></a></div>') block = scrapertoolsV2.find_single_match(data, r'(?:<p style="text-align: left;">|<div class="pagination clearfix">\s*)(.*?)</span></a></div>')
# Il primo episodio è la pagina stessa
itemlist.append( itemlist.append(
Item(channel=item.channel, Item(channel=item.channel,
action="findvideos", action='findvideos',
contentType=item.contentType, contentType=item.contentType,
title="Episodio: 1", title=support.typo('Episodio 1 bold'),
text_color="azure", fulltitle=item.title,
fulltitle="%s %s %s " % (support.color(item.title, "deepskyblue"), support.color("|", "azure"), support.color("1", "orange")),
url=item.url, url=item.url,
thumbnail=item.thumbnail, thumbnail=item.thumbnail))
folder=True))
if blocco != "": if block:
patron = r'<a href="([^"]+)".*?><span class="pagelink">(\d+)</span></a>' matches = re.compile(r'<a href="([^"]+)".*?><span class="pagelink">(\d+)</span></a>', re.DOTALL).findall(data)
matches = re.compile(patron, re.DOTALL).findall(data) for url, number in matches:
for scrapedurl, scrapednumber in matches:
itemlist.append( itemlist.append(
Item(channel=item.channel, Item(channel=item.channel,
action="findvideos", action='findvideos',
contentType=item.contentType, contentType=item.contentType,
title="Episodio: %s" % scrapednumber, title=support.typo('Episodio ' + number,'bold'),
text_color="azure", fulltitle=item.title,
fulltitle="%s %s %s " % (support.color(item.title, "deepskyblue"), support.color("|", "azure"), support.color(scrapednumber, "orange")), url=url,
url=scrapedurl, thumbnail=item.thumbnail))
thumbnail=item.thumbnail,
folder=True))
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="episodi",
show=item.show))
autorenumber.renumber(itemlist, item)
support.videolibrary
return itemlist return itemlist
def findvideos(item): def findvideos(item):
logger.info('[animeleggendari.py] findvideos') log()
data = ''
matches = support.match(item, 'str="([^"]+)"')[0]
if matches:
for match in matches:
data += str(jsfunctions.unescape(re.sub('@|g','%', match)))
data += str(match)
log('DATA',data)
if 'animepertutti' in data:
log('ANIMEPERTUTTI!')
data = httptools.downloadpage(item.url).data else:
itemlist = servertools.find_video_items(data=data) data = ''
for videoitem in itemlist: itemlist = support.server(item,data)
server = re.sub(r'[-\[\]\s]+', '', videoitem.title)
videoitem.title = "".join(["[%s] " % support.color(server.capitalize(), 'orange'), item.title])
videoitem.fulltitle = item.fulltitle
videoitem.show = item.show
videoitem.thumbnail = item.thumbnail
videoitem.channel = item.channel
# Richiesto per Verifica se i link esistono
if __comprueba_enlaces__: if __comprueba_enlaces__:
itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__) itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__)
# Richiesto per FilterTools
itemlist = filtertools.get_links(itemlist, item, list_language) itemlist = filtertools.get_links(itemlist, item, list_language)
# Autoplay
autoplay.start(itemlist, item) autoplay.start(itemlist, item)
return itemlist return itemlist
+1 -5
View File
@@ -64,7 +64,7 @@ def add_season(data=None):
special = platformtools.dialog_numeric(0, heading) special = platformtools.dialog_numeric(0, heading)
return [int(season), int(episode), int(special)] return [int(season), int(episode), int(special)]
elif episode != '': elif episode != '':
return [int(season), int(episode)] return [int(season), int(episode), '']
def write_data(channel, show, data): def write_data(channel, show, data):
@@ -94,10 +94,6 @@ def write_data(channel, show, data):
def renumber(itemlist, item='', typography=''): def renumber(itemlist, item='', typography=''):
log() log()
# log(itemlist)
# key_list= item.title
# sorted_list = sorted(itemlist, key=key_list)
# log(sorted_list)
if item: if item:
try: try:
+1 -1
View File
@@ -10020,7 +10020,7 @@ msgid "Do you want to update Quasar to avoid errors?"
msgstr "" msgstr ""
msgctxt "#70585" msgctxt "#70585"
msgid "RENUMBERING" msgid "[B]Renumbering[/B] (beta)"
msgstr "" msgstr ""
msgctxt "#70586" msgctxt "#70586"
+2 -2
View File
@@ -5004,8 +5004,8 @@ msgid "Do you want to update Quasar to avoid errors?"
msgstr "Vuoi aggiornare Quasar per evitare errori?" msgstr "Vuoi aggiornare Quasar per evitare errori?"
msgctxt "#70585" msgctxt "#70585"
msgid "RENUMBERING" msgid "[B]Renumbering[/B] (beta)"
msgstr "RINUMERAZIONE" msgstr "[B]Rinumerazione[/B] (beta)"
msgctxt "#70586" msgctxt "#70586"
msgid "Set up series number..." msgid "Set up series number..."
Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB