diff options
Diffstat (limited to 'plugin.video.montreal.greek-tv/addon.py')
-rw-r--r-- | plugin.video.montreal.greek-tv/addon.py | 133 |
1 files changed, 107 insertions, 26 deletions
diff --git a/plugin.video.montreal.greek-tv/addon.py b/plugin.video.montreal.greek-tv/addon.py index 845bbe1..9b2b027 100644 --- a/plugin.video.montreal.greek-tv/addon.py +++ b/plugin.video.montreal.greek-tv/addon.py @@ -18,10 +18,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. """ -import requests +import requests, json import CommonFunctions as common from base64 import b64decode -from resources.lib import control, youtube, cache, directory, syshandle, sysaddon, action, url +from resources.lib import control, youtube, cache, directory, syshandle, sysaddon, action, url, image # Misc variables: @@ -30,17 +30,19 @@ addonart = control.join(control.addonPath, 'resources/media') livetv_img = control.join(addonart, 'livetv.png') radio_img = control.join(addonart, 'radio.png') youtube_img = control.join(addonart, 'youtube.png') -settings_img = control.join(addonart, 'settings.png') +news_icon = control.join(addonart, 'newspaper_icon.png') +news_fanart = control.join(addonart, 'newspaper_icon.png') +fp = control.infoLabel('Container.FolderPath') # Please do not copy these keys, instead create your own: # http://forum.kodi.tv/showthread.php?tid=267160&pid=2299960#pid2299960 key = b64decode('QUl6YVN5QThrMU95TEdmMDNIQk5sMGJ5RDUxMWpyOWNGV28yR1I0') ytid = 'UCFr8nqHDhA_fLQq2lEK3Mlw' -old_radio_url = 'http://209.95.50.189:8049/stream' def yt(): + return youtube.youtube(key=key).videos(ytid) @@ -56,37 +58,105 @@ def vod(): directory.add(video_list) +def news_index(): + + base_link = 'https://issuu.com/greektimes/docs/' + json_obj = 'https://issuu.com/call/profile_demo/v1/documents/greektimes?offset=0&limit=1000' + + result = requests.get(json_obj).text + + news_list = json.loads(result)['items'] + + empty_list = [] + + for n in news_list: + + title = n['title'] + image = n['coverUrl'] + url = base_link + n['uri'] + + data = {'title': title, 'image': image, 'url': url, 'action': 'paper_index'} + + empty_list.append(data) + + directory.add(empty_list, content='images') + + +def paper_index(link): + + base_img_url = 'https://image.isu.pub/' + + html = requests.get(link).text + + script = common.parseDOM(html, 'script', attrs={'type': 'application/javascript'})[-2] + + data = json.loads(script.partition(' = ')[2].rstrip(';')) + document = data['document'] + total_pages = int(document['pageCount']) + + empty_list = [] + final_list = [] + + for page in range(1, total_pages + 1): + + title = document['title'] + ' - ' + control.lang(30003) + ' ' + str(page) + page_img = base_img_url + document['id'] + '/jpg/page_{0}_thumb_large.jpg'.format(str(page)) + page_url = base_img_url + document['id'] + '/jpg/page_{0}.jpg'.format(str(page)) + + data = {'title': title, 'image': page_img, 'url': page_url} + + empty_list.append(data) + + for i in empty_list: + li = control.item(label=i['title']) + li.setArt({'poster': i['image'], 'thumb': i['image'], 'fanart': news_fanart}) + li.setInfo('image', {'title': i['title'], 'picturepath': i['url']}) + url = i['url'] + final_list.append((url, li, False)) + + control.content(syshandle, 'images') + control.addItems(syshandle, final_list) + control.directory(syshandle) + + def main_menu(): - xml = requests.get(url='http://www.greekradio.net/mgtv.xml').text + xml = requests.get(url='http://s135598769.onlinehome.us/mgtv.xml').text mgtv = common.parseDOM(xml, 'title')[0] livetv_url = common.parseDOM(xml, 'url')[0] mgr = common.parseDOM(xml, 'title')[1] - new_radio_url = common.parseDOM(xml, 'url')[1] + radio_url = common.parseDOM(xml, 'url')[1] # Live TV - url1 = '{0}?action=play&url={1}'.format(sysaddon, livetv_url) - li = control.item(label=mgtv) - li.setArt({'icon': livetv_img, 'thumb': livetv_img, 'fanart': control.addonInfo('fanart')}) - li.setInfo('video', {'title': mgtv}) - li.setProperty('IsPlayable', 'true') - control.addItem(handle=syshandle, url=url1, listitem=li, isFolder=False) + url1 = '{0}?action={1}&url={2}'.format(sysaddon, 'play', livetv_url) + li1 = control.item(label=mgtv) + li1.setArt({'icon': livetv_img, 'thumb': livetv_img, 'fanart': control.addonInfo('fanart')}) + li1.setInfo('video', {'title': mgtv}) + li1.setProperty('IsPlayable', 'true') + control.addItem(handle=syshandle, url=url1, listitem=li1, isFolder=False) # Radio - url2 = '{0}?action=play&url={1}'.format(sysaddon, new_radio_url if control.setting('old-url') == 'false' else old_radio_url) - li = control.item(label=mgr) - li.setArt({'icon': radio_img, 'thumb': radio_img, 'fanart': control.addonInfo('fanart')}) - li.setInfo('audio', {'title': mgr}) - li.setProperty('IsPlayable', 'true') - control.addItem(handle=syshandle, url=url2, listitem=li, isFolder=False) + url2 = '{0}?action={1}&url={2}'.format(sysaddon, 'play', radio_url) + li2 = control.item(label=mgr) + li2.setArt({'icon': radio_img, 'thumb': radio_img, 'fanart': control.addonInfo('fanart')}) + li2.setInfo('audio', {'title': mgr}) + li2.setProperty('IsPlayable', 'true') + control.addItem(handle=syshandle, url=url2, listitem=li2, isFolder=False) # Youtube - url3 = '{0}?action=youtube'.format(sysaddon) - li = control.item(label='Montreal Greek TV - Youtube Channel') - li.setArt({'icon': youtube_img, 'thumb': youtube_img, 'fanart': control.addonInfo('fanart')}) - li.setInfo('video', {'title': 'Montreal Greek TV - Youtube Channel'}) - control.addItem(handle=syshandle, url=url3, listitem=li, isFolder=True) + url3 = '{0}?action={1}'.format(sysaddon, 'youtube') + li3 = control.item(label='Montreal Greek TV - {0}'.format(control.lang(30001).encode('utf-8'))) + li3.setArt({'icon': youtube_img, 'thumb': youtube_img, 'fanart': control.addonInfo('fanart')}) + li3.setInfo('video', {'title': 'Montreal Greek TV - {0}'.format(control.lang(30001).encode('utf-8'))}) + control.addItem(handle=syshandle, url=url3, listitem=li3, isFolder=True) + + # Newspaper + url4 = '{0}?action={1}'.format(sysaddon, 'news_addon') + li4 = control.item(label='The Montreal Greek Times - {0}'.format(control.lang(30002).encode('utf-8'))) + li4.setArt({'icon': news_icon, 'thumb': news_icon, 'fanart': news_fanart}) + li4.setInfo('image', {'title': 'The Montreal Greek Times - {0}'.format(control.lang(30002).encode('utf-8')), 'picturepath': news_icon}) + control.addItem(handle=syshandle, url=url4, listitem=li4, isFolder=True) control.directory(syshandle) @@ -99,7 +169,10 @@ def play_item(path): if action is None: - main_menu() + if 'image' in fp: + news_index() + else: + main_menu() elif action == 'play': @@ -109,6 +182,14 @@ elif action == 'youtube': vod() -elif action == 'settings': +elif action == 'news_index': + + news_index() + +elif action == 'paper_index': + + paper_index(url) + +elif action == 'news_addon': - control.openSettings() + control.execute('ActivateWindow(pictures,"plugin://{0}/?content_type=image",return)'.format(control.addonInfo('id'))) |