diff --git a/.gitignore b/.gitignore
index bd02e367..d9aeb552 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,5 @@
*.pyc
.DS_Store
.idea/
-.dev
.directory
__pycache__/
diff --git a/channels/support.py b/channels/support.py
index 1f77809c..5e0da055 100644
--- a/channels/support.py
+++ b/channels/support.py
@@ -189,7 +189,8 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data=""
quality=scraped["quality"],
url=scraped["url"],
infoLabels=infolabels,
- thumbnail=scraped["thumb"]
+ thumbnail=scraped["thumb"],
+ args=item.args
)
for lg in list(set(listGroups).difference(known_keys)):
@@ -417,6 +418,7 @@ def typo(string, typography=''):
def match(item, patron='', patron_block='', headers='', url=''):
+ matches = []
url = url if url else item.url
data = httptools.downloadpage(url, headers=headers).data.replace("'", '"')
data = re.sub('\n|\t', '', data)
@@ -480,10 +482,12 @@ def nextPage(itemlist, item, data, patron, function_level=1):
return itemlist
-def server(item, data='', headers='', AutoPlay=True):
+def server(item, data='', headers='', AutoPlay=True, CheckLinks=True):
__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', item.channel)
+ log(__comprueba_enlaces__ )
__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', item.channel)
+ log(__comprueba_enlaces_num__ )
if not data:
data = httptools.downloadpage(item.url, headers=headers).data
@@ -498,7 +502,7 @@ def server(item, data='', headers='', AutoPlay=True):
videoitem.channel = item.channel
videoitem.contentType = item.contentType
- if __comprueba_enlaces__:
+ if __comprueba_enlaces__ and CheckLinks:
itemlist = servertools.check_list_links(itemlist, __comprueba_enlaces_num__)
if AutoPlay == True:
diff --git a/channels/tantifilm.json b/channels/tantifilm.json
index a575213c..e181261f 100644
--- a/channels/tantifilm.json
+++ b/channels/tantifilm.json
@@ -6,9 +6,9 @@
"adult": false,
"thumbnail": "https://raw.githubusercontent.com/Zanzibar82/images/master/posters/tantifilm.png",
"banner": "https://raw.githubusercontent.com/Zanzibar82/images/master/posters/tantifilm.png",
- "categories": ["tvshow", "movie"],
+ "categories": ["tvshow", "movie", "anime"],
"settings": [
- {
+ {
"id": "include_in_global_search",
"type": "bool",
"label": "Includi in ricerca globale",
@@ -25,14 +25,6 @@
"visible": true
},
- {
- "id": "include_in_newest_series",
- "type": "bool",
- "label": "Includi in Novità - Serie TV",
- "default": true,
- "enabled": true,
- "visible": true
- },
{
"id": "include_in_newest_italiano",
"type": "bool",
diff --git a/channels/tantifilm.py b/channels/tantifilm.py
index f7443fb9..0a366a53 100644
--- a/channels/tantifilm.py
+++ b/channels/tantifilm.py
@@ -1,130 +1,79 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
-# Ringraziamo Icarus crew
-# Canale piratestreaming
+# Canale per Tantifilm
# ------------------------------------------------------------
+
import re
import urlparse
-from channels import autoplay
-from channels import filtertools
-from core import scrapertools, servertools, httptools
+from channels import support, autorenumber
+from channels.support import menu, log, aplay
+from core import scrapertoolsV2, httptools, tmdb
from core.item import Item
-from core import tmdb
-from lib.unshortenit import unshorten_only
-from platformcode import config
-from platformcode import logger
+from platformcode import config, logger
IDIOMAS = {'Italiano': 'IT'}
list_language = IDIOMAS.values()
list_servers = ['verystream', 'openload', 'streamango', 'vidlox', 'youtube']
list_quality = ['default']
-__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'tantifilm')
-__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'tantifilm')
-
-host = "https://www.tantifilm.club" ### <-- Cambiato Host da .gratis a .club --> Continua riga 233
+host = "https://www.tantifilm.cafe"
headers = [['Referer', host]]
def mainlist(item):
- logger.info("kod.tantifilm mainlist")
+ log()
+ itemlist = []
- autoplay.init(item.channel, list_servers, list_quality)
- itemlist = [Item(channel=item.channel,
- title="[COLOR azure]Novita'[/COLOR]",
- action="peliculas",
- url="%s/watch-genre/recommended/" % 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]HD - Alta Definizione[/COLOR]",
- action="peliculas",
- url="%s/watch-genre/altadefinizione/" % host,
- thumbnail="http://jcrent.com/apple%20tv%20final/HD.png"),
- Item(channel=item.channel,
- title="[COLOR azure]Film Per Categoria[/COLOR]",
- action="categorias",
- 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,
- 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/watch-genre/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")]
-
- autoplay.show_option(item.channel, itemlist)
+ menu(itemlist, 'Film', 'peliculas', host + '/film/', 'movie', args='movie')
+ menu(itemlist, 'Film Al Cinema submenu', 'peliculas', host + '/watch-genre/al-cinema/', 'movie')
+ menu(itemlist, 'Film HD submenu', 'peliculas', host + '/watch-genre/altadefinizione/', 'movie')
+ menu(itemlist, 'Film Per Categoria submenu', 'category', host, 'movie')
+ menu(itemlist, 'Cerca film... submenu color kod', 'search', contentType='movie', args='findvideos')
+ menu(itemlist, 'Serie TV', 'peliculas', host + '/watch-genre/serie-tv/', contentType='episode')
+ menu(itemlist, 'Serie TV HD submenu', 'peliculas', host + '/watch-genre/serie-altadefinizione/', contentType='episode')
+ menu(itemlist, 'Miniserie submenu', 'peliculas', host + '/watch-genre/miniserie/', contentType='episode', args='serie')
+ menu(itemlist, 'Programmi TV submenu', 'peliculas', host + '/watch-genre/programmi-tv/', contentType='episode')
+ menu(itemlist, 'Anime submenu', 'peliculas', host + '/watch-genre/anime/', contentType='episode', args='anime')
+ menu(itemlist, 'Cerca Serie TV... submenu color kod', 'search', contentType='episode', args='episodios')
+ aplay(item, itemlist, list_servers, list_quality)
return itemlist
def newest(categoria):
- logger.info("kod.tantifilm newest" + categoria)
+ log()
itemlist = []
item = Item()
- try:
- if categoria == "film":
- item.url = host
- item.action = "latest"
- itemlist = latest(item)
+ item.url = host +'/aggiornamenti/'
- if itemlist[-1].action == "latest":
- itemlist.pop()
+ matches = support.match(item, r'mediaWrapAlt recomended_videos"[^>]+>\s*\s*]+>')[0]
- # 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 categorias(item):
- itemlist = []
-
- # Carica la pagina
- data = httptools.downloadpage(item.url, headers=headers).data
- bloque = scrapertools.find_single_match(data,
- '
(.*?)
')
-
- # Estrae i contenuti
- patron = '\s*
([^<]+)', ['url', 'title'], headers, blacklist, patron_block='
([^(:?\(|>]+)' + itemlist = support.scrape(item, patron, ['url', 'thumb', 'title'], headers, action=action, patronNext='') + return autorenumber.renumber(itemlist) if item.args == 'anime' else itemlist def episodios(item): - def load_episodios(html, item, itemlist): - for data in html.splitlines(): - # Estrae i contenuti - end = data.find(' 0: - scrapedtitle = re.sub(r'<[^>]*>', '', data[:end]).strip() - else: - scrapedtitle = '' - if scrapedtitle == '': - patron = '([^<]+)' - scrapedtitle = scrapertools.find_single_match(data, patron).strip() - title = scrapertools.find_single_match(scrapedtitle, '\d+[^\d]+\d+') - if title == '': - title = scrapedtitle - if title != '': - itemlist.append( - Item(channel=item.channel, - action="findvideos", - contentType="episode", - title=title, - url=data, - thumbnail=item.thumbnail, - extra=item.extra, - fulltitle=item.fulltitle, - show=item.show)) - - logger.info("kod.tantifilm episodios") - + log() itemlist = [] + if item.args == 'anime': return anime(item) - data = httptools.downloadpage(item.url, headers=headers).data - data = scrapertools.decodeHtmlentities(data) + data = httptools.downloadpage(item.url).data - start = data.find('
([^<]+)<\/h3>') + if 'serie tv' not in check.lower(): return findvideos(item) + elif 'anime' in check.lower(): return findvideos(item) - data_sub = data[start:end] - - starts = [] - patron = r".*?STAGIONE|MINISERIE|WEBSERIE|SERIE" - matches = re.compile(patron, re.IGNORECASE).finditer(data_sub) - for match in matches: - season_title = match.group() - if season_title != '': - starts.append(match.end()) - - i = 1 - len_starts = len(starts) - - while i <= len_starts: - inizio = starts[i - 1] - fine = starts[i] if i < len_starts else -1 - - html = data_sub[inizio:fine] - - load_episodios(html, item, itemlist) - - i += 1 - - if len(itemlist) == 0: - patron = '([^<]+)' - seasons_episodes = re.compile(patron, re.DOTALL).findall(data) - - end = None - for scrapedtag, scrapedtitle in seasons_episodes: - start = data.find(scrapedtag, end) - end = data.find('', start) - html = data[start:end] + patron = r'