Skip to content

Commit

Permalink
Fix manage favorites (#931)
Browse files Browse the repository at this point in the history
  • Loading branch information
mediaminister authored Jan 21, 2022
1 parent 2b5c162 commit e4c4096
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 16 deletions.
17 changes: 8 additions & 9 deletions resources/lib/favorites.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,24 +192,23 @@ def _generate_favorites_dict(favorites_json):

def manage(self):
"""Allow the user to unselect favorites to be removed from the listing"""
from utils import url_to_program
self.refresh(ttl=0)
if not self._favorites:
ok_dialog(heading=localize(30418), message=localize(30419)) # No favorites found
return

def by_title(item):
def by_title(tup):
"""Sort by title"""
return item.get('value').get('title')
_, value = tup
return value.get('title')

items = [dict(program=url_to_program(value.get('value').get('programUrl')),
title=unquote(value.get('value').get('title')),
enabled=value.get('value').get('isFavorite')) for value in list(sorted(list(self._favorites.values()), key=by_title))]
items = [dict(program_id=value.get('program_id'), program_name=key,
title=unquote(value.get('title'))) for key, value in sorted(self._favorites.items(), key=by_title)]
titles = [item['title'] for item in items]
preselect = [idx for idx in range(0, len(items) - 1) if items[idx]['enabled']]
preselect = list(range(0, len(items)))
selected = multiselect(localize(30420), options=titles, preselect=preselect) # Please select/unselect to follow/unfollow
if selected is not None:
for idx in set(preselect).difference(set(selected)):
self.unfollow(program_id=None, program_name=items[idx]['program'], title=items[idx]['title'])
self.unfollow(program_name=items[idx]['program_name'], title=items[idx]['title'], program_id=items[idx]['program_id'])
for idx in set(selected).difference(set(preselect)):
self.follow(program_id=None, program_name=items[idx]['program'], title=items[idx]['title'])
self.follow(program_name=items[idx]['program_name'], title=items[idx]['title'], program_id=items[idx]['program_id'])
2 changes: 1 addition & 1 deletion resources/lib/resumepoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ def get_total(self, video_id):

def watchlater_ids(self):
"""Return all watchlater episode_id's"""
return self._watchlater.keys()
return list(self._watchlater.keys())

def resumepoints_ids(self):
"""Return all ids that have not been finished watching"""
Expand Down
7 changes: 1 addition & 6 deletions resources/lib/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from xbmc import Monitor
from apihelper import ApiHelper
from favorites import Favorites
from kodiutils import container_refresh, invalidate_caches, log
from kodiutils import container_refresh, log
from playerinfo import PlayerInfo
from resumepoints import ResumePoints
from tokenresolver import TokenResolver
Expand Down Expand Up @@ -68,11 +68,6 @@ def onSettingsChanged(self): # pylint: disable=invalid-name
log(1, 'Settings changed')
TokenResolver().refresh_login()

# Delete user-related caches
invalidate_caches(
'continue-*.json', 'favorites.json', 'my-offline-*.json', 'my-recent-*.json',
'resume_points.json', 'watchlater.json', 'watchlater-*.json')

# Init watching activity again when settings change
self.init_watching_activity()

Expand Down

0 comments on commit e4c4096

Please sign in to comment.