Skip to content

Commit 1bfc560

Browse files
committed
Further cleanups
1 parent 3f519ca commit 1bfc560

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

lib/srgssr.py

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ def build_main_menu(self, identifiers=[]):
236236
'identifier': 'Topics',
237237
'name': self.plugin_language(30058),
238238
'mode': 13,
239-
'displayItem': False, # TODO: not (yet) supported
239+
'displayItem': False, # not (yet) supported
240240
'icon': self.icon,
241241
}, {
242242
# Most searched TV shows
@@ -258,14 +258,14 @@ def build_main_menu(self, identifiers=[]):
258258
'identifier': 'Live_TV',
259259
'name': self.plugin_language(30072),
260260
'mode': 26,
261-
'displayItem': self.get_boolean_setting('Live_TV'),
261+
'displayItem': False, # currently not supported
262262
'icon': self.icon,
263263
}, {
264264
# SRF.ch live
265265
'identifier': 'SRF_Live',
266266
'name': self.plugin_language(30070),
267267
'mode': 18,
268-
'displayItem': self.get_boolean_setting('SRF_Live'),
268+
'displayItem': False, # currently not supported
269269
'icon': self.icon,
270270
}, {
271271
# Search
@@ -315,8 +315,8 @@ def build_folder_menu(self, folders):
315315
listitem=list_item, isFolder=True)
316316

317317
# TODO: check parameters
318-
def build_menu_apiv3(self, queries, mode, page=None, page_hash=None,
319-
name='', whitelist_ids=None):
318+
def build_menu_apiv3(self, queries, mode=1000, page=1, page_hash=None,
319+
whitelist_ids=None):
320320
"""
321321
Builds a menu based on the API v3, which is supposed to be more stable
322322
@@ -325,7 +325,6 @@ def build_menu_apiv3(self, queries, mode, page=None, page_hash=None,
325325
mode -- mode for the URL of the next folder
326326
page -- current page
327327
page_hash -- cursor for fetching the next items
328-
name -- name of the list
329328
whitelist_ids -- list of ids that should be displayed, if it is set
330329
to `None` it will be ignored
331330
"""
@@ -365,24 +364,20 @@ def build_menu_apiv3(self, queries, mode, page=None, page_hash=None,
365364
self.log('No media found.')
366365
return
367366

368-
if 'data' in data:
369-
items = data['data']
370-
elif 'results' in data:
371-
items = data['results']
372-
else:
373-
items = data
367+
items = utils.try_get(data, 'data', list, []) or \
368+
utils.try_get(data, 'results', list, []) or data
374369

375370
for item in items:
376371
self.build_entry_apiv3(item, whitelist_ids=whitelist_ids)
377372

378373
if cursor:
379374
if page:
380375
url = self.build_url(
381-
mode=1000, name=queries, page=int(page)+1,
376+
mode=mode, name=queries, page=int(page)+1,
382377
page_hash=cursor)
383378
else:
384379
url = self.build_url(
385-
mode=1000, name=queries, page=2, page_hash=cursor)
380+
mode=mode, name=queries, page=2, page_hash=cursor)
386381

387382
next_item = xbmcgui.ListItem(
388383
label='>> ' + LANGUAGE(30073)) # Next page
@@ -411,8 +406,7 @@ def build_all_shows_menu(self, favids=None):
411406
the shows on that list will be build. (default: None)
412407
"""
413408
self.log('build_all_shows_menu')
414-
self.build_menu_apiv3(
415-
'shows', None, whitelist_ids=favids) # TODO: mode?
409+
self.build_menu_apiv3('shows', whitelist_ids=favids)
416410

417411
def build_favourite_shows_menu(self):
418412
"""
@@ -425,15 +419,14 @@ def build_topics_menu(self):
425419
"""
426420
Builds a menu containing the topics from the SRGSSR API.
427421
"""
428-
self.build_menu_apiv3('topics', None) # TODO: mode?
422+
self.build_menu_apiv3('topics')
429423

