Fix animeunity

This commit is contained in:
marco
2023-11-25 19:18:51 +01:00
parent 7ab21e01c5
commit e4edd5872d
2 changed files with 38 additions and 29 deletions

View File

@@ -153,6 +153,8 @@ def peliculas(item):
payload = json.dumps(item.args) payload = json.dumps(item.args)
records = httptools.downloadpage(host + '/archivio/get-animes', headers=headers, post=payload).json['records'] records = httptools.downloadpage(host + '/archivio/get-animes', headers=headers, post=payload).json['records']
# support.dbg()
for it in records: for it in records:
if not it['title']: if not it['title']:
it['title'] = '' it['title'] = ''
@@ -170,7 +172,7 @@ def peliculas(item):
itm.type = it['type'] itm.type = it['type']
itm.thumbnail = it['imageurl'] itm.thumbnail = it['imageurl']
itm.plot = it['plot'] itm.plot = it['plot']
itm.url = item.url itm.url = '{}/anime/{}-{}'.format(item.url, it.get('id'), it.get('slug'))
if it['episodes_count'] == 1: if it['episodes_count'] == 1:
itm.contentType = 'movie' itm.contentType = 'movie'
@@ -199,7 +201,6 @@ def episodios(item):
support.info() support.info()
itemlist = [] itemlist = []
title = 'Parte ' if item.type.lower() == 'movie' else 'Episodio ' title = 'Parte ' if item.type.lower() == 'movie' else 'Episodio '
for it in item.episodes: for it in item.episodes:
itemlist.append( itemlist.append(
item.clone(title=support.typo(title + it['number'], 'bold'), item.clone(title=support.typo(title + it['number'], 'bold'),
@@ -224,28 +225,33 @@ def episodios(item):
def findvideos(item): def findvideos(item):
if item.scws_id: # if item.scws_id:
from time import time # from time import time
from base64 import b64encode # from base64 import b64encode
from hashlib import md5 # from hashlib import md5
#
# client_ip = support.httptools.downloadpage('http://ip-api.com/json/').json.get('query')
#
# expires = int(time() + 172800)
# token = b64encode(md5('{}{} Yc8U6r8KjAKAepEA'.format(expires, client_ip).encode('utf-8')).digest()).decode('utf-8').replace('=', '').replace('+', '-').replace('/', '_')
#
# url = 'https://scws.work/master/{}?token={}&expires={}&n=1'.format(item.scws_id, token, expires)
#
# itemlist = [item.clone(title=support.config.get_localized_string(30137), url=url, server='directo', action='play')]
client_ip = support.httptools.downloadpage('http://ip-api.com/json/').json.get('query') from core import channeltools
itemlist = [item.clone(title=channeltools.get_channel_parameters(item.channel)['title'],
url=item.url, server='streamingcommunityws')]
return support.server(item, itemlist=itemlist, referer=False)
expires = int(time() + 172800) # return support.server(item, itemlist=itemlist)
token = b64encode(md5('{}{} Yc8U6r8KjAKAepEA'.format(expires, client_ip).encode('utf-8')).digest()).decode('utf-8').replace('=', '').replace('+', '-').replace('/', '_')
url = 'https://scws.work/master/{}?token={}&expires={}&n=1'.format(item.scws_id, token, expires) #
# def play(item):
itemlist = [item.clone(title=support.config.get_localized_string(30137), url=url, server='directo', action='play')] # urls = list()
# info = support.match(item.url, patron=r'(http.*?rendition=(\d+)[^\s]+)').matches
return support.server(item, itemlist=itemlist) #
# if info:
# for url, res in info:
def play(item): # urls.append(['hls [{}]'.format(res), url])
urls = list() # return urls
info = support.match(item.url, patron=r'(http.*?rendition=(\d+)[^\s]+)').matches
if info:
for url, res in info:
urls.append(['hls [{}]'.format(res), url])
return urls

View File

@@ -6,17 +6,20 @@ import xbmc
from core import httptools, support, filetools from core import httptools, support, filetools
from platformcode import logger, config from platformcode import logger, config
from concurrent import futures from concurrent import futures
from urllib.parse import urlparse
vttsupport = False if int(xbmc.getInfoLabel('System.BuildVersion').split('.')[0]) < 20 else True vttsupport = False if int(xbmc.getInfoLabel('System.BuildVersion').split('.')[0]) < 20 else True
def test_video_exists(page_url): def test_video_exists(page_url):
global iframe global server_url
global iframeParams global iframeParams
iframe = support.scrapertools.decodeHtmlentities(support.match(page_url, patron='<iframe [^>]+src="([^"]+)').match) server_url = support.scrapertools.decodeHtmlentities(support.match(page_url, patron='<iframe [^>]+src="([^"]+)').match)
iframeParams = support.match(iframe, patron=['window.masterPlaylist\s=\s{\s.*params:\s((?s:.*})),','},\s*url:\s.(http.*).,']).matches if not server_url:
server_url = support.match(page_url, patron='embed_url="([^"]+)').match
iframeParams = support.match(server_url, patron=['window.masterPlaylist\s=\s{\s.*params:\s(.*?}),',
'''},\s*url:\s.(http[^"']+).,''']).matches
logger.info(iframeParams)
if not iframeParams or len(iframeParams) < 2: if not iframeParams or len(iframeParams) < 2:
return 'StreamingCommunity', 'Prossimamente' return 'StreamingCommunity', 'Prossimamente'
@@ -30,7 +33,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
local_subs = list() local_subs = list()
video_urls = list() video_urls = list()
scws_id = urlparse(iframe).path.split('/')[-1] # scws_id = urlparse(server_url).path.split('/')[-1]
masterPlaylistParams = ast.literal_eval(iframeParams[0]) masterPlaylistParams = ast.literal_eval(iframeParams[0])
url = iframeParams[1] + '?{}&n=1'.format(urllib.parse.urlencode(masterPlaylistParams)) url = iframeParams[1] + '?{}&n=1'.format(urllib.parse.urlencode(masterPlaylistParams))