diff options
author | Razzeee <razzeee@gmail.com> | 2017-04-09 23:14:54 +0200 |
---|---|---|
committer | enen92 <enen92@users.noreply.github.com> | 2017-04-09 22:14:54 +0100 |
commit | 479a368e3491d81d93f70488becec23e078448e8 (patch) | |
tree | e38f57a272d76f59cecdc15c35c6e0fb43862bb8 /plugin.video.rocketbeans/resources | |
parent | 9008136341ac30a204db34cd23c89d2875970453 (diff) |
[plugin.video.rocketbeans] 1.0.1 (#1138)
Diffstat (limited to 'plugin.video.rocketbeans/resources')
-rw-r--r-- | plugin.video.rocketbeans/resources/lib/__init__.py | 0 | ||||
-rw-r--r-- | plugin.video.rocketbeans/resources/lib/guide.py | 45 | ||||
-rw-r--r-- | plugin.video.rocketbeans/resources/lib/plugin.py | 51 | ||||
-rw-r--r-- | plugin.video.rocketbeans/resources/lib/youtube.py | 20 |
4 files changed, 116 insertions, 0 deletions
diff --git a/plugin.video.rocketbeans/resources/lib/__init__.py b/plugin.video.rocketbeans/resources/lib/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/plugin.video.rocketbeans/resources/lib/__init__.py diff --git a/plugin.video.rocketbeans/resources/lib/guide.py b/plugin.video.rocketbeans/resources/lib/guide.py new file mode 100644 index 0000000..f8438fc --- /dev/null +++ b/plugin.video.rocketbeans/resources/lib/guide.py @@ -0,0 +1,45 @@ +import datetime +import json +import time +import urllib2 + +from resources.data import config + + +def show_guide(): + items = [] + + request = urllib2.Request(config.GUIDE_URL, headers={'User-Agent': 'Kodi'}) + response = urllib2.urlopen(request) + string_data = response.read() + + data = json.loads(string_data) + schedule = data['schedule'] + + cur_date = None + for item in schedule: + startTime = datetime.datetime( + *time.strptime(item['timeStart'][:19], "%Y-%m-%dT%H:%M:%S")[:6]) + title = item['title'] + type = item['type'] + + if cur_date is None: + cur_date = startTime.date() + elif (startTime.date() - cur_date).days != 0: + items.append(startTime.strftime('--- %A, %d. %B ---')) + cur_date = startTime.date() + + if not type: + type_string = '' + else: + type_name = type[0].upper() + type[1:] + if type == 'live': + type_string = '[COLOR FFFF0000][' + type_name + '][/COLOR]' + elif type == 'premiere': + type_string = '[COLOR FF0000FF][' + type_name + '][/COLOR]' + else: + type_string = type_name + + items.append(startTime.strftime('%H:%M ') + title + ' ' + type_string) + + return items diff --git a/plugin.video.rocketbeans/resources/lib/plugin.py b/plugin.video.rocketbeans/resources/lib/plugin.py new file mode 100644 index 0000000..215f8c7 --- /dev/null +++ b/plugin.video.rocketbeans/resources/lib/plugin.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- + +import routing +import sys +import urllib +import urlparse + +from resources.data import config +from resources.lib.guide import show_guide +from resources.lib.youtube import get_live_video_id_from_channel_id +from xbmcgui import ListItem +from xbmcplugin import addDirectoryItem, endOfDirectory, setContent + +plugin = routing.Plugin() +setContent(plugin.handle, 'videos') + + +@plugin.route('/') +def index(): + video_id = get_live_video_id_from_channel_id(config.CHANNEL_ID) + url = "plugin://plugin.video.youtube/play/?video_id=%s" % video_id + li = ListItem(label='Live', + thumbnailImage="https://i.ytimg.com/vi/%s/maxresdefault_live.jpg" % video_id) + li.setProperty('isPlayable', 'true') + addDirectoryItem(plugin.handle, url, li) + + url = "plugin://plugin.video.youtube/user/%s/" % config.CHANNEL_ID + addDirectoryItem(plugin.handle, url, ListItem('Mediathek'), True) + + url = "plugin://plugin.video.youtube/channel/%s/" % config.LETS_PLAY_CHANNEL_ID + addDirectoryItem( + plugin.handle, url, ListItem('Let\'s-Play-Mediathek'), True) + + addDirectoryItem( + plugin.handle, plugin.url_for(guide), ListItem('Sendeplan'), True) + + endOfDirectory(plugin.handle) + + +@plugin.route('/guide') +def guide(): + guide_items = show_guide() + + for guide_item in guide_items: + li = ListItem(guide_item) + addDirectoryItem(plugin.handle, '', li) + endOfDirectory(plugin.handle) + + +def run(): + plugin.run() diff --git a/plugin.video.rocketbeans/resources/lib/youtube.py b/plugin.video.rocketbeans/resources/lib/youtube.py new file mode 100644 index 0000000..8ef78b9 --- /dev/null +++ b/plugin.video.rocketbeans/resources/lib/youtube.py @@ -0,0 +1,20 @@ +import re +import urllib2 + +import xbmc + + +def get_live_video_id_from_channel_id(channel_id): + request = urllib2.Request("https://www.youtube.com/c/%s/live" % channel_id) + response = urllib2.urlopen(request) + string_data = response.read() + lines = string_data.splitlines() + + re_video_url = re.compile(r'http://www.youtube.com/v/(?P<video_id>[^\?]+)') + + + for line in lines: + #xbmc.log(line) + re_video_url_match = re.search(re_video_url, line) + if re_video_url_match: + return re_video_url_match.group('video_id') |