430424
def build_most_searched_shows_menu(self):
431425
"""
432426
Builds a menu containing the most searched TV shows from
433427
the SRGSSR API.
434428
"""
435-
self.build_menu_apiv3(
436-
'search/most-searched-tv-shows', None) # TODO: mode?
429+
self.build_menu_apiv3('search/most-searched-tv-shows')
437430

438431
def build_newest_favourite_menu(self, page=1):
439432
"""
@@ -449,7 +442,7 @@ def build_newest_favourite_menu(self, page=1):
449442
queries = []
450443
for sid in show_ids:
451444
queries.append('videos-by-show-id?showId=' + sid)
452-
return self.build_menu_apiv3(queries, 12) # TODO: include page?
445+
return self.build_menu_apiv3(queries)
453446

454447
def extract_id_list(self, url, editor_picks=False):
455448
"""
@@ -585,8 +578,15 @@ def build_episode_menu(self, video_id, include_segments=True,
585578
# Generate a simple playable item for the video
586579
self.build_entry(json_segment, banner)
587580

588-
# TODO: docstring
589581
def build_entry_apiv3(self, data, whitelist_ids=None):
582+
"""
583+
Builds a entry from a APIv3 JSON data entry.
584+
585+
Keyword arguments:
586+
data -- The JSON entry
587+
whitelist_ids -- If not `None` only items with an id that is in that
588+
list will be generated (default: None)
589+
"""
590590
self.log('build_entry_apiv3: urn = %s' % utils.try_get(data, 'urn'))
591591
urn = data['urn']
592592
title = utils.try_get(data, 'title')
@@ -632,10 +632,15 @@ def build_entry_apiv3(self, data, whitelist_ids=None):
632632
self.handle, url, list_item, isFolder=True)
633633

634634
def build_menu_by_urn(self, urn):
635+
"""
636+
Builds a menu from an urn.
637+
638+
Keyword arguments:
639+
urn -- The urn (e.g. 'urn:srf:show:<id>' or 'urn:rts:video:<id>')
640+
"""
635641
id = urn.split(':')[-1]
636642
if 'show' in urn:
637-
self.build_menu_apiv3(
638-
f'videos-by-show-id?showId={id}', None) # TODO: mode
643+
self.build_menu_apiv3(f'videos-by-show-id?showId={id}')
639644
elif 'video' in urn:
640645
self.build_episode_menu(id)
641646
# TODO: Add 'topic'
@@ -820,7 +825,7 @@ def build_date_menu(self, date_string):
820825
# API v3 use the date in sortable format, i.e. year first
821826
elems = date_string.split('-')
822827
query = 'videos-by-date/%s-%s-%s' % (elems[2], elems[1], elems[0])
823-
return self.build_menu_apiv3(query, 0)
828+
return self.build_menu_apiv3(query)
824829

825830
def build_search_menu(self):
826831
"""
@@ -865,7 +870,6 @@ def build_recent_search_menu(self):
865870
xbmcplugin.addDirectoryItem(
866871
handle=self.handle, url=url, listitem=list_item, isFolder=True)
867872

868-
# TODO: investigate
869873
def build_search_media_menu(self, mode=28, name='', page=1, page_hash=''):
870874
"""
871875
Sets up a search for media. If called without name, a dialog will
@@ -903,8 +907,7 @@ def build_search_media_menu(self, mode=28, name='', page=1, page_hash=''):
903907

904908
query = f'{query}&mediaType={media_type}&includeAggregations=false'
905909
cursor = page_hash if page_hash else ''
906-
return self.build_menu_apiv3(query, mode, page_hash=cursor,
907-
name=query_string)
910+
return self.build_menu_apiv3(query, page_hash=cursor)
908911

909912
def get_auth_url(self, url, segment_data=None):
910913
"""

0 commit comments

Comments
 (0)