Skip to content

Commit 077eb21

Browse files
Update to version 13 API (part 2) (#54)
* More API 13 fixes * Codefix * codefix
1 parent 4180c95 commit 077eb21

File tree

6 files changed

+41
-28
lines changed

6 files changed

+41
-28
lines changed

resources/lib/addon.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -98,18 +98,18 @@ def show_mylist():
9898
Catalog().show_mylist()
9999

100100

101-
@routing.route('/catalog/mylist/add/<video_type>/<content_id>')
102-
def mylist_add(video_type, content_id):
101+
@routing.route('/catalog/mylist/add/<content_id>')
102+
def mylist_add(content_id):
103103
""" Add an item to "My List" """
104104
from resources.lib.modules.catalog import Catalog
105-
Catalog().mylist_add(video_type, content_id)
105+
Catalog().mylist_add(content_id)
106106

107107

108-
@routing.route('/catalog/mylist/del/<video_type>/<content_id>')
109-
def mylist_del(video_type, content_id):
108+
@routing.route('/catalog/mylist/del/<content_id>')
109+
def mylist_del(content_id):
110110
""" Remove an item from "My List" """
111111
from resources.lib.modules.catalog import Catalog
112-
Catalog().mylist_del(video_type, content_id)
112+
Catalog().mylist_del(content_id)
113113

114114

115115
@routing.route('/catalog/continuewatching')

resources/lib/modules/catalog.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -183,22 +183,20 @@ def show_mylist(self):
183183
# Sort categories by default like in Streamz.
184184
kodiutils.show_listing(listing, 30017, content='files', sort=['unsorted', 'label', 'year', 'duration'])
185185

186-
def mylist_add(self, video_type, content_id):
186+
def mylist_add(self, content_id):
187187
""" Add an item to "My List".
188188
189-
:type video_type: str
190189
:type content_id: str
191190
"""
192-
self._api.add_mylist(video_type, content_id)
191+
self._api.add_mylist(content_id)
193192
kodiutils.end_of_directory()
194193

195-
def mylist_del(self, video_type, content_id):
194+
def mylist_del(self, content_id):
196195
""" Remove an item from "My List".
197196
198-
:type video_type: str
199197
:type content_id: str
200198
"""
201-
self._api.del_mylist(video_type, content_id)
199+
self._api.del_mylist(content_id)
202200
kodiutils.end_of_directory()
203201

204202
def show_continuewatching(self):

resources/lib/modules/menu.py

+4-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from resources.lib.kodiutils import TitleItem
1010
from resources.lib.streamz import (PRODUCT_STREAMZ, PRODUCT_STREAMZ_KIDS, STOREFRONT_KIDS, STOREFRONT_MAIN, STOREFRONT_MAIN_KIDS, STOREFRONT_MOVIES,
1111
STOREFRONT_SERIES, Episode, Movie, Program)
12-
from resources.lib.streamz.api import CONTENT_TYPE_MOVIE, CONTENT_TYPE_PROGRAM
1312
from resources.lib.streamz.auth import Auth
1413

1514
_LOGGER = logging.getLogger(__name__)
@@ -200,13 +199,13 @@ def generate_titleitem(cls, item, progress=False):
200199
context_menu = [(
201200
kodiutils.localize(30101), # Remove from My List
202201
'Container.Update(%s)' %
203-
kodiutils.url_for('mylist_del', video_type=CONTENT_TYPE_MOVIE, content_id=item.movie_id)
202+
kodiutils.url_for('mylist_del', content_id=item.movie_id)
204203
)]
205204
else:
206205
context_menu = [(
207206
kodiutils.localize(30100), # Add to My List
208207
'Container.Update(%s)' %
209-
kodiutils.url_for('mylist_add', video_type=CONTENT_TYPE_MOVIE, content_id=item.movie_id)
208+
kodiutils.url_for('mylist_add', content_id=item.movie_id)
210209
)]
211210

212211
info_dict.update({
@@ -249,13 +248,13 @@ def generate_titleitem(cls, item, progress=False):
249248
context_menu = [(
250249
kodiutils.localize(30101), # Remove from My List
251250
'Container.Update(%s)' %
252-
kodiutils.url_for('mylist_del', video_type=CONTENT_TYPE_PROGRAM, content_id=item.program_id)
251+
kodiutils.url_for('mylist_del', content_id=item.program_id)
253252
)]
254253
else:
255254
context_menu = [(
256255
kodiutils.localize(30100), # Add to My List
257256
'Container.Update(%s)' %
258-
kodiutils.url_for('mylist_add', video_type=CONTENT_TYPE_PROGRAM, content_id=item.program_id)
257+
kodiutils.url_for('mylist_add', content_id=item.program_id)
259258
)]
260259

261260
info_dict.update({

resources/lib/streamz/api.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -139,16 +139,16 @@ def get_mylist(self, content_filter=None, cache=CACHE_ONLY):
139139

140140
return items
141141

142-
def add_mylist(self, video_type, content_id):
142+
def add_mylist(self, content_id):
143143
""" Add an item to My List. """
144-
util.http_put(API_ENDPOINT + '/%s/userData/myList/%s/%s' % (self._mode(), video_type, content_id),
144+
util.http_put(API_ENDPOINT + '/%s/userData/myList/%s' % (self._mode(), content_id),
145145
token=self._tokens.access_token,
146146
profile=self._tokens.profile)
147147
kodiutils.set_cache(['swimlane', 'my-list'], None)
148148

149-
def del_mylist(self, video_type, content_id):
149+
def del_mylist(self, content_id):
150150
""" Delete an item from My List. """
151-
util.http_delete(API_ENDPOINT + '/%s/userData/myList/%s/%s' % (self._mode(), video_type, content_id),
151+
util.http_delete(API_ENDPOINT + '/%s/userData/myList/%s' % (self._mode(), content_id),
152152
token=self._tokens.access_token,
153153
profile=self._tokens.profile)
154154
kodiutils.set_cache(['swimlane', 'my-list'], None)
@@ -170,7 +170,7 @@ def get_movie(self, movie_id, cache=CACHE_AUTO):
170170

171171
if not movie:
172172
# Fetch from API
173-
response = util.http_get(API_ENDPOINT + '/%s/movies/%s' % (self._mode(), movie_id),
173+
response = util.http_get(API_ENDPOINT + '/%s/detail/%s' % (self._mode(), movie_id),
174174
token=self._tokens.access_token,
175175
profile=self._tokens.profile)
176176
movie = json.loads(response.text)
@@ -211,7 +211,7 @@ def get_program(self, program_id, cache=CACHE_AUTO):
211211

212212
if not program:
213213
# Fetch from API
214-
response = util.http_get(API_ENDPOINT + '/%s/programs/%s' % (self._mode(), program_id),
214+
response = util.http_get(API_ENDPOINT + '/%s/detail/%s' % (self._mode(), program_id),
215215
token=self._tokens.access_token,
216216
profile=self._tokens.profile)
217217
program = json.loads(response.text)
@@ -224,10 +224,10 @@ def get_program(self, program_id, cache=CACHE_AUTO):
224224
episodes = {}
225225

226226
# Fetch season
227-
season_response = util.http_get(API_ENDPOINT + '/%s/programs/%s/seasons/%s' % (self._mode(), program_id, item_season),
227+
season_response = util.http_get(API_ENDPOINT + '/%s/detail/%s?selectedSeasonIndex=%s' % (self._mode(), program_id, item_season),
228228
token=self._tokens.access_token,
229229
profile=self._tokens.profile)
230-
season = json.loads(season_response.text)
230+
season = json.loads(season_response.text).get('selectedSeason')
231231

232232
for item_episode in season.get('episodes', []):
233233
episodes[item_episode.get('index')] = Episode(
@@ -315,7 +315,7 @@ def get_episode(self, episode_id):
315315
:type episode_id: str
316316
:rtype Episode
317317
"""
318-
response = util.http_get(API_ENDPOINT + '/%s/play/episodes/%s' % (self._mode(), episode_id),
318+
response = util.http_get(API_ENDPOINT + '/%s/play/%s' % (self._mode(), episode_id),
319319
token=self._tokens.access_token,
320320
profile=self._tokens.profile)
321321
episode = json.loads(response.text)

tests/test_api.py

+17-1
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99
import unittest
1010

1111
from resources.lib import kodiutils
12-
from resources.lib.streamz import STOREFRONT_MAIN, STOREFRONT_MOVIES, STOREFRONT_PAGE_CONTINUE_WATCHING, STOREFRONT_SERIES
12+
from resources.lib.streamz import STOREFRONT_MAIN, STOREFRONT_MOVIES, STOREFRONT_PAGE_CONTINUE_WATCHING, STOREFRONT_SERIES, Episode, Movie, Program
1313
from resources.lib.streamz.api import Api
1414
from resources.lib.streamz.auth import Auth
1515
from resources.lib.streamz.exceptions import UnavailableException
1616

17+
EXAMPLE_MOVIE = 'f384c9f1-e2dc-4f82-9954-a3f91589385a' # Niet schieten
18+
EXAMPLE_PROGRAM = '6382e070-c284-4538-b60a-44f337ba6157' # FC De Kampioenen
19+
EXAMPLE_EPISODE = '7c1c2b5c-de72-45d6-ab88-8dd63edddf43' # FC De Kampioenen S01E01
20+
1721

1822
@unittest.skipUnless(os.environ.get('ADDON_TOKEN') and os.environ.get('ADDON_PROFILE'), 'Skipping since we have no credentials.')
1923
class TestApi(unittest.TestCase):
@@ -50,6 +54,18 @@ def test_search(self):
5054
results = self.api.do_search('huis')
5155
self.assertIsInstance(results, list)
5256

57+
def test_get_program(self):
58+
results = self.api.get_program(EXAMPLE_PROGRAM)
59+
self.assertIsInstance(results, Program)
60+
61+
def test_get_movie(self):
62+
results = self.api.get_movie(EXAMPLE_MOVIE)
63+
self.assertIsInstance(results, Movie)
64+
65+
def test_get_episode(self):
66+
results = self.api.get_episode(EXAMPLE_EPISODE)
67+
self.assertIsInstance(results, Episode)
68+
5369
def test_errors(self):
5470
with self.assertRaises(UnavailableException):
5571
self.api.get_movie('0')

tests/test_routing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
_LOGGER = logging.getLogger(__name__)
2020

21-
EXAMPLE_MOVIE = '9f33cbca-0321-4a2f-9ac4-374ff69e2c4e' # Gooische Vrouwen 2
21+
EXAMPLE_MOVIE = 'f384c9f1-e2dc-4f82-9954-a3f91589385a' # Niet schieten
2222
EXAMPLE_PROGRAM = '6382e070-c284-4538-b60a-44f337ba6157' # FC De Kampioenen
2323
EXAMPLE_EPISODE = '7c1c2b5c-de72-45d6-ab88-8dd63edddf43' # FC De Kampioenen S01E01
2424

0 commit comments

Comments
 (0)