Release LazyTV - an unwatched TV Show playlist generator
#33
(2013-09-28, 00:26)Karnagious Wrote: Yep, the change is all made. I have found the json-rpc is slower but it isnt 30 times slower.

Are you doing lots of queries or just one for all the data and then having the script crunch the numbers?

Care to share the code?

In JSON-RPC I had multiple requests while in SQL I was able to roll all into one. Maybe I missed something and JSON-RPC could return everything in a single request as well?

Anyway here is the JSON code:
PHP Code:
def show_root_menu():
    
''' Show the plugin root menu. '''
    
json_query xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetTVShows", "params": { "properties": ["file","fanart","thumbnail","art","season"], "sort": { "order": "ascending", "method": "label" } }, "id": "libTvShows"}')
    
json_query unicode(json_query'utf-8'errors='ignore')
    
jsonobject simplejson.loads(json_query)
    if 
jsonobject.has_key('result') and jsonobject['result'].has_key('tvshows'):
        
tvshows jsonobject['result']['tvshows']
        for 
tvshow in tvshows:
            
#addDirectoryItem(name="Show "+tvshow['label'], url='videodb://2/2/'+str(tvshow['tvshowid']), isFolder=True,icon=tvshow['thumbnail'])
            # Search for season information
            
json_query_season xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method": "VideoLibrary.GetSeasons", "params": {"properties": ["season", "watchedepisodes","episode","showtitle","thumbnail","fanart"], "sort": { "method": "label" }, "tvshowid":%s }, "id": 1}' %tvshow['tvshowid'])
            
jsonobject_season simplejson.loads(json_query_season)
            if 
jsonobject_season['result'].has_key('seasons'):
                
seasons jsonobject_season['result']['seasons']
                for 
season in seasons:
                    
string='??'
                    
if season['episode']!=season['watchedepisodes'] and season['watchedepisodes']!=0:
                        
string='['+str(season['watchedepisodes'])+'/'+str(season['episode'])+']'
                        
addDirectoryItem(name=season['showtitle']+' - '+xbmc.getLocalizedString(20358)%season['season']+' '+string,
                            
url='videodb://2/2/'+str(tvshow['tvshowid'])+'/'+str(season['season']),isFolder=True,
                            
icon=season['thumbnail'],fanart=season['fanart'])

    
xbmcplugin.addSortMethodhandle=handlesortMethod=xbmcplugin.SORT_METHOD_TITLE,label2Mask="X%s" )
    
xbmcplugin.endOfDirectory(handle=handlesucceeded=True
And here the (much faster) SQL version:
PHP Code:
def show_root_menu():
    
''' Show the plugin root menu. '''
    
    
conn=sqlite.connect(xbmc.translatePath('special://database/MyVideos75.db'))
    
c=conn.cursor()
    
c.execute("SELECT   tvshow.c00 as name,tvshow.[idShow] as idshow, episode.c12 as season,"+
        
" NULLIF(COUNT(episode.c12), 0) AS totalCount,  COUNT(nullif(files.playCount,0)) AS watchedcount, ifnull(poster.url,''), ifnull(fanart.url,'')"+
        
" FROM tvshow"+
        
" LEFT JOIN episode ON    episode.idShow=tvshow.idShow"+
        
" LEFT JOIN files ON    files.idFile=episode.idFile"+
        
" left join seasons on seasons.[idShow]=tvshow.idShow and seasons.season=episode.c12"+
        
" left join art poster on seasons.idSeason=poster.media_id   and poster.media_type='season'"+
        
" left join art as fanart on tvshow.idShow=fanart.media_id and fanart.type='fanart'"+
        
" group by name,tvshow.idshow,episode.c12"+
        
" having (totalcount<>watchedcount and watchedcount<>0)")
    
row=c.fetchone()
    while 
row is not None:
        
addDirectoryItem(name=row[0]+' - '+xbmc.getLocalizedString(20358)%int(row[2])+' '+'['+str(row[4])+'/'+str(row[3])+']',
            
url='videodb://2/2/'+str(row[1])+'/'+str(row[2]),isFolder=True,icon=row[5],fanart=row[6])
        
row=c.fetchone()
    
conn.close()

    
xbmcplugin.endOfDirectory(handle=handlesucceeded=True
Reply


Messages In This Thread
RE: LazyTV - an unwatched TV Show playlist generator - by myce - 2013-10-01, 15:47
Works just with TV shows? - by [2ge] - 2015-02-20, 09:05
Clone error - by flutleflakes - 2016-02-03, 21:24
LazyTV request :) - by syralk - 2016-02-11, 17:59
[RELEASE] LazyTV - by Karnagious - 2014-03-29, 11:59
RE: [RELEASE] LazyTV - by EuphoricaL - 2014-03-30, 01:01
RE: [RELEASE] LazyTV - by Karnagious - 2014-03-31, 13:16
RE: [RELEASE] LazyTV - by liquidtoon - 2014-04-17, 14:23
RE: [RELEASE] LazyTV - by PatK - 2014-04-17, 18:20
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-20, 04:42
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-20, 12:18
RE: [RELEASE] LazyTV - by PatK - 2014-04-20, 17:49
RE: [RELEASE] LazyTV - by mtoddster - 2014-04-21, 01:35
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-21, 02:02
RE: [RELEASE] LazyTV - by thrak76 - 2014-04-23, 18:35
RE: [RELEASE] LazyTV - by psike - 2014-04-25, 17:46
RE: [RELEASE] LazyTV - by PatK - 2014-04-25, 22:23
Re: RE: [RELEASE] LazyTV - by bry - 2014-04-25, 22:24
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-26, 06:14
RE: [RELEASE] LazyTV - by psike - 2014-04-26, 11:23
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-26, 12:55
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-27, 16:17
RE: [RELEASE] LazyTV - by psike - 2014-04-27, 23:18
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-28, 01:48
RE: [RELEASE] LazyTV - by kiffmoore - 2014-04-28, 12:51
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-28, 15:49
RE: [RELEASE] LazyTV - by kiffmoore - 2014-04-28, 17:23
RE: [RELEASE] LazyTV - by psike - 2014-04-28, 22:41
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-29, 01:49
RE: [RELEASE] LazyTV - by Lunatixz - 2014-04-29, 01:54
RE: [RELEASE] LazyTV - by psike - 2014-04-29, 06:14
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-29, 09:20
RE: [RELEASE] LazyTV - by psike - 2014-04-29, 23:57
RE: [RELEASE] LazyTV - by Karnagious - 2014-04-30, 02:34
RE: [RELEASE] LazyTV - by psike - 2014-04-30, 22:24
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-01, 00:38
RE: [RELEASE] LazyTV - by psike - 2014-05-02, 08:27
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-02, 10:15
RE: [RELEASE] LazyTV - by psike - 2014-05-02, 10:27
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-02, 10:32
RE: [RELEASE] LazyTV - by psike - 2014-05-02, 10:37
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-02, 10:43
RE: [RELEASE] LazyTV - by psike - 2014-05-02, 11:12
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-02, 11:29
RE: [RELEASE] LazyTV - by psike - 2014-05-06, 12:03
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-06, 14:44
RE: [RELEASE] LazyTV - by psike - 2014-05-06, 15:22
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-06, 15:34
RE: [RELEASE] LazyTV - by psike - 2014-05-06, 20:22
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-07, 00:21
RE: [RELEASE] LazyTV - by hutton1494 - 2014-05-07, 00:57
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-07, 01:40
RE: [RELEASE] LazyTV - by psike - 2014-05-07, 05:35
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-07, 06:51
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-07, 15:18
RE: [RELEASE] LazyTV - by psike - 2014-05-07, 21:09
RE: [RELEASE] LazyTV - by psike - 2014-05-07, 23:17
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-08, 00:22
RE: [RELEASE] LazyTV - by psike - 2014-05-08, 05:59
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-08, 06:20
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-10, 09:41
RE: [RELEASE] LazyTV - by psike - 2014-05-10, 10:23
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-10, 11:19
RE: [RELEASE] LazyTV - by psike - 2014-05-10, 14:47
RE: [RELEASE] LazyTV - by Lunatixz - 2014-05-10, 20:22
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-11, 00:47
RE: [RELEASE] LazyTV - by Lunatixz - 2014-05-11, 01:12
RE: [RELEASE] LazyTV - by ridflea - 2014-05-15, 01:23
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 02:19
RE: [RELEASE] LazyTV - by ridflea - 2014-05-15, 03:27
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 04:11
RE: [RELEASE] LazyTV - by ridflea - 2014-05-15, 04:23
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 04:23
RE: [RELEASE] LazyTV - by ridflea - 2014-05-15, 04:25
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 04:29
RE: [RELEASE] LazyTV - by ridflea - 2014-05-15, 04:31
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 04:47
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 04:57
RE: [RELEASE] LazyTV - by ridflea - 2014-05-15, 05:56
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-15, 23:54
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-18, 00:34
RE: [RELEASE] LazyTV - by spectre4188 - 2014-05-19, 21:51
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-19, 23:38
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-23, 13:22
RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-24, 14:46
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-24, 15:12
RE: [RELEASE] LazyTV - by Martijn - 2014-05-24, 15:17
RE: [RELEASE] LazyTV - by Lunatixz - 2014-05-24, 15:26
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-24, 15:41
Re: RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-24, 15:49
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-24, 15:58
RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-24, 16:45
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-25, 00:10
RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-25, 02:22
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-25, 03:18
RE: [RELEASE] LazyTV - by tdhz77 - 2014-05-25, 07:34
Re: RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-25, 12:00
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-25, 12:35
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-25, 14:26
RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-25, 18:01
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-26, 00:04
Re: RE: [RELEASE] LazyTV - by Mafarricos - 2014-05-26, 02:01
RE: [RELEASE] LazyTV - by Skipmode A1 - 2014-05-28, 19:07
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-28, 23:57
RE: [RELEASE] LazyTV - by Skipmode A1 - 2014-05-29, 12:31
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-29, 13:38
RE: [RELEASE] LazyTV - by Skipmode A1 - 2014-05-29, 14:05
RE: [RELEASE] LazyTV - by Karnagious - 2014-05-29, 14:59
RE: [RELEASE] LazyTV - by Karnagious - 2014-06-15, 11:13
RE: [RELEASE] LazyTV - by BubbaLovesTv - 2014-07-21, 08:25
RE: [RELEASE] LazyTV - by Karnagious - 2014-07-21, 12:38
RE: [RELEASE] LazyTV - by BubbaLovesTv - 2014-07-22, 09:55
RE: [RELEASE] LazyTV - by Karnagious - 2014-07-22, 11:22
RE: [RELEASE] LazyTV - by BMStroh - 2014-08-04, 17:08
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-05, 00:06
RE: [RELEASE] LazyTV - by BMStroh - 2014-08-05, 22:56
RE: [RELEASE] LazyTV - by anarchybomb88 - 2014-08-06, 08:20
RE: [RELEASE] LazyTV - by BubbaLovesTv - 2014-08-06, 08:42
RE: [RELEASE] LazyTV - by aalwani - 2014-08-06, 11:17
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-06, 11:55
RE: [RELEASE] LazyTV - by echo - 2014-08-07, 15:18
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-07, 15:59
Re: RE: [RELEASE] LazyTV - by aalwani - 2014-08-08, 16:03
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-09, 04:23
RE: [RELEASE] LazyTV - by aalwani - 2014-08-09, 22:15
RE: [RELEASE] LazyTV - by aalwani - 2014-08-17, 18:24
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-18, 02:33
RE: [RELEASE] LazyTV - by un1versal - 2014-08-22, 09:55
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-22, 12:34
RE: [RELEASE] LazyTV - by dgcruzing - 2014-08-22, 12:53
RE: [RELEASE] LazyTV - by un1versal - 2014-08-22, 14:25
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-22, 15:20
RE: [RELEASE] LazyTV - by un1versal - 2014-08-22, 17:02
RE: [RELEASE] LazyTV - by Karnagious - 2014-08-23, 01:37
RE: [RELEASE] LazyTV - by un1versal - 2014-08-23, 12:19
RE: [RELEASE] LazyTV - by skimshady - 2014-10-27, 21:31
RE: [RELEASE] LazyTV - by Karnagious - 2014-10-27, 22:28
RE: [RELEASE] LazyTV - by arithine - 2014-10-30, 20:34
RE: [RELEASE] LazyTV - by zsleaf - 2014-11-26, 11:47
RE: [RELEASE] LazyTV - by Karnagious - 2014-11-26, 12:50
RE: [RELEASE] LazyTV - by zsleaf - 2014-11-27, 15:48
RE: [RELEASE] LazyTV - by Karnagious - 2014-11-27, 22:30
RE: [RELEASE] LazyTV - by zsleaf - 2014-11-28, 03:34
RE: [RELEASE] LazyTV - by Karnagious - 2014-11-28, 05:03
RE: [RELEASE] LazyTV - by zsleaf - 2014-11-28, 07:32
RE: [RELEASE] LazyTV - by Karnagious - 2014-11-28, 07:53
RE: [RELEASE] LazyTV - by Diskotechjam - 2014-12-07, 02:29
RE: [RELEASE] LazyTV - by Rumik - 2015-01-06, 17:11
RE: [RELEASE] LazyTV - by rjcogin - 2015-01-20, 18:21
RE: [RELEASE] LazyTV - by Karnagious - 2015-01-21, 01:14
RE: [RELEASE] LazyTV - by ramecex - 2015-02-08, 17:48
RE: [RELEASE] LazyTV - by onlyyou - 2015-02-12, 12:15
RE: [RELEASE] LazyTV - by Karnagious - 2015-02-17, 01:53
RE: [RELEASE] LazyTV - by Karnagious - 2015-02-17, 01:54
RE: [RELEASE] LazyTV - by ramecex - 2015-02-18, 00:24
RE: [RELEASE] LazyTV - by Karnagious - 2015-02-18, 00:57
RE: [RELEASE] LazyTV - by a6co1lostud - 2015-08-03, 17:53
RE: [RELEASE] LazyTV - by Karnagious - 2015-08-04, 02:14
RE: [RELEASE] LazyTV - by a6co1lostud - 2015-08-04, 14:52
RE: [RELEASE] LazyTV - by Karnagious - 2015-08-05, 00:38
RE: [RELEASE] LazyTV - by braz - 2015-08-06, 17:22
Lazy Tv - by Robertcm49 - 2023-01-25, 18:22
RE: Lazy Tv - by izprtxqkft - 2023-01-25, 18:34
RE: Lazy Tv - by Robertcm49 - 2023-01-26, 19:48
Lazy Tv - by DarrenHill - 2023-01-27, 17:25
Logout Mark Read Team Forum Stats Members Help
LazyTV - an unwatched TV Show playlist generator4