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