Merge branch 'stable' of https://github.com/kodiondemand/addon into stable
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"altadefinizione01": "https://altadefinizione01.photo",
|
||||
"altadefinizione01_link": "https://altadefinizione01.kim",
|
||||
"altadefinizioneclick": "https://altadefinizione.style",
|
||||
"altadefinizioneclick": "https://altadefinizione.rocks",
|
||||
"animeforce": "https://ww1.animeforce.org",
|
||||
"animeleggendari": "https://animepertutti.com",
|
||||
"animesaturn": "https://www.animesaturn.com",
|
||||
@@ -10,33 +10,36 @@
|
||||
"animetubeita": "http://www.animetubeita.com",
|
||||
"animeunity": "https://www.animeunity.it",
|
||||
"animeworld": "https://www.animeworld.tv",
|
||||
"casacinema": "https://www.casacinema.bid",
|
||||
"casacinemaInfo": "https://casacinema.blue",
|
||||
"cb01anime": "https://www.cineblog01.ink",
|
||||
"casacinema": "https://www.casacinema.me",
|
||||
"casacinemaInfo": "https://casacinema.life",
|
||||
"cineblog01": "https://cb01.expert",
|
||||
"cb01anime": "https://www.cineblog01.network",
|
||||
"cinemalibero": "https://www.cinemalibero.plus",
|
||||
"cinetecadibologna": "http://cinestore.cinetecadibologna.it",
|
||||
"dreamsub": "https://dreamsub.stream",
|
||||
"dsda": "https://www.dsda.press/",
|
||||
"fastsubita": "https://fastsubita.online",
|
||||
"filmgratis": "https://www.filmaltadefinizione.tv",
|
||||
"filmigratis": "https://filmigratis.org",
|
||||
"filmsenzalimiticc": "https://www.filmsenzalimiti.website",
|
||||
"filmsenzalimiticc": "https://www.filmsenzalimiti.cafe",
|
||||
"filmstreaming01": "https://filmstreaming01.com",
|
||||
"guardaserie_stream": "https://guardaserie.store",
|
||||
"guardaserieclick": "https://www.guardaserie.productions",
|
||||
"hd4me": "https://hd4me.net",
|
||||
"ilgeniodellostreaming": "https://ilgeniodellostreaming.pl",
|
||||
"italiaserie": "https://italiaserie.org",
|
||||
"mondoserietv": "https://mondoserietv.com",
|
||||
"netfreex": "https://www.netfreex.pro",
|
||||
"piratestreaming": "https://www.piratestreaming.group",
|
||||
"piratestreaming": "https://www.piratestreaming.online",
|
||||
"polpotv": "https://polpotv.club",
|
||||
"pufimovies": "https://pufimovies.com",
|
||||
"raiplay": "https://www.raiplay.it",
|
||||
"seriehd": "https://seriehd.life",
|
||||
"seriehd": "https://seriehd.digital",
|
||||
"serietvonline": "https://serietvonline.casa",
|
||||
"serietvsubita": "http://serietvsubita.xyz",
|
||||
"serietvu": "https://www.serietvu.link",
|
||||
"streamtime": "https://t.me/s/StreamTime",
|
||||
"tantifilm": "https://www.tantifilm.eu",
|
||||
"tantifilm": "https://www.tantifilm.vip",
|
||||
"toonitalia": "https://toonitalia.org",
|
||||
"vedohd": "https://vedohd.uno",
|
||||
"vvvvid": "https://www.vvvvid.it"
|
||||
|
||||
@@ -11,16 +11,16 @@ from lib import unshortenit
|
||||
from platformcode import logger, config
|
||||
|
||||
|
||||
def findhost():
|
||||
permUrl = httptools.downloadpage('https://www.cb01.uno/', follow_redirects=False).headers
|
||||
if 'google' in permUrl['location']:
|
||||
host = permUrl['location'].replace('https://www.google.it/search?q=site:', '')
|
||||
else:
|
||||
host = permUrl['location']
|
||||
return host
|
||||
# def findhost():
|
||||
# permUrl = httptools.downloadpage('https://cb01-nuovo-indirizzo.info/', follow_redirects=False, only_headers=True).headers
|
||||
# if 'google' in permUrl['location']:
|
||||
# host = permUrl['location'].replace('https://www.google.it/search?q=site:', '')
|
||||
# else:
|
||||
# host = permUrl['location']
|
||||
# return host
|
||||
|
||||
|
||||
host = config.get_channel_url(findhost)
|
||||
host = config.get_channel_url()
|
||||
headers = [['Referer', host]]
|
||||
|
||||
list_servers = ['mixdrop', 'akstream', 'wstream', 'backin']
|
||||
@@ -47,7 +47,7 @@ def mainlist(item):
|
||||
('Ultime Aggiornate', ['/serietv/', 'peliculas', 'newest'])
|
||||
]
|
||||
docu = [('Documentari bullet bold', ['/category/documentario/', 'peliculas']),
|
||||
('HD submenu', ['category/hd-alta-definizione/documentario-hd/', 'peliculas'])
|
||||
('HD submenu {documentari}', ['category/hd-alta-definizione/documentario-hd/', 'peliculas'])
|
||||
]
|
||||
|
||||
return locals()
|
||||
@@ -152,7 +152,7 @@ def peliculas(item):
|
||||
action = 'findvideos'
|
||||
else:
|
||||
# debug = True
|
||||
patron = r'div class="card-image">.*?<img src="(?P<thumb>[^ ]+)" alt.*?<a href="(?P<url>[^ >]+)">(?P<title>.*?)(?P<lang>(?:[Ss][Uu][Bb]-)?[Ii][Tt][Aa])?<\/a>.*?(?:<strong><span style="[^"]+">(?P<genre>[^<>0-9(]+)\((?P<year>[0-9]{4}).*?</(?:p|div)>(?P<plot>.*?))?</div'
|
||||
patron = r'div class="card-image">.*?<img src="(?P<thumb>[^ ]+)" alt.*?<a href="(?P<url>[^ >]+)">(?P<title>.*?)(?: – (?:[SS]tagione \d|\d).*?)?(?P<lang>(?:[Ss][Uu][Bb]-)?[Ii][Tt][Aa])?<\/a>.*?(?:<strong><span style="[^"]+">(?P<genre>[^<>0-9(]+)\((?P<year>[0-9]{4}).*?</(?:p|div)>(?P<plot>.*?))?</div'
|
||||
action = 'episodios'
|
||||
item.contentType = 'tvshow'
|
||||
|
||||
|
||||
@@ -65,11 +65,10 @@ def peliculas(item):
|
||||
|
||||
@support.scrape
|
||||
def episodios(item):
|
||||
|
||||
data = support.match(item.url, headers=headers).data
|
||||
if 'accordion-item' in data:
|
||||
patronBlock = r'<span class="season[^>]*>\d+[^>]+>[^>]+>[^>]+>[^>]+>\D*(?:STAGIONE|Stagione)[ -]+(?P<lang>[a-zA-Z\- ]+)[^<]*</span>(?P<block>.*?)<div id="(?:season|disqus)'
|
||||
patron = r'<img src="(?P<thumb>[^"]+)">.*?<li class="season-no">(?P<episode>[^<]+)<\/li>(?P<url>.*?javascript:;">(?P<title>[^<]+).*?</tbody>)'
|
||||
patron = r'<img src="(?P<thumb>[^"]+)">.*?<li class="season-no">(?P<season>\d+)(?:×|×|x)(?P<episode>\d+)[^<]+<\/li>(?P<url>.*?javascript:;">(?P<title>[^<]+).*?</tbody>)'
|
||||
else:
|
||||
patronBlock = r'(?:STAGIONE|Stagione)(?:<[^>]+>)?\s*(?:(?P<lang>[A-Za-z- ]+))?(?P<block>.*?)(?: |<strong>|<div class="addtoany)'
|
||||
patron = r'(?:/>|p>)\s*(?P<season>\d+)(?:×|×|x)(?P<episode>\d+)[^<]+(?P<url>.*?)(?:<br|</p)'
|
||||
|
||||
@@ -42,7 +42,7 @@ if HTTPTOOLS_DEFAULT_DOWNLOAD_TIMEOUT == 0: HTTPTOOLS_DEFAULT_DOWNLOAD_TIMEOUT =
|
||||
HTTPTOOLS_DEFAULT_RANDOM_HEADERS = False
|
||||
|
||||
domainCF = list()
|
||||
channelsCF = ['guardaserieclick', 'casacinema', 'dreamsub', 'ilgeniodellostreaming', 'piratestreaming', 'altadefinizioneclick', 'altadefinizione01_link']
|
||||
channelsCF = ['guardaserieclick', 'casacinema', 'dreamsub', 'ilgeniodellostreaming', 'piratestreaming', 'altadefinizioneclick', 'altadefinizione01_link', 'cineblog01']
|
||||
otherCF = ['altadefinizione-nuovo.link', 'wstream.video', 'akvideo.stream', 'backin.net', 'vcrypt.net']
|
||||
for ch in channelsCF:
|
||||
domainCF.append(urlparse.urlparse(config.get_channel_url(name=ch)).hostname)
|
||||
|
||||
@@ -598,7 +598,8 @@ def swzz_get_url(item):
|
||||
if not "vcrypt" in data:
|
||||
data = httptools.downloadpage(data).data
|
||||
logger.debug("##### play /link/ data ##\n%s\n##" % data)
|
||||
elif 'https://stayonline.pro' in item.url:
|
||||
elif 'stayonline.pro' in item.url:
|
||||
# dbg()
|
||||
id = item.url.split('/')[-2]
|
||||
reqUrl = 'https://stayonline.pro/ajax/linkView.php'
|
||||
p = urlencode({"id": id})
|
||||
@@ -607,11 +608,13 @@ def swzz_get_url(item):
|
||||
import json
|
||||
data = json.loads(data)['data']['value']
|
||||
except:
|
||||
data = scrapertools.find_single_match(data, r'"value"\s*:\s*"([^"]+)"')
|
||||
else:
|
||||
return ''
|
||||
else:
|
||||
data = item.url
|
||||
|
||||
return data
|
||||
return data.replace('\\','')
|
||||
|
||||
|
||||
def menuItem(itemlist, filename, title='', action='', url='', contentType='movie', args=[]):
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
"patterns": [
|
||||
{
|
||||
"pattern": "wstream\\.video(?!<)(?:=|/)(?:video[a-zA-Z0-9.?_]*|embed[a-zA-Z0-9]*|)?(?!api|swembedid)(?:-|/|=)?(?:[a-z0-9A-Z]+/)?([a-z0-9A-Z]+)",
|
||||
"url": "http://116.202.226.34/video.php?file_code=\\1"
|
||||
"url": "http://wstream.video/video.php?file_code=\\1"
|
||||
},
|
||||
{
|
||||
"pattern": "wstream\\.video/(api/vcmod/fastredirect/streaming\\.php\\?id=[$0-9]+)",
|
||||
"url": "http://116.202.226.34/\\1"
|
||||
"url": "http://wstream.video/\\1"
|
||||
}
|
||||
],
|
||||
"ignore_urls": []
|
||||
|
||||
@@ -2,7 +2,9 @@
|
||||
# Kodi on Demand - Kodi Addon - Kodi Addon
|
||||
# by DrZ3r0 - Fix Alhaziel
|
||||
|
||||
import re, json
|
||||
import json
|
||||
import re
|
||||
|
||||
try:
|
||||
import urllib.parse as urllib
|
||||
except ImportError:
|
||||
@@ -15,17 +17,17 @@ headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
resp = httptools.downloadpage(page_url, headers=headers)
|
||||
resp = httptools.downloadpage(page_url.replace('wstream.video', '116.202.226.34'), headers=headers, verify=False)
|
||||
|
||||
global data, real_url
|
||||
data = resp.data
|
||||
|
||||
page_url = resp.url.replace('wstream.video', '116.202.226.34')
|
||||
if '/streaming.php' in page_url in page_url:
|
||||
code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html', '')
|
||||
code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False, only_headers=True, verify=False).headers['location'].split('/')[-1].replace('.html', '')
|
||||
# logger.info('WCODE=' + code)
|
||||
page_url = 'https://116.202.226.34/video.php?file_code=' + code
|
||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True).data
|
||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, verify=False).data
|
||||
|
||||
real_url = page_url
|
||||
if "Not Found" in data or "File was deleted" in data:
|
||||
@@ -40,7 +42,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
global data,headers
|
||||
page_url = scrapertools.find_single_match(data, r"""<center><a href='(https?:\/\/wstream[^']+)'\s*title='bkg'""")
|
||||
if page_url:
|
||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, post={'g-recaptcha-response': captcha}).data
|
||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, post={'g-recaptcha-response': captcha}, verify=False).data
|
||||
|
||||
def getSources(data):
|
||||
possibileSources = scrapertools.find_multiple_matches(data, r'sources:\s*(\[[^\]]+\])')
|
||||
@@ -57,6 +59,8 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
video_urls.append(['%s [%s]' % (key['type'].replace('video/', ''), key['label']),
|
||||
key['src'].replace('https', 'http') + '|' + _headers])
|
||||
else:
|
||||
if not 'src' in key and 'file' in key: key['src'] = key['file']
|
||||
if key['file'].split('.')[-1] == 'mpd': pass
|
||||
video_urls.append([key['src'].split('.')[-1], key['src'].replace('https', 'http') + '|' + _headers])
|
||||
except:
|
||||
pass
|
||||
@@ -74,7 +78,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
post = {param[0]: param[1] for param in possibleParam if param[0]}
|
||||
if captcha: post['g-recaptcha-response'] = captcha
|
||||
if post:
|
||||
data = httptools.downloadpage(real_url, headers=headers, post=post, follow_redirects=True).data
|
||||
data = httptools.downloadpage(real_url, headers=headers, post=post, follow_redirects=True, verify=False).data
|
||||
elif captcha:
|
||||
int_bckup_method()
|
||||
elif captcha:
|
||||
|
||||
Reference in New Issue
Block a user