Skip to content
This repository has been archived by the owner on Mar 18, 2022. It is now read-only.

Commit

Permalink
can edit My List and added Ratings fixed #1, gracious fail on #5
Browse files Browse the repository at this point in the history
  • Loading branch information
arvvoid committed Mar 1, 2019
1 parent 38913e9 commit f8bc7aa
Show file tree
Hide file tree
Showing 7 changed files with 160 additions and 83 deletions.
8 changes: 7 additions & 1 deletion addon.xml
@@ -1,4 +1,4 @@
<addon id="plugin.video.hbogoeu" name="HBO GO EU" provider-name="arvvoid" version="2.0.5~beta16">
<addon id="plugin.video.hbogoeu" name="HBO GO EU" provider-name="arvvoid" version="2.0.6~beta17">
<requires>
<import addon="script.module.requests" version="2.12.4" />
<import addon="xbmc.python" version="2.25.0" />
Expand Down Expand Up @@ -66,6 +66,12 @@ Minden HBO Go tartalom © 2019 Copyright © 2017 Home Box Office, Inc. Minden jo
<forum />
<website>https://github.com/arvvoid/plugin.video.hbogoeu</website>
<news>
v.2.0.6-beta17
- Add to My List
- Remove from My List
- Rate Movies and TV Shows
- If OAuth unexpectedly fail for Operators with login redirection the add-on won't crash but display an informative message and write data that can help fix it to the debug log.

v.2.0.5-beta16
- Fixed a bug that prevented some countries from completing setup.
- Bumped inputstream.adaptive requirement to 2.3.15
Expand Down
6 changes: 6 additions & 0 deletions changelog.md
@@ -1,3 +1,9 @@
v.2.0.6-beta17
- Add to My List
- Remove from My List
- Rate Movies and TV Shows
- If OAuth unexpectedly fail for Operators with login redirection the add-on won't crash but display an informative message and write data that can help fix it to the debug log.

v.2.0.5-beta16
- Fixed a bug that prevented some countries from completing setup.
- Bumped inputstream.adaptive requirement to 2.3.15
Expand Down
4 changes: 1 addition & 3 deletions hbogolib/handler.py
Expand Up @@ -48,6 +48,7 @@ def __init__(self, addon_id, handle, base_url):
self.LB_SEARCH_NORES = self.language(33701).encode('utf-8')
self.LB_ERROR = self.language(33702).encode('utf-8')
self.LB_INFO = self.language(33713).encode('utf-8')
self.LB_SUCESS = self.language(33727).encode('utf-8')
self.LB_EPISODE_UNTILL = self.language(33703).encode('utf-8')
self.LB_FILM_UNTILL = self.language(33704).encode('utf-8')
self.LB_EPISODE = self.language(33705).encode('utf-8')
Expand Down Expand Up @@ -202,9 +203,6 @@ def play(self, url, cid):
def procContext(self, type, content_id, optional=""):
pass

def genContextMenu(self, content_id):
pass

def addLink(self, title, mode):
pass

Expand Down
61 changes: 43 additions & 18 deletions hbogolib/handlereu.py
Expand Up @@ -484,8 +484,20 @@ def OAuthLogin(self, username, password):
data=payload
)

self.log("RESPONSE URL: " + str(response.url))

parsed_url = parse.urlparse(response.url)
ssoid = parse.parse_qs(parsed_url.query)['ssoid'][0]

self.log("PARTED URL: " + str(parsed_url))

try:
ssoid = parse.parse_qs(parsed_url.query)['ssoid'][0]
except:
self.log("OAuth login attempt failed, operator not supported: " + str(self.op_id))
xbmcgui.Dialog().ok(self.LB_LOGIN_ERROR, "Sorry the OAuth login attempt have failed. Your operator require a special login procedure thats not supported at the moment. Please report with a full debug log")
self.del_setup()
self.log(str(response))
sys.exit()

response = hbo_session.post(
'https://' + self.COUNTRY_CODE_SHORT +'gwapi.hbogo.eu/v2.1/RetrieveCustomerByToken/json/'+ self.LANGUAGE_CODE + '/' + self.API_PLATFORM
Expand Down Expand Up @@ -982,7 +994,7 @@ def search(self):
if item['ContentType'] == 1 or item['ContentType'] == 7 or item['ContentType'] == 3: # 1,7=MOVIE/EXTRAS, 2=SERIES(serial), 3=SERIES(episode)
self.addLink(item, 5)
else:
self.addDir(item, 2, "season")
self.addDir(item, 2, "tvshow")
br = br + 1
if br == 0:
self.addCat(self.LB_SEARCH_NORES, self.LB_SEARCH_NORES, self.md + 'DefaultFolderBack.png', '')
Expand Down Expand Up @@ -1074,61 +1086,65 @@ def play(self, url, content_id):
xbmcplugin.setResolvedUrl(self.handle, True, li)

def procContext(self, type, content_id, optional=""):
if not self.chk_login():
self.login()

icon = self.resources + "icon.png"

if type == 9:
resp = self.get_from_hbogo(self.API_URL_ADD_MYLIST + content_id)
try:
if resp["Success"]:
self.log("ADDED TO MY LIST: " + content_id)
xbmcgui.Dialog().notification("ADD TO MY LIST", "Sucess")
xbmcgui.Dialog().notification(self.language(33719).encode('utf-8'), self.LB_SUCESS, icon)
else:
self.log("FAILED ADD TO MY LIST: " + content_id)
xbmcgui.Dialog().notification("ADD TO MY LIST", "Error", xbmcgui.NOTIFICATION_ERROR)
xbmcgui.Dialog().notification(self.language(33719).encode('utf-8'), self.LB_ERROR, icon)
except:
self.log("ERROR ADD TO MY LIST: " + content_id)
xbmcgui.Dialog().notification("ADD TO MY LIST", "Error", xbmcgui.NOTIFICATION_ERROR)
xbmcgui.Dialog().notification(self.language(33719).encode('utf-8'), self.LB_ERROR, icon)

if type == 10:
resp = self.get_from_hbogo(self.API_URL_REMOVE_MYLIST + content_id)
try:
if resp["Success"]:
self.log("REMOVED FROM MY LIST: " + content_id)
xbmcgui.Dialog().notification("REMOVE FROM MY LIST", "Sucess")
xbmcgui.Dialog().notification(self.language(33720).encode('utf-8'), self.LB_SUCESS, icon)
return xbmc.executebuiltin('Container.Refresh')
else:
self.log("FAILED TO REMOVE MY LIST: " + content_id)
xbmcgui.Dialog().notification("REMOVE FROM MY LIST", "Error", xbmcgui.NOTIFICATION_ERROR)
xbmcgui.Dialog().notification(self.language(33720).encode('utf-8'), self.LB_ERROR, icon)
except:
self.log("ERROR REMOVE FROM MY LIST: " + content_id)
xbmcgui.Dialog().notification("REMOVE FROM MY LIST", "Error", xbmcgui.NOTIFICATION_ERROR)
xbmcgui.Dialog().notification(self.language(33720).encode('utf-8'), self.LB_ERROR, icon)

if type == 8:
resp = self.get_from_hbogo(self.API_URL_ADD_RATING + content_id + '/' + optional)
try:
if resp["Success"]:
self.log("ADDED RATING: " + content_id + " " + optional)
xbmcgui.Dialog().notification("RATING", "Sucess")
xbmcgui.Dialog().notification(self.language(33726).encode('utf-8'), self.LB_SUCESS, icon)
else:
self.log("FAILED RATING: " + content_id + " " + optional)
xbmcgui.Dialog().notification("RATING", "Error", xbmcgui.NOTIFICATION_ERROR)
xbmcgui.Dialog().notification(self.language(33726).encode('utf-8'), self.LB_ERROR, icon)
except:
self.log("ERROR RATING: " + content_id + " " + optional)
xbmcgui.Dialog().notification("RATING", "Error", xbmcgui.NOTIFICATION_ERROR)
xbmcgui.Dialog().notification(self.language(33726).encode('utf-8'), self.LB_ERROR, icon)



def genContextMenu(self, content_id):
def genContextMenu(self, content_id, media_id):

add_mylist = (self.language(33719), 'RunPlugin(' + self.base_url + "?url=ADDMYLIST&mode=9&cid=" + content_id + ')')
remove_mylist = (self.language(33720), 'RunPlugin(' + self.base_url + "?url=REMMYLIST&mode=10&cid=" + content_id + ')')
add_mylist = (self.language(33719), 'RunPlugin(' + self.base_url + "?url=ADDMYLIST&mode=9&cid=" + media_id + ')')
remove_mylist = (self.language(33720), 'RunPlugin(' + self.base_url + "?url=REMMYLIST&mode=10&cid=" + media_id + ')')

vote_5 = (self.language(33721), 'RunPlugin(' + self.base_url + "?url=VOTE&mode=8&vote=5&cid=" + content_id + ')')
vote_4 = (self.language(33722), 'RunPlugin(' + self.base_url + "?url=VOTE&mode=8&vote=4&cid=" + content_id + ')')
vote_3 = (self.language(33723), 'RunPlugin(' + self.base_url + "?url=VOTE&mode=8&vote=3&cid=" + content_id + ')')
vote_2 = (self.language(33724), 'RunPlugin(' + self.base_url + "?url=VOTE&mode=8&vote=2&cid=" + content_id + ')')
vote_1 = (self.language(33725), 'RunPlugin(' + self.base_url + "?url=VOTE&mode=8&vote=1&cid=" + content_id + ')')

if self.cur_loc == self.language(33707):
if self.cur_loc == self.LB_MYPLAYLIST:
return [vote_5, vote_4, vote_3, vote_2, vote_1, remove_mylist]
else:
return [add_mylist, vote_5, vote_4, vote_3, vote_2, vote_1]
Expand Down Expand Up @@ -1184,10 +1200,14 @@ def addLink(self, title, mode):
liz.addStreamInfo('audio', {'codec': 'aac', 'channels': 2})
liz.setProperty("IsPlayable", "true")
if title['ContentType'] == 1:
liz.addContextMenuItems(items=self.genContextMenu(cid))
media_id = cid
try:
media_id = title['Id']
except:
pass
liz.addContextMenuItems(items=self.genContextMenu(cid, media_id))
xbmcplugin.addDirectoryItem(handle=self.handle, url=u, listitem=liz, isFolder=False)


def addDir(self, item, mode, media_type):
self.log("Adding Dir: " + str(item) + " MODE: " + str(mode))
u = self.base_url + "?url=" + urllib.quote_plus(item['ObjectUrl']) + "&mode=" + str(mode) + "&name=" + urllib.quote_plus(item['OriginalName'].encode('utf-8', 'ignore') + " (" + str(item['ProductionYear']) + ")")
Expand All @@ -1201,7 +1221,12 @@ def addDir(self, item, mode, media_type):
liz.setProperty('isPlayable', "false")
if media_type == "tvshow":
cid = item['ObjectUrl'].rsplit('/', 2)[1]
liz.addContextMenuItems(items=self.genContextMenu(cid))
media_id = cid
try:
media_id = item['SeriesId']
except:
pass
liz.addContextMenuItems(items=self.genContextMenu(cid, media_id))
xbmcplugin.addDirectoryItem(handle=self.handle, url=u, listitem=liz, isFolder=True)


Expand Down
18 changes: 13 additions & 5 deletions resources/language/resource.language.en_gb/strings.po
Expand Up @@ -165,23 +165,31 @@ msgid "Remove from My List"
msgstr ""

msgctxt "#33721"
msgid "Vote 5"
msgid "Rate 5"
msgstr ""

msgctxt "#33722"
msgid "Vote 4"
msgid "Rate 4"
msgstr ""

msgctxt "#33723"
msgid "Vote 3"
msgid "Rate 3"
msgstr ""

msgctxt "#33724"
msgid "Vote 2"
msgid "Rate 2"
msgstr ""

msgctxt "#33725"
msgid "Vote 1"
msgid "Rate 1"
msgstr ""

msgctxt "#33726"
msgid "Rate"
msgstr ""

msgctxt "#33727"
msgid "Success"
msgstr ""

msgctxt "#33650"
Expand Down
73 changes: 45 additions & 28 deletions resources/language/resource.language.hr_hr/strings.po
Expand Up @@ -182,34 +182,6 @@ msgctxt "#33718"
msgid "Trending Now"
msgstr "Sada u trendu"

msgctxt "#33719"
msgid "Add to My List"
msgstr ""

msgctxt "#33720"
msgid "Remove from My List"
msgstr ""

msgctxt "#33721"
msgid "Vote 5"
msgstr ""

msgctxt "#33722"
msgid "Vote 4"
msgstr ""

msgctxt "#33723"
msgid "Vote 3"
msgstr ""

msgctxt "#33724"
msgid "Vote 2"
msgstr ""

msgctxt "#33725"
msgid "Vote 1"
msgstr ""

#:
msgctxt "#33650"
msgid "Language"
Expand Down Expand Up @@ -270,3 +242,48 @@ msgctxt "#33691"
msgid "Include sensitive login data in debug log [DON'T POST PUBLICLY]"
msgstr "Uključite osjetljive podatke za prijavu u dnevnik za ispravljanje pogrešaka [NE POŠTEJTE JAVNO]"

#:
msgctxt "#33719"
msgid "Add to My List"
msgstr "Dodaj u Moj popis"

#:
msgctxt "#33720"
msgid "Remove from My List"
msgstr "Ukloni s Mog popisa"

#:
msgctxt "#33721"
msgid "Rate 5"
msgstr "Ocijenite 5"

#:
msgctxt "#33722"
msgid "Rate 4"
msgstr "Ocijenite 4"

#:
msgctxt "#33723"
msgid "Rate 3"
msgstr "Ocijenite 3"

#:
msgctxt "#33724"
msgid "Rate 2"
msgstr "Ocijenite 2"

#:
msgctxt "#33725"
msgid "Rate 1"
msgstr "Ocijenite 1"

#:
msgctxt "#33726"
msgid "Rate"
msgstr "Ocijenite"

#:
msgctxt "#33727"
msgid "Success"
msgstr "Uspjeh"

73 changes: 45 additions & 28 deletions resources/language/resource.language.hu_hu/strings.po
Expand Up @@ -182,34 +182,6 @@ msgctxt "#33718"
msgid "Trending Now"
msgstr "Trendelő most"

msgctxt "#33719"
msgid "Add to My List"
msgstr ""

msgctxt "#33720"
msgid "Remove from My List"
msgstr ""

msgctxt "#33721"
msgid "Vote 5"
msgstr ""

msgctxt "#33722"
msgid "Vote 4"
msgstr ""

msgctxt "#33723"
msgid "Vote 3"
msgstr ""

msgctxt "#33724"
msgid "Vote 2"
msgstr ""

msgctxt "#33725"
msgid "Vote 1"
msgstr ""

#:
msgctxt "#33650"
msgid "Language"
Expand Down Expand Up @@ -270,3 +242,48 @@ msgctxt "#33691"
msgid "Include sensitive login data in debug log [DON'T POST PUBLICLY]"
msgstr "Érzékeny belépési adatok beszúrása a hibakeresési naplóba"

#:
msgctxt "#33719"
msgid "Add to My List"
msgstr "Hozzáadás a Saját listához"

#:
msgctxt "#33720"
msgid "Remove from My List"
msgstr "Eltávolítás a listáról"

#:
msgctxt "#33721"
msgid "Rate 5"
msgstr "Küldje 5"

#:
msgctxt "#33722"
msgid "Rate 4"
msgstr "Küldje 4"

#:
msgctxt "#33723"
msgid "Rate 3"
msgstr "Küldje 3"

#:
msgctxt "#33724"
msgid "Rate 2"
msgstr "Küldje 2"

#:
msgctxt "#33725"
msgid "Rate 1"
msgstr "Küldje 1"

#:
msgctxt "#33726"
msgid "Rate"
msgstr "Küldje"

#:
msgctxt "#33727"
msgid "Success"
msgstr "Siker"

0 comments on commit f8bc7aa

Please sign in to comment.