diff --git a/channels.json b/channels.json index 0db9d177..7b08a023 100644 --- a/channels.json +++ b/channels.json @@ -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" diff --git a/channels/cineblog01.py b/channels/cineblog01.py index 472c1404..0af05ee8 100644 --- a/channels/cineblog01.py +++ b/channels/cineblog01.py @@ -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">.*?(?P.*?)(?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' diff --git a/channels/filmpertutti.py b/channels/filmpertutti.py index 7c43f21d..e03fba9e 100644 --- a/channels/filmpertutti.py +++ b/channels/filmpertutti.py @@ -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)' diff --git a/core/httptools.py b/core/httptools.py index 0e94d526..dd742879 100755 --- a/core/httptools.py +++ b/core/httptools.py @@ -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) diff --git a/core/support.py b/core/support.py index f7394a37..c9ed8b4c 100755 --- a/core/support.py +++ b/core/support.py @@ -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=[]): diff --git a/servers/wstream.json b/servers/wstream.json index 07e60564..da667068 100644 --- a/servers/wstream.json +++ b/servers/wstream.json @@ -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": [] diff --git a/servers/wstream.py b/servers/wstream.py index b1ceb3a8..e3c599d0 100644 --- a/servers/wstream.py +++ b/servers/wstream.py @@ -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: