Add recently added filter

To ignore playcount, now supports

plugin://plugin.video.emby/?id=Tag&mode=recentepisodes&limit=25&filters=playcount
This commit is contained in:
angelblue05 2017-07-27 22:51:24 -05:00
parent b6346a49cf
commit 82ab2f2311
2 changed files with 14 additions and 9 deletions

View file

@ -44,7 +44,7 @@ class Main(object):
base_url = sys.argv[0] base_url = sys.argv[0]
path = sys.argv[2] path = sys.argv[2]
params = urlparse.parse_qs(path[1:]) params = urlparse.parse_qs(path[1:])
log.warn("Parameter string: %s", path) log.warn("Parameter string: %s params: %s", path, params)
try: try:
mode = params['mode'][0] mode = params['mode'][0]
except (IndexError, KeyError): except (IndexError, KeyError):
@ -111,7 +111,11 @@ class Main(object):
database_id = params.get('dbid') database_id = params.get('dbid')
action(item_id, database_id) action(item_id, database_id)
elif mode in ('nextup', 'inprogressepisodes', 'recentepisodes'): elif mode == 'recentepisodes':
limit = int(params['limit'][0])
action(item_id, limit, params.get('filters', [""])[0])
elif mode in ('nextup', 'inprogressepisodes'):
limit = int(params['limit'][0]) limit = int(params['limit'][0])
action(item_id, limit) action(item_id, limit)

View file

@ -1060,9 +1060,10 @@ def getInProgressEpisodes(tagname, limit):
xbmcplugin.endOfDirectory(handle=int(sys.argv[1])) xbmcplugin.endOfDirectory(handle=int(sys.argv[1]))
##### GET RECENT EPISODES FOR TAGNAME ##### ##### GET RECENT EPISODES FOR TAGNAME #####
def getRecentEpisodes(tagname, limit): def getRecentEpisodes(tagname, limit, filters=""):
count = 0 count = 0
filters = filters.split(',') if filters else []
# if the addon is called with recentepisodes parameter, # if the addon is called with recentepisodes parameter,
# we return the recentepisodes list of the given tagname # we return the recentepisodes list of the given tagname
xbmcplugin.setContent(int(sys.argv[1]), 'episodes') xbmcplugin.setContent(int(sys.argv[1]), 'episodes')
@ -1087,9 +1088,7 @@ def getRecentEpisodes(tagname, limit):
except (KeyError, TypeError): except (KeyError, TypeError):
pass pass
else: else:
allshowsIds = set() allshowsIds = set(item['tvshowid'] for item in items)
for item in items:
allshowsIds.add(item['tvshowid'])
query = { query = {
@ -1099,15 +1098,17 @@ def getRecentEpisodes(tagname, limit):
'params': { 'params': {
'sort': {'order': "descending", 'method': "dateadded"}, 'sort': {'order': "descending", 'method': "dateadded"},
'filter': {'operator': "lessthan", 'field': "playcount", 'value': "1"},
'properties': [ 'properties': [
"title", "playcount", "season", "episode", "showtitle", "plot", "title", "playcount", "season", "episode", "showtitle", "plot",
"file", "rating", "resume", "tvshowid", "art", "streamdetails", "file", "rating", "resume", "tvshowid", "art", "streamdetails",
"firstaired", "runtime", "cast", "writer", "dateadded", "lastplayed" "firstaired", "runtime", "cast", "writer", "dateadded", "lastplayed"
], ],
"limits": {"end": limit} "limits": {"end": limit*5}
} }
} }
if 'playcount' not in filters:
query['params']['filter'] = {'operator': "lessthan", 'field': "playcount", 'value': "1"}
result = xbmc.executeJSONRPC(json.dumps(query)) result = xbmc.executeJSONRPC(json.dumps(query))
result = json.loads(result) result = json.loads(result)
try: try: