Skip to content

Commit dffabbe

Browse files
authored
Merge pull request #98 from pakeha-by/matrix
Allow to select subtitle language
2 parents 5ea00e0 + 1472cc8 commit dffabbe

File tree

2 files changed

+24
-11
lines changed

2 files changed

+24
-11
lines changed

addons/plugin.video.hdrezka.tv/default.py

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import helpers
2222
import router
2323
from voidboost import parse_streams
24-
from helpers import log, get_media_attributes, color_rating
24+
from helpers import log, get_media_attributes, color_rating, get_subtitles, set_item_subtitles
2525

2626
common = XbmcHelpers
2727
transliterate = Translit()
@@ -289,8 +289,7 @@ def select_quality(self, streams, title, image, subtitles=None):
289289
infoLabels={'title': film_title, 'overlay': xbmcgui.ICON_OVERLAY_WATCHED, 'playCount': 0}
290290
)
291291
item.setProperty('IsPlayable', 'true')
292-
if subtitles:
293-
item.setSubtitles([subtitles])
292+
set_item_subtitles(item, subtitles)
294293
xbmcplugin.addDirectoryItem(self.handle, item_uri, item, False)
295294

296295
def select_translator(self, content, tv_show, post_id, url, idt, action):
@@ -339,10 +338,7 @@ def select_translator(self, content, tv_show, post_id, url, idt, action):
339338
subtitles = None
340339
if action == "get_movie":
341340
playlist = [response["url"]]
342-
try:
343-
subtitles = response["subtitle"].split(']')[1].split(',')[0].replace(r"\/", "/")
344-
except Exception as ex:
345-
log(f'fault decode subtitles ex: {ex}')
341+
subtitles = get_subtitles(response)
346342
else:
347343
episodes = response["episodes"]
348344
playlist = common.parseDOM(episodes, "ul", attrs={"class": "b-simple_episodes__list clearfix"})
@@ -551,8 +547,7 @@ def search(self, keyword, external):
551547
def play(self, url, subtitles=None):
552548
log(f'*** play url: {url} subtitles: {subtitles}')
553549
item = xbmcgui.ListItem(path=url)
554-
if subtitles:
555-
item.setSubtitles([subtitles])
550+
set_item_subtitles(item, subtitles)
556551
xbmcplugin.setResolvedUrl(self.handle, True, item)
557552

558553
def play_episode(self, url, post_id, season_id, episode_id, title, image, idt):
@@ -572,9 +567,9 @@ def play_episode(self, url, post_id, season_id, episode_id, title, image, idt):
572567
}
573568
response = self.make_response('POST', "/ajax/get_cdn_series/", data=data, headers=headers).json()
574569
data = response["url"]
575-
570+
subtitles = get_subtitles(response)
576571
links = parse_streams(data)
577-
self.select_quality(links, title, image, None)
572+
self.select_quality(links, title, image, subtitles)
578573
xbmcplugin.setContent(self.handle, 'episodes')
579574
xbmcplugin.endOfDirectory(self.handle, True)
580575

addons/plugin.video.hdrezka.tv/helpers.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,21 @@ def load_cookies(src):
3939

4040
def log(msg, level=xbmc.LOGINFO):
4141
xbmc.log(f'hdrezka: {msg}', level)
42+
43+
def get_subtitles(response):
44+
subtitles = None
45+
try:
46+
subtitles = response["subtitle"].split(',')
47+
for si in range(len(subtitles)):
48+
parts = subtitles[si].split(']');
49+
subtitles[si] = parts[1].replace("\/", "/")
50+
except Exception as ex:
51+
log(f'fault decode subtitles ex: {ex}')
52+
return subtitles
53+
54+
def set_item_subtitles(item, subtitles):
55+
if subtitles:
56+
if not isinstance(subtitles, list):
57+
subtitles = [ subtitles ]
58+
59+
item.setSubtitles(subtitles)

0 commit comments

Comments
 (0)