Skip to content

Commit

Permalink
Merge pull request #95 from mrchnk/master
Browse files Browse the repository at this point in the history
Fix hdrezka get_links exception
  • Loading branch information
dandygithub committed May 3, 2024
2 parents cef35c8 + 7f8f501 commit d34ae73
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 37 deletions.
2 changes: 1 addition & 1 deletion addons/plugin.video.hdrezka.tv/addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.hdrezka.tv" name="Hdrezka.tv" version="2.5.10" provider-name="MrStealth, dandy, DesSolo">
<addon id="plugin.video.hdrezka.tv" name="Hdrezka.tv" version="2.5.11" provider-name="MrStealth, dandy, DesSolo">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.xbmc.helpers" version="2.1.0"/>
Expand Down
17 changes: 15 additions & 2 deletions addons/plugin.video.hdrezka.tv/constants.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
USER_AGENT = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0"
PLAYLIST_DOMAIN = 's9.cdnapponline.com'
QUALITY_TYPES = (360, 480, 720, 1080, 2160)
PluginId = 'plugin.video.hdrezka.tv'
QUALITY_TYPES = {
# from the site
'360p': 1,
'480p': 2,
'720p': 3,
'1080p': 4,
'1080p Quad': 5,
'1080p Ultra': 6,
'2K': 7,
'4K': 8,
# extra settings.xml
'QuadHD': 5,
'UltraHD': 6,
}
PluginId = 'plugin.video.hdrezka.tv'
23 changes: 14 additions & 9 deletions addons/plugin.video.hdrezka.tv/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -297,17 +297,22 @@ def decode_response(self,r):
r_decoded = base64.b64decode(''.join(templist).replace('#h','',1))
#--Result preparing -- finish#
return r_decoded

@staticmethod
def get_links(data):
log("*** get_links")
links = data.replace("\/", "/").split(",")
manifest_links = {}
for link in links:
if not ("Ultra" in link):
manifest_links[int(link.split("]")[0].replace("[", "").replace("p", ""))] = link.split("]")[1]
else:
manifest_links[2160] = link.split("]")[1]
return manifest_links
if len(data) == 0:
return {}
links = {}
for item in data.split(","):
try:
quality, link = item[1:].split("]", 1)
if quality in QUALITY_TYPES:
links[quality] = link.replace("\/", "/")
else:
log("*** get_links: unknown quality (%s)" % quality)
except Exception as e:
log("*** get_links: parse failed (%s): %s" % (item, str(e)))
return links

@staticmethod
def get_subtitles(response):
Expand Down
62 changes: 38 additions & 24 deletions addons/plugin.video.hdrezka.tv/qualityAndTranslator.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,45 @@

common = XbmcHelpers


def selectQuality(plugin, links, title, image, subtitles=None):
lst = sorted(links.iteritems(), key=itemgetter(0))
i = 0
quality_prev = 360
qualitySetting = getQualitySettings()
for quality, link in lst:
i += 1
if qualitySetting != 'select':
if quality > int(qualitySetting[:-1]):
plugin.play(links[quality_prev], subtitles)
break
elif len(lst) == i:
plugin.play(links[quality], subtitles)
if len(links) == 0:
raise Exception("Empty Links")
if len(links) == 1:
quality, link = next(links.iteritems())
plugin.play(link, subtitles)
return
setting = getQualitySettings()
if setting in QUALITY_TYPES:
items = links.iteritems()
items_f = filter(lambda it: QUALITY_TYPES[it[0]] <= QUALITY_TYPES[setting], items)
items_s = sorted(items_f, key=lambda it: QUALITY_TYPES[it[0]], reverse=True)
if len(items_s) > 0:
quality, link = items_s[0]
plugin.play(link, subtitles)
return
else:
film_title = "%s (%s)" % (title, str(quality) + 'p')
uri = sys.argv[0] + '?mode=play&url=%s' % urllib.quote(link)
item = xbmcgui.ListItem(film_title, iconImage=image)
item.setInfo(
type='Video',
infoLabels={'title': film_title, 'overlay': xbmcgui.ICON_OVERLAY_WATCHED, 'playCount': 0}
)
item.setProperty('IsPlayable', 'true')
plugin.set_item_subtitles(item, subtitles)
xbmcplugin.addDirectoryItem(getHandleSettings(), uri, item, False)
quality_prev = quality
log("*** selectQuality: no matching quality link found, invoke select")
elif setting != 'select':
log("*** selectQuality: unknown quality setting %s, invoke select" % setting)
for quality, link in sorted(links.iteritems(), key=lambda it: QUALITY_TYPES[it[0]]):
quality_title = "%s (%s)" % (title, quality)
addQualityItem(plugin, link, quality_title, image, subtitles)


def addQualityItem(plugin, link, title, image, subtitles=None):
uri = sys.argv[0] + '?mode=play&url=%s' % urllib.quote(link)
infoLabels={
'title': title,
'overlay': xbmcgui.ICON_OVERLAY_WATCHED,
'playCount': 0,
}
item = xbmcgui.ListItem(title, iconImage=image)
item.setInfo(type='Video', infoLabels=infoLabels)
item.setProperty('IsPlayable', 'true')
plugin.set_item_subtitles(item, subtitles)
xbmcplugin.addDirectoryItem(getHandleSettings(), uri, item, False)


def selectTranslator3(plugin, content, tvshow, post_id, url, idt, action):
try:
Expand Down Expand Up @@ -83,4 +97,4 @@ def selectTranslator3(plugin, content, tvshow, post_id, url, idt, action):
seasons = response["seasons"]
episodes = response["episodes"]
playlist = common.parseDOM(episodes, "ul", attrs={"class": "b-simple_episodes__list clearfix"})
return playlist, idt, subtitles
return playlist, idt, subtitles
2 changes: 1 addition & 1 deletion addons/plugin.video.hdrezka.tv/resources/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<settings>
<category label="Default">
<setting id="translit" type="bool" label="Use translit" default="false" />
<setting id="quality" type="labelenum" label="Video quality" values="select|360p|480p|720p|1080p|2160p" default="select"/>
<setting id="quality" type="labelenum" label="Video quality" values="select|360p|480p|720p|1080p|QuadHD|UltraHD|2K|4K" default="select"/>
<setting id="translator" type="labelenum" label="Use translator" values="default|select" default="default"/>
<setting id="dom_protocol" type="labelenum" label="Protocol" values="http|https" default="https"/>
<setting id="domain" type="text" label="Site URL" default="hdrezka.ag"/>
Expand Down

0 comments on commit d34ae73

Please sign in to comment.