diff --git a/channels.json b/channels.json index e3c08a01..67af7961 100644 --- a/channels.json +++ b/channels.json @@ -50,5 +50,6 @@ "streamtime": "https://t.me/s/StreamTime", "tantifilm": "https://www.tantifilm.eu", "toonitalia": "https://toonitalia.org", - "vedohd": "https://vedohd.icu/" + "vedohd": "https://vedohd.icu/", + "vvvvid": "https://www.vvvvid.it" } diff --git a/channels/vvvvid.json b/channels/vvvvid.json new file mode 100644 index 00000000..416a6516 --- /dev/null +++ b/channels/vvvvid.json @@ -0,0 +1,11 @@ +{ + "id": "vvvvid", + "name": "VVVVID", + "active": true, + "adult": false, + "language": ["ita","vos"], + "thumbnail": "", + "bannermenu": "", + "categories": ["anime","tvshow","movie","vos"], + "settings": [] +} \ No newline at end of file diff --git a/channels/vvvvid.py b/channels/vvvvid.py new file mode 100644 index 00000000..b9290b91 --- /dev/null +++ b/channels/vvvvid.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Canale per vvvvid +# ---------------------------------------------------------- +import requests, re +from core import support, jsontools +from core.item import Item + +__channel__ = "vvvvid" +host = support.config.get_channel_url(__channel__) + +# Creating persistent session +current_session = requests.Session() +headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0'} + +# Getting conn_id token from vvvvid and creating payload +login_page = host + '/user/login' +conn_id = current_session.get(login_page, headers=headers).json()['data']['conn_id'] +payload = {'conn_id': conn_id} + +main_host = host +host += '/vvvvid/ondemand/' +list_servers = ['vvvvid'] +list_quality = ['default'] + +@support.menu +def mainlist(item): + anime = ['/anime/channels'] + return locals() + +def peliculas(item): + itemlist = [] + + json_file = current_session.get(item.url, headers=headers, params=payload).json() + support.log(json_file['data']) + if 'channels' in item.url: + for key in json_file['data']: + itemlist.append( + Item( + channel = item.channel, + title = key['name'], + url = host + 'anime/channel/' + str(key['id']) + '/last/', + action = 'peliculas' + ) + ) + else: + for key in json_file['data']: + itemlist.append( + Item( + channel = item.channel, + title = key['title'], + fulltitle= key['title'], + show= key['title'], + url= host + str(key['show_id']) + '/seasons/', + action= 'episodios', + thumbnail= key['thumbnail'] + ) + ) + + return itemlist + +def episodios(item): + itemlist = [] + json_file = current_session.get(item.url, headers=headers, params=payload).json() + show_id = str(json_file['data'][0]['show_id']) + + for key in json_file['data'][0]['episodes']: + support.log('KEY= ',key) + itemlist.append( + Item( + channel = item.channel, + title = 'Episodio ' + str(key['number']) + ' - ' + key['title'], + fulltitle= item.fulltitle, + show= item.show, + url= host + show_id + '/season/' + str(key['season_id']) + '/', + action= 'findvideos', + video_id= key['video_id'] + )) + return itemlist + +def findvideos(item): + from lib import vvvvid_decoder + json_file = current_session.get(item.url, headers=headers, params=payload).json() + support.log(json_file['data']) + for episode in json_file['data']: + if episode['video_id'] == item.video_id: + url = vvvvid_decoder.dec_ei(episode['embed_info']) + item.url = url.replace('manifest.f4m','master.m3u8').replace('http://','https://').replace('/z/','/i/') + return support.server(item) diff --git a/core/videolibrarytools.py b/core/videolibrarytools.py index ee77b355..0604a45d 100644 --- a/core/videolibrarytools.py +++ b/core/videolibrarytools.py @@ -224,6 +224,7 @@ def save_movie(item): return 0, 0, -1 def filter_list(episodelist, action=None, path=None): + channel_prefs = {} lang_sel = quality_sel = show_title = channel ='' if action: tvshow_path = filetools.join(path, "tvshow.nfo")