Skip to content

Commit

Permalink
Merge pull request #65 from bromix/gotham_focus-online.de_1.1.1
Browse files Browse the repository at this point in the history
[plugin.video.focus-online.de] 1.1.1
  • Loading branch information
MartijnKaijser committed Mar 31, 2015
2 parents 20748fe + 409956c commit 7228034
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 5 deletions.
2 changes: 1 addition & 1 deletion plugin.video.focus-online.de/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.focus-online.de" name="FOCUS Online" version="1.1.0" provider-name="bromix">
<addon id="plugin.video.focus-online.de" name="FOCUS Online" version="1.1.1" provider-name="bromix">
<requires>
<import addon="xbmc.python" version="2.14.0"/>
</requires>
Expand Down
4 changes: 4 additions & 0 deletions plugin.video.focus-online.de/changelog.txt
@@ -1,3 +1,7 @@
1.1.1 (2015-03-31)
ADD: support for 1080p (default 720p)
UPD: improved video stream support

1.1.0 (2015-03-27)
UPD: improved support for Gotham, Helix and Isengard
FIX: show seconds (Gotham)
Expand Down
29 changes: 27 additions & 2 deletions plugin.video.focus-online.de/resources/lib/focus/client.py
@@ -1,7 +1,10 @@
import re

__author__ = 'bromix'

from resources.lib.kodion import simple_requests as requests


class Client():
def __init__(self):
pass
Expand Down Expand Up @@ -50,10 +53,32 @@ def get_url_data(self, url):
return self._perform_request(url=url, headers=headers)

def get_video_streams_from_data(self, json_data):
def _sort(x):
return x['q']

content = json_data.get('content', [{}])[0]

result = [{'q': 480, 'url': content['videoSDUrl']},
{'q': 720, 'url': content['mp4Url']}]
regex_list = [re.compile(r'\d+x(?P<resolution>\d+)'),
re.compile(r'MP4(1920|1280|768)(?P<resolution>1080|720|432)')]

result = []
url_fields = ['videoHDUrl', 'mp4Url', 'videoSDUrl', 'flvUrl']
for url_field in url_fields:
url = content.get(url_field, '')
if url:
resolution = 480
for regex in regex_list:
re_match = regex.search(url)
if re_match:
resolution = int(re_match.group('resolution'))
break
pass

result.append({'q': resolution, 'url': url})
pass
pass

result = sorted(result, key=_sort, reverse=True)
return result

def _perform_request(self, url='http://json.focus.de/videos', headers=None):
Expand Down
3 changes: 2 additions & 1 deletion plugin.video.focus-online.de/resources/lib/focus/provider.py
Expand Up @@ -35,12 +35,13 @@ def get_wizard_supported_views(self):
@kodion.RegisterProviderPath('^/play/$')
def _on_play(self, context, re_match):
def _compare(item):
vq = context.get_settings().get_video_quality(quality_map_override={0: 480, 1: 720})
vq = context.get_settings().get_video_quality(quality_map_override={0: 480, 1: 720, 2: 1080})
return vq - item['q']

url = context.get_param('url')

client = self.get_client(context)

json_data = context.get_function_cache().get(FunctionCache.ONE_MINUTE * 15, client.get_url_data, url)
video_streams = client.get_video_streams_from_data(json_data)
video_stream = kodion.utils.find_best_fit(video_streams, _compare)
Expand Down
2 changes: 1 addition & 1 deletion plugin.video.focus-online.de/resources/settings.xml
Expand Up @@ -4,7 +4,7 @@
<category label="30000">

<!-- kodion Visual -->
<setting id="kodion.video.quality" type="enum" label="30010" lvalues="30011|30012" default="1" />
<setting id="kodion.video.quality" type="enum" label="30010" lvalues="30011|30012|30013" default="1" />
<setting type="sep" />
<setting id="kodion.fanart.show" type="bool" label="30021" default="true"/>
</category>
Expand Down

0 comments on commit 7228034

Please sign in to comment.