From 1d42a2ec02f43b991fe665b7af47978743cf3326 Mon Sep 17 00:00:00 2001 From: Alhaziel01 Date: Fri, 19 Mar 2021 17:39:16 +0100 Subject: [PATCH] Aggiunto AccuRadio --- channels/accuradio.json | 11 ++++++ channels/accuradio.py | 85 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 channels/accuradio.json create mode 100644 channels/accuradio.py diff --git a/channels/accuradio.json b/channels/accuradio.json new file mode 100644 index 00000000..7ca0c9d8 --- /dev/null +++ b/channels/accuradio.json @@ -0,0 +1,11 @@ +{ + "id": "accuradio", + "name": "AccuRadio", + "active": true, + "language": ["*"], + "thumbnail": "accuradio.png", + "banner": "accuradio.png", + "categories": ["music"], + "not_active":["include_in_global_search"], + "settings" :[] +} diff --git a/channels/accuradio.py b/channels/accuradio.py new file mode 100644 index 00000000..8c5fe34e --- /dev/null +++ b/channels/accuradio.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Canale per accuradio +# ------------------------------------------------------------ + +import random +from core import httptools,support +from platformcode import logger + +host = 'https://www.accuradio.com' +headers = [['Referer', host]] + +@support.scrape +def mainlist(item): + if item.data: data = item.data + else: item.url = host + action = 'peliculas' + patronBlock = r'Genres(?P.*?)\s*]+>){2}(?P[^<]+)' + + def itemHook(item): + item.url = host + item.url + item.thumbnail = support.thumb('music') + return item + + def itemlistHook(itemlist): + itemlist.append( + item.clone(title=support.typo('Cerca...', 'bold color kod'), action='search', thumbnail=support.thumb('search'))) + support.channel_config(item, itemlist) + return itemlist + return locals() + + +@support.scrape +def peliculas(item): + action = 'playradio' + patron = r'data-id="(?P<id>[^"]+)"\s*data-oldid="(?P<oldid>[^"]+)".*?data-name="(?P<title>[^"]+)(?:[^>]+>){5}<img class="[^"]+"\s*src="(?P<thumb>[^"]+)(?:[^>]+>){6}\s*(?P<plot>[^<]+)' + return locals() + + +def playradio(item): + import xbmcgui, xbmc + items = httptools.downloadpage('{}/playlist/json/{}/?ando={}&rand={}'.format(host, item.id, item.oldid, random.random())).json + playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC) + playlist.clear() + for i in items: + if 'id' in i: + url = i['primary'] + i['fn'] + '.m4a' + title = i['title'] + artist = i['track_artist'] + album = i['album']['title'] + year = i['album']['year'] + thumb = 'https://www.accuradio.com/static/images/covers300' + i['album']['cdcover'] + duration = i['duration'] + info = {'duration':duration, + 'album':album, + 'artist':artist, + 'title':title, + 'year':year, + 'mediatype':'music'} + item = xbmcgui.ListItem(title, path=url) + item.setArt({'thumb':thumb, 'poster':thumb, 'icon':thumb}) + item.setInfo('music',info) + playlist.add(url, item) + xbmc.Player().play(playlist) + + +def search(item, text): + support.info(text) + item.url = host + '/search/' + text + itemlist = [] + try: + data = support.match(item.url).data + artists = support.match(data, patronBlock=r'artistResults(.*?)</ul', patron=r'href="(?P<url>[^"]+)"\s*>(?P<title>[^<]+)').matches + if artists: + for url, artist in artists: + itemlist.append(item.clone(title=support.typo(artist,'bullet bold'), thumbnail=support.thumb('music'), url=host+url, action='peliculas')) + item.data = data + itemlist += peliculas(item) + # Continua la ricerca in caso di errore + except: + import sys + for line in sys.exc_info(): + logger.error("%s" % line) + return itemlist