Merge remote-tracking branch 'origin/master'

This commit is contained in:
mac12m99
2019-09-26 19:21:22 +02:00
9 changed files with 209 additions and 147 deletions
+3 -1
View File
@@ -124,7 +124,9 @@ def peliculas(item):
@support.scrape @support.scrape
def episodios(item): def episodios(item):
anime=True anime=True
patronBlock= r'<div class="server\s*active\s*"(?P<block>.*?)</ul>' data = support.match(item, headers=headers)[1]
if 'VVVVID' in data: patronBlock= r'<div class="server\s*active\s*"(?P<block>.*?)</ul>'
else: patronblock= 'server active(?P<block>.*?)server hidden'
patron = r'<li><a [^=]+="[^"]+"[^=]+="[^"]+"[^=]+="[^"]+"[^=]+="[^"]+"[^=]+="[^"]+" href="(?P<url>[^"]+)"[^>]+>(?P<episode>[^<]+)<' patron = r'<li><a [^=]+="[^"]+"[^=]+="[^"]+"[^=]+="[^"]+"[^=]+="[^"]+"[^=]+="[^"]+" href="(?P<url>[^"]+)"[^>]+>(?P<episode>[^<]+)<'
def itemHook(item): def itemHook(item):
item.title += support.typo(item.fulltitle,'-- bold') item.title += support.typo(item.fulltitle,'-- bold')
+121 -59
View File
@@ -5,6 +5,7 @@
import requests, re import requests, re
from core import support, tmdb from core import support, tmdb
from core.item import Item from core.item import Item
from specials import autorenumber
__channel__ = "vvvvid" __channel__ = "vvvvid"
host = support.config.get_channel_url(__channel__) host = support.config.get_channel_url(__channel__)
@@ -19,70 +20,94 @@ conn_id = current_session.get(login_page, headers=headers).json()['data']['conn_
payload = {'conn_id': conn_id} payload = {'conn_id': conn_id}
main_host = host main_host = host
host += '/vvvvid/ondemand' host += '/vvvvid/ondemand/'
list_servers = ['vvvvid'] list_servers = ['vvvvid']
list_quality = ['default'] list_quality = ['default']
@support.menu @support.menu
def mainlist(item): def mainlist(item):
anime = ['/anime/channels/', anime = ['anime/',
('In Evidenza',['/anime/channel/10005/last/', 'peliculas', 'sort']), ('In Evidenza',['anime/', 'peliculas', 'channel/10005/last/']),
('Popolari',['/anime/channel/10003/last/', 'peliculas', 'sort']), ('Popolari',['anime/', 'peliculas', 'channel/10002/last/']),
('Nuove Uscite',['/anime/channel/10007/last/', 'peliculas', 'sort']), ('Nuove Uscite',['anime/', 'peliculas', 'channel/10007/last/']),
('Generi',['/anime/channels/', 'peliculas', '/anime/channel/10004/last/?category=']), ('Generi',['anime/', 'peliculas', 'channel/10004/last/?category=']),
('A-Z',['/anime/channels/', 'peliculas', '/anime/channel/10003/last/?filter=']), ('A-Z',['anime/', 'peliculas', 'channel/10003/last/?filter='])
('Extra',['/anime/channels/', 'peliculas', '/anime/channel/10010/last/?extras=']) ]
film = ['film/',
('In Evidenza',['film/', 'peliculas', 'channel/10005/last/']),
('Popolari',['film/', 'peliculas', 'channel/10002/last/']),
('Nuove Uscite',['film/', 'peliculas', 'channel/10007/last/']),
('Generi',['film/', 'peliculas', 'channel/10004/last/?category=']),
('A-Z',['film/', 'peliculas', 'channel/10003/last/?filter=']),
]
tvshow = ['series/',
('In Evidenza',['series/', 'peliculas', 'channel/10005/last/']),
('Popolari',['series/', 'peliculas', 'channel/10002/last/']),
('Nuove Uscite',['series/', 'peliculas', 'channel/10007/last/']),
('Generi',['series/', 'peliculas', 'channel/10004/last/?category=']),
('A-Z',['series/', 'peliculas', 'channel/10003/last/?filter='])
]
show = [('Show bold',['show/', 'peliculas', 'channel/10005/last/', 'tvshow']),
('In Evidenza submenu',['show/', 'peliculas', 'channel/10005/last/', 'tvshow']),
('Popolari submenu',['show/', 'peliculas', 'channel/10002/last/', 'tvshow']),
('Nuove Uscite submenu',['show/', 'peliculas', 'channel/10007/last/', 'tvshow']),
('Generi submenu',['show/', 'peliculas', 'channel/10004/last/?category=', 'tvshow']),
('A-Z submenu',['show/', 'peliculas', 'channel/10003/last/?filter=', 'tvshow']),
('Cerca Show... bold submenu', ['show/', 'search', '', 'tvshow'])
]
kids = [('Kids bold',['kids/', 'peliculas', 'channel/10005/last/', 'tvshow']),
('In Evidenza submenu',['kids/', 'peliculas', 'channel/10005/last/', 'tvshow']),
('Popolari submenu',['kids/', 'peliculas', 'channel/10002/last/', 'tvshow']),
('Nuove Uscite submenu',['kids/', 'peliculas', 'channel/10007/last/', 'tvshow']),
('Generi submenu',['kids/', 'peliculas', 'channel/10004/last/?category=', 'tvshow']),
('A-Z submenu',['kids/', 'peliculas', 'channel/10003/last/?filter=', 'tvshow']),
('Cerca Show... bold submenu', ['kids/', 'search', '', 'tvshow'])
] ]
return locals() return locals()
def search(item, text):
support.log(text)
itemlist = []
if 'film' in item.url: item.contentType = 'movie'
else: item.contentType = 'tvshow'
item.search = text
itemlist = peliculas(item)
return itemlist
def peliculas(item): def peliculas(item):
itemlist = [] itemlist = []
blacklist = ['Generi','A - Z', 'Extra'] if not item.args:
json_file = current_session.get(item.url, headers=headers, params=payload).json() json_file = current_session.get(item.url + 'channels', headers=headers, params=payload).json()
support.log(json_file) names = [i['filter'] for i in json_file['data'] if 'filter' in i][0]
if 'data' in json_file: for name in names:
if not item.args: url = item.url + 'channel/10003/last/?filter=' + str(name)
names = [i['filter'] for i in json_file['data'] if 'filter' in i][0] json_file = current_session.get(url, headers=headers, params=payload).json()
for name in names: if 'data' in json_file:
support.log(name)
url = item.url + '10003/last/?filter=' + str(name)
json_file = current_session.get(url, headers=headers, params=payload).json() json_file = current_session.get(url, headers=headers, params=payload).json()
if 'data' in json_file: make_itemlist(itemlist, item, json_file)
json_file = current_session.get(url, headers=headers, params=payload).json()
for key in json_file['data']: elif ('=' not in item.args) and ('=' not in item.url):
support.log(key['thumbnail']) json_file = current_session.get(item.url + item.args, headers=headers, params=payload).json()
itemlist.append( make_itemlist(itemlist, item, json_file)
Item(
channel = item.channel, elif '=' in item.args:
title = key['title'], json_file = current_session.get(item.url + 'channels', headers=headers, params=payload).json()
fulltitle= key['title'], Filter = support.match(item.args,r'\?([^=]+)=')[0][0]
show= key['title'], keys = [i[Filter] for i in json_file['data'] if Filter in i][0]
url= host + '/' + str(key['show_id']) + '/seasons/', for key in keys:
action= 'episodios' if key not in ['1','2']:
))
elif item.args == 'sort':
for key in json_file['data']:
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']
))
elif 'last' in item.args:
Filter = support.match(item.args,r'\?([^=]+)=')[0][0]
keys = [i[Filter] for i in json_file['data'] if Filter in i][0]
for key in keys:
itemlist.append( itemlist.append(
Item(channel = item.channel, Item(channel = item.channel,
title = key if Filter == 'filter' else key['name'], title = support.typo(key.upper() if Filter == 'filter' else key['name'], 'bold'),
url = host + item.args + (key if Filter == 'filter' else str(key['id'])), url = item.url + item.args + (key if Filter == 'filter' else str(key['id'])),
action = 'peliculas', action = 'peliculas',
args = 'sort')) args = 'filters',
contentType = item.contentType))
else :
json_file = current_session.get(item.url, headers=headers, params=payload).json()
make_itemlist(itemlist, item, json_file)
if item.contentType != 'movie': autorenumber.renumber(itemlist)
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
return itemlist return itemlist
@@ -90,30 +115,67 @@ def episodios(item):
itemlist = [] itemlist = []
json_file = current_session.get(item.url, headers=headers, params=payload).json() json_file = current_session.get(item.url, headers=headers, params=payload).json()
show_id = str(json_file['data'][0]['show_id']) show_id = str(json_file['data'][0]['show_id'])
for key in json_file['data'][0]['episodes']: for key in json_file['data'][0]['episodes']:
support.log(key)
support.log('KEY= ',key)
itemlist.append( itemlist.append(
Item( Item(
channel = item.channel, channel = item.channel,
title = 'Episodio ' + str(key['number']) + ' - ' + key['title'], title = 'Episodio ' + str(key['number']) + ' - ' + key['title'],
fulltitle= item.fulltitle, fulltitle= item.fulltitle,
show= item.show, show= item.show,
url= host + '/' + show_id + '/season/' + str(key['season_id']) + '/', url= host + show_id + '/season/' + str(key['season_id']) + '/',
action= 'findvideos', action= 'findvideos',
video_id= key['video_id'] video_id= key['video_id'],
contentType = item.contentType
)) ))
autorenumber.renumber(itemlist, item, 'bold')
support.videolibrary(itemlist,item)
return itemlist return itemlist
def findvideos(item): def findvideos(item):
from lib import vvvvid_decoder from lib import vvvvid_decoder
itemlist = [] itemlist = []
if item.contentType == 'movie':
json_file = current_session.get(item.url, headers=headers, params=payload).json()
item.url = host + str(json_file['data'][0]['show_id']) + '/season/' + str(json_file['data'][0]['episodes'][0]['season_id']) + '/'
item.video_id = json_file['data'][0]['episodes'][0]['video_id']
json_file = current_session.get(item.url, headers=headers, params=payload).json() json_file = current_session.get(item.url, headers=headers, params=payload).json()
support.log(json_file['data'])
for episode in json_file['data']: for episode in json_file['data']:
if episode['video_id'] == item.video_id: if episode['video_id'] == item.video_id:
url = vvvvid_decoder.dec_ei(episode['embed_info']) url = vvvvid_decoder.dec_ei(episode['embed_info'] or episode['embed_info'])
if 'youtube' in url: item.url = url
item.url = url.replace('manifest.f4m','master.m3u8').replace('http://','https://').replace('/z/','/i/') item.url = url.replace('manifest.f4m','master.m3u8').replace('http://','https://').replace('/z/','/i/')
if 'https' not in item.url: item.url = url='https://or01.top-ix.org/videomg/_definst_/mp4:' + item.url + '/playlist.m3u' if 'https' not in item.url:
return support.server(item) url = support.match(item, url='https://or01.top-ix.org/videomg/_definst_/mp4:' + item.url + '/playlist.m3u')[1]
url = url.split()[-1]
itemlist.append(
Item(action= 'play',
title='direct',
url= 'https://or01.top-ix.org/videomg/_definst_/mp4:' + item.url + '/' + url,
server= 'directo')
)
return support.server(item, itemlist=itemlist)
def make_itemlist(itemlist, item, data):
search = item.search if item.search else ''
infoLabels = {}
for key in data['data']:
if search.lower() in key['title'].lower():
infoLabels['year'] = key['date_published']
infoLabels['title'] = infoLabels['tvshowtitle'] = key['title']
support.log(infoLabels)
itemlist.append(
Item(
channel = item.channel,
title = support.typo(key['title'], 'bold'),
fulltitle= key['title'],
show= key['title'],
url= host + str(key['show_id']) + '/seasons/',
action= 'findvideos' if item.contentType == 'movie' else 'episodios',
contentType = item.contentType,
contentSerieName= key['title'] if item.contentType != 'movie' else '',
contentTitle= key['title'] if item.contentType == 'movie' else '',
thumbnail= key['thumbnail'],
infoLabels=infoLabels
))
return itemlist
+14 -31
View File
@@ -157,34 +157,14 @@ def scrapeLang(scraped, lang, longtitle):
# e credo sia utile per filtertools # e credo sia utile per filtertools
language = '' language = ''
## if scraped['lang']: if scraped['lang']:
## if 'ita' in scraped['lang'].lower():
## language = 'ITA'
## if 'sub' in scraped['lang'].lower():
## language = 'Sub-' + language
## # se scraped['lang'] è None
## # nei siti dove la lingua è opzionale per il sub-ita e manca l'ita
## else:
## lang = 'ITA'
## if not language: language = lang
## if language: longtitle += typo(language, '_ [] color kod')
if not scraped['lang'] and not lang:
#pass
language = 'ITA' # setta contentLanguage
elif not scraped['lang'] and lang:
# in caso di deflang attiva
language = lang
if language != 'ITA':
longtitle += typo(language, '_ [] color kod')
else:
if 'ita' in scraped['lang'].lower(): if 'ita' in scraped['lang'].lower():
language = 'ITA' language = 'ITA'
if 'sub' in scraped['lang'].lower(): if 'sub' in scraped['lang'].lower():
language = 'Sub-' + language language = 'Sub-' + language
if language != '': if not language: language = lang
longtitle += typo(language, '_ [] color kod') if language: longtitle += typo(language, '_ [] color kod')
return language, longtitle return language, longtitle
@@ -221,9 +201,9 @@ def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, t
scraped[kk] = val scraped[kk] = val
if scraped['season'] != None: if scraped['season'] != None:
stagione = scraped['season'] season = scraped['season']
if stagione: if stagione:
episode = stagione +'x'+ scraped['episode'] episode = season +'x'+ scraped['episode']
else: else:
episode = re.sub(r'\s-\s|-|x|&#8211|&#215;', 'x', scraped['episode']) if scraped['episode'] else '' episode = re.sub(r'\s-\s|-|x|&#8211|&#215;', 'x', scraped['episode']) if scraped['episode'] else ''
@@ -236,13 +216,14 @@ def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, t
# make formatted Title [longtitle] # make formatted Title [longtitle]
s = ' - ' s = ' - '
title = episode + (s if episode and title else '') + title title = episode + (s if episode and title else '') + title
longtitle = title + (s if title and title2 else '') + title2 longtitle = title + (s if title and title2 else '') + title2
longtitle = typo(longtitle, 'bold') longtitle = typo(longtitle, 'bold')
longtitle += (typo(Type,'_ () bold') if Type else '') + (typo(quality, '_ [] color kod') if quality else '') longtitle += (typo(Type,'_ () bold') if Type else '') + (typo(quality, '_ [] color kod') if quality else '')
lang1, longtitle = scrapeLang(scraped, lang, longtitle)
lang, longtitle = scrapeLang(scraped, lang, longtitle)
if lang == '': lang = 'ITA'
# if title is set, probably this is a list of episodes or video sources # if title is set, probably this is a list of episodes or video sources
# necessaria l'aggiunta di == scraped["title"] altrimenti non prende i gruppi dopo le categorie # necessaria l'aggiunta di == scraped["title"] altrimenti non prende i gruppi dopo le categorie
if item.infoLabels["title"] == scraped["title"]: if item.infoLabels["title"] == scraped["title"]:
@@ -296,8 +277,8 @@ def scrapeBlock(item, args, block, patron, headers, action, pagination, debug, t
args=item.args, args=item.args,
contentSerieName= title if item.contentType or CT != 'movie' and function != 'episodios' else item.fulltitle if function == 'episodios' else '', contentSerieName= title if item.contentType or CT != 'movie' and function != 'episodios' else item.fulltitle if function == 'episodios' else '',
contentTitle= title if item.contentType or CT == 'movie' else '', contentTitle= title if item.contentType or CT == 'movie' else '',
contentLanguage = lang, contentLanguage = lang1,
ep=episode if episode else '' contentEpisodeNumber=episode if episode else ''
) )
for lg in list(set(listGroups).difference(known_keys)): for lg in list(set(listGroups).difference(known_keys)):
@@ -384,8 +365,10 @@ def scrape(func):
blockItemlist, blockMatches = scrapeBlock(item, args, bl['block'], patron, headers, action, pagination, debug, blockItemlist, blockMatches = scrapeBlock(item, args, bl['block'], patron, headers, action, pagination, debug,
typeContentDict, typeActionDict, blacklist, search, pag, function, lang) typeContentDict, typeActionDict, blacklist, search, pag, function, lang)
for it in blockItemlist: for it in blockItemlist:
log('IT LANG ----> ', it)
if 'lang' in bl: if 'lang' in bl:
it.contentLanguage, it.title = scrapeLang(bl, it.contentLanguage, it.title) it.contentLanguage, it.title = scrapeLang(bl, it.contentLanguage, it.title)
log('IT LANG ----> ', it.contentLanguage)
if 'quality' in bl and bl['quality']: if 'quality' in bl and bl['quality']:
it.quality = bl['quality'].strip() it.quality = bl['quality'].strip()
it.title = it.title + typo(bl['quality'].strip(), '_ [] color kod') it.title = it.title + typo(bl['quality'].strip(), '_ [] color kod')
+6 -1
View File
@@ -3,6 +3,11 @@
"find_videos": { "find_videos": {
"ignore_urls": [], "ignore_urls": [],
"patterns": [ "patterns": [
{
"pattern": "((?:http://|https://).*?m3u8)",
"url": "\\1"
},
{ {
"pattern": "(http://[a-zA-Z0-9]+\\.mysites\\.com\\/get_file\\/.*?\\.mp4)", "pattern": "(http://[a-zA-Z0-9]+\\.mysites\\.com\\/get_file\\/.*?\\.mp4)",
"url": "\\1" "url": "\\1"
@@ -35,7 +40,7 @@
}, },
"free": true, "free": true,
"id": "directo", "id": "directo",
"name": "directo", "name": "direct",
"settings": [ "settings": [
{ {
"default": false, "default": false,
+3 -2
View File
@@ -1,12 +1,13 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from platformcode import logger from platformcode import logger, config
# Returns an array of possible video url's from the page_url # Returns an array of possible video url's from the page_url
def get_video_url(page_url, premium=False, user="", password="", video_password=""): def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
logger.info('PAGE URL= ' + page_url)
video_urls = [["%s [directo]" % page_url[-4:], page_url]] video_urls = [["%s %s" % (page_url[-4:], config.get_localized_string(30137)), page_url]]
return video_urls return video_urls
-4
View File
@@ -3,10 +3,6 @@
"find_videos": { "find_videos": {
"ignore_urls": [], "ignore_urls": [],
"patterns": [ "patterns": [
{
"pattern": "(https://vvvvid-vh.akamaihd.net/i/.*?m3u8)",
"url": "\\1"
},
{ {
"pattern": "https://www.vvvvid.it/.*?show/([a-z0-9/-]+)", "pattern": "https://www.vvvvid.it/.*?show/([a-z0-9/-]+)",
"url": "https://www.vvvvid.it/show/\\1" "url": "https://www.vvvvid.it/show/\\1"
+21 -27
View File
@@ -27,37 +27,31 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""): def get_video_url(page_url, premium=False, user="", password="", video_password=""):
video_urls = [] video_urls = []
# if Direct
if 'm3u8' in page_url:
filename = '[B]' + re.findall('/([a-zA-Z0-9_]+.mp4)', page_url)[0] + '[/B]'
video_urls.append([filename, str(page_url)])
# if Page
else:
page_url = page_url.replace("/show/","/#!show/")
# Getting info from given URL page_url = page_url.replace("/show/","/#!show/")
show_id = re.findall("#!show/([0-9]+)/", page_url)[0]
name = re.findall(show_id + "/(.+?)/", page_url)[0]
season_id = re.findall(name + "/(.+?)/", page_url)[0]
video_id = re.findall(season_id + "/(.+?)/", page_url)[0]
# Getting info from Site
json_url = "https://www.vvvvid.it/vvvvid/ondemand/" + show_id + '/season/' +season_id + '/'
# logger.info('URL= ' + json_url)
json_file = current_session.get(json_url, headers=headers, params=payload).json()
# logger.info(json_file['data'])
# Search for the correct episode # Getting info from given URL
for episode in json_file['data']: show_id = re.findall("#!show/([0-9]+)/", page_url)[0]
# import web_pdb; web_pdb.set_trace() name = re.findall(show_id + "/(.+?)/", page_url)[0]
if episode['video_id'] == int(video_id): season_id = re.findall(name + "/(.+?)/", page_url)[0]
ep_title = '[B]' + episode['title'] + '[/B]' video_id = re.findall(season_id + "/(.+?)/", page_url)[0]
embed_info = vvvvid_decoder.dec_ei(episode['embed_info'])
embed_info = embed_info.replace('manifest.f4m','master.m3u8').replace('http://','https://').replace('/z/','/i/')
# Getting info from Site
json_url = "https://www.vvvvid.it/vvvvid/ondemand/" + show_id + '/season/' +season_id + '/'
# logger.info('URL= ' + json_url)
json_file = current_session.get(json_url, headers=headers, params=payload).json()
logger.info(json_file['data'])
# Search for the correct episode
for episode in json_file['data']:
# import web_pdb; web_pdb.set_trace() # import web_pdb; web_pdb.set_trace()
if episode['video_id'] == int(video_id):
ep_title = '[B]' + episode['title'] + '[/B]'
embed_info = vvvvid_decoder.dec_ei(episode['embed_info'])
embed_info = embed_info.replace('manifest.f4m','master.m3u8').replace('http://','https://').replace('/z/','/i/')
video_urls.append([ep_title, str(embed_info)]) # import web_pdb; web_pdb.set_trace()
video_urls.append([ep_title, str(embed_info)])
return video_urls return video_urls
+2
View File
@@ -172,6 +172,8 @@ class Kdicc():
# per siti irraggiungibili senza DNS corretti # per siti irraggiungibili senza DNS corretti
#[Errno 111] Connection refused #[Errno 111] Connection refused
rslt['code'] = 111 rslt['code'] = 111
except:
rslt['code'] = 'Connection error'
return rslt return rslt
def view_Advise(self, txt = '' ): def view_Advise(self, txt = '' ):
+39 -22
View File
@@ -12,7 +12,7 @@ from threading import Thread
from channelselector import get_thumb, auto_filter from channelselector import get_thumb, auto_filter
from core import channeltools from core import channeltools
from core import jsontools from core import jsontools
from core import scrapertools from core import scrapertools, support
from core.item import Item from core.item import Item
from platformcode import config, logger from platformcode import config, logger
from platformcode import platformtools from platformcode import platformtools
@@ -28,7 +28,7 @@ perfil = [['0xFF0B7B92', '0xFF89FDFB', '0xFFACD5D4'],
['0xFFA5DEE5', '0xFFE0F9B5', '0xFFFEFDCA'], ['0xFFA5DEE5', '0xFFE0F9B5', '0xFFFEFDCA'],
['0xFFF23557', '0xFF22B2DA', '0xFFF0D43A']] ['0xFFF23557', '0xFF22B2DA', '0xFFF0D43A']]
color1, color2, color3 = ["white", "white", "white"] color1, color2, color3 = ["red", "0xFF65B3DA", "yellow"]
# color1, color2, color3 = perfil[__perfil__] # color1, color2, color3 = perfil[__perfil__]
list_newest = [] list_newest = []
@@ -128,7 +128,7 @@ def get_channels_list():
## list_canales = {'peliculas': [], '4k': [], 'terror': [], 'infantiles': [], 'series': [], 'anime': [], ## list_canales = {'peliculas': [], '4k': [], 'terror': [], 'infantiles': [], 'series': [], 'anime': [],
## 'castellano': [], 'latino':[], 'italiano':[], 'torrent':[], 'documentales': []} ## 'castellano': [], 'latino':[], 'italiano':[], 'torrent':[], 'documentales': []}
list_canales = {'peliculas': [], 'series': [],'anime': [], 'italiano':[], 'documentales': []} list_canales = {'peliculas': [], 'series': [],'anime': [], 'italiano':[], 'documentales': []}
any_active = False any_active = False
# Rellenar listas de canales disponibles # Rellenar listas de canales disponibles
channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json')
@@ -392,16 +392,17 @@ def get_newest(channel_id, categoria):
def get_title(item): def get_title(item):
support.log("ITEM NEWEST ->", item)
if item.contentSerieName: # Si es una serie if item.contentSerieName: # Si es una serie
title = item.contentSerieName title = item.contentSerieName
#title = re.compile("\[.*?\]", re.DOTALL).sub("", item.contentSerieName)
if not scrapertools.get_season_and_episode(title) and item.contentEpisodeNumber: if not scrapertools.get_season_and_episode(title) and item.contentEpisodeNumber:
if not item.contentSeason: if not item.contentSeason:
item.contentSeason = '1' item.contentSeason = '1'
title = "%s - %sx%s" % (title, item.contentSeason, str(item.contentEpisodeNumber).zfill(2)) title = "%s - %sx%s" % (title, item.contentSeason, str(item.contentEpisodeNumber).zfill(2))
#4l3x87 - fix to add Sub-ITA in newest ## #4l3x87 - fix to add Sub-ITA in newest
if item.contentLanguage: ## if item.contentLanguage:
title+=" "+item.contentLanguage ## title+=" "+item.contentLanguage
elif item.contentTitle: # Si es una pelicula con el canal adaptado elif item.contentTitle: # Si es una pelicula con el canal adaptado
title = item.contentTitle title = item.contentTitle
@@ -415,6 +416,19 @@ def get_title(item):
title = re.compile("\[/*B\]", re.DOTALL).sub("", title) title = re.compile("\[/*B\]", re.DOTALL).sub("", title)
title = re.compile("\[/*I\]", re.DOTALL).sub("", title) title = re.compile("\[/*I\]", re.DOTALL).sub("", title)
title = '[B]'+title+'[/B]'
if item.contentLanguage == '':
pass
elif type(item.contentLanguage) == list and len(item.contentLanguage) ==1:
title += support.typo(item.contentLanguage[0], '_ [] color kod')
elif type(item.contentLanguage) != '':
title += support.typo(item.contentLanguage, '_ [] color kod')
elif type(item.contentLanguage) == list:
title += item.contentLanguage
if item.quality:
title += support.typo(item.quality, '_ [] color kod')
return title return title
@@ -423,8 +437,11 @@ def no_group(list_result_canal):
global channels_id_name global channels_id_name
for i in list_result_canal: for i in list_result_canal:
i.title = get_title(i) + " [" + channels_id_name[i.channel] + "]" support.log("NO GROUP i -> ", i)
i.text_color = color3 canale = channels_id_name[i.channel]
canale = '[COLOR yellow]'+canale+'[/COLOR]'
i.title = get_title(i) + " [" + canale + "]"
# i.text_color = color3
itemlist.append(i.clone()) itemlist.append(i.clone())
@@ -449,12 +466,12 @@ def group_by_channel(list_result_canal):
itemlist.append(Item(channel="news", title=channels_id_name[c] + ':', text_color=color1, text_bold=True)) itemlist.append(Item(channel="news", title=channels_id_name[c] + ':', text_color=color1, text_bold=True))
for i in dict_canales[c]: for i in dict_canales[c]:
if i.contentQuality: ## if i.contentQuality:
i.title += ' (%s)' % i.contentQuality ## i.title += ' (%s)' % i.contentQuality
if i.language: ## if i.contentLanguage:
i.title += ' [%s]' % i.language ## i.title += ' [%s]' % i.contentLanguage
i.title = ' %s' % i.title ## i.title = ' %s' % i.title
i.text_color = color3 #### i.text_color = color3
itemlist.append(i.clone()) itemlist.append(i.clone())
return itemlist return itemlist
@@ -505,7 +522,7 @@ def group_by_content(list_result_canal):
else: else:
new_item = v[0].clone(title=title) new_item = v[0].clone(title=title)
new_item.text_color = color3 ## new_item.text_color = color3
list_result.append(new_item) list_result.append(new_item)
return sorted(list_result, key=lambda it: it.title.lower()) return sorted(list_result, key=lambda it: it.title.lower())
@@ -521,11 +538,11 @@ def show_channels(item):
new_item = Item() new_item = Item()
new_item = new_item.fromurl(i) new_item = new_item.fromurl(i)
# logger.debug(new_item.tostring()) # logger.debug(new_item.tostring())
if new_item.contentQuality: ## if new_item.contentQuality:
new_item.title += ' (%s)' % new_item.contentQuality ## new_item.title += ' (%s)' % new_item.contentQuality
if new_item.language: ## if new_item.language:
new_item.title += ' [%s]' % new_item.language ## new_item.title += ' [%s]' % new_item.language
new_item.title += ' (%s)' % channels_id_name[new_item.channel] ## new_item.title += ' (%s)' % channels_id_name[new_item.channel]
new_item.text_color = color1 new_item.text_color = color1
itemlist.append(new_item.clone()) itemlist.append(new_item.clone())
@@ -583,7 +600,7 @@ def setting_channel(item):
channel_language = config.get_setting("channel_language", default="auto") channel_language = config.get_setting("channel_language", default="auto")
if channel_language == 'auto': if channel_language == 'auto':
channel_language = auto_filter() channel_language = auto_filter()
list_controls = [] list_controls = []
for infile in sorted(glob.glob(channels_path)): for infile in sorted(glob.glob(channels_path)):