Files
addon/channels/altadefinizione01_link.py
T
greko17 ad98de19e8 fix: checkhost
ReadTimeout: HTTPSConnectionPool(host='filmsenzalimiti.best', port=443): Read timed out. (read timeout=7)
2019-08-07 18:56:47 +02:00

119 lines
4.3 KiB
Python

# -*- coding: utf-8 -*-
# -*- Channel Altadefinizione01L Film - Serie -*-
# -*- By Greko -*-
from specials import autoplay
from core import servertools, support#, jsontools
from core.item import Item
from platformcode import config, logger
__channel__ = "altadefinizione01_link"
# ======== def per utility INIZIO ============================
host = config.get_channel_url(__channel__)
headers = [['Referer', host]]
list_servers = ['supervideo', 'streamcherry','rapidvideo', 'streamango', 'openload']
list_quality = ['default']
# =========== home menu ===================
@support.menu
def mainlist(item):
## support.dbg()
film = [
('Al Cinema', ['/film-del-cinema', 'peliculas', '']),
('Generi', ['', 'genres', 'genres']),
('Anni', ['', 'genres', 'years']),
('Qualità', ['/piu-visti.html', 'genres', 'quality']),
('Mi sento fortunato', ['/piu-visti.html', 'genres', 'lucky']),
('Popolari', ['/piu-visti.html', 'peliculas', '']),
('Sub-ITA', ['/film-sub-ita/', 'peliculas', ''])
]
## search = ''
return locals()
# ======== def in ordine di action dal menu ===========================
@support.scrape
def peliculas(item):
## support.dbg()
support.log('peliculas',item)
## patron = r'class="innerImage">.*?href="(?P<url>[^"]+)".*?src="(?P<thumb>[^"]+)"'\
## '.*?class="ml-item-title">(?P<title>[^<]+)</.*?class="ml-item-label"> '\
## '(?P<year>\d{4}) <.*?class="ml-item-label"> (?P<duration>\d+) .*?'\
## 'class="ml-item-label ml-item-label-.+?"> (?P<quality>.+?) <.*?'\
## 'class="ml-itelangm-label"> (?P<lang>.+?) </'
patron = r'class="innerImage">.*?href="(?P<url>[^"]+)".*?src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+> (?P<year>\d{4})[^>]+>[^>]+> (?P<duration>\d+)[^>]+>[^>]+> (?P<quality>[a-zA-Z\\]+)[^>]+>[^>]+> (?P<lang>.*?) [^>]+>'
patronNext = '<span>\d</span> <a href="([^"]+)">'
## debug = True
return locals()
# =========== def pagina categorie ======================================
@support.scrape
def genres(item):
support.log('genres',item)
action = 'peliculas'
## item.contentType = 'movie'
if item.args == 'genres':
patronBlock = r'<ul class="listSubCat" id="Film">(?P<block>.*)</ul>'
elif item.args == 'years':
patronBlock = r'<ul class="listSubCat" id="Anno">(?P<block>.*)</ul>'
elif item.args == 'quality':
patronBlock = r'<ul class="listSubCat" id="Qualita">(?P<block>.*)</ul>'
elif item.args == 'lucky': # sono i titoli random nella pagina, cambiano 1 volta al dì
patronBlock = r'FILM RANDOM.*?class="listSubCat">(?P<block>.*)</ul>'
action = 'findvideos'
## item.args = ''
patron = r'<li><a href="(?P<url>[^"]+)">(?P<title>[^<]+)<'
return locals()
# =========== def per cercare film/serietv =============
#host+/index.php?do=search&story=avatar&subaction=search
def search(item, text):
support.log()
itemlist = []
text = text.replace(" ", "+")
item.url = host+"/index.php?do=search&story=%s&subaction=search" % (text)
try:
return peliculas(item)
# Se captura la excepcion, para no interrumpir al buscador global si un canal falla
except:
import sys
for line in sys.exc_info():
logger.info("%s mainlist search log: %s" % (__channel__, line))
return []
# =========== def per le novità nel menu principale =============
def newest(categoria):
support.log(categoria)
itemlist = []
item = Item()
try:
if categoria == "peliculas":
item.url = host
item.action = "peliculas"
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 findvideos(item):
return support.server(item, headers=headers)