1#!/usr/bin/env python3 2# -*- coding: UTF-8 -*- 3 4import xbmcplugin,xbmcgui,xbmc,xbmcaddon 5import os,sys,urllib 6 7def get_params(): 8 param=[] 9 paramstring=sys.argv[2] 10 if len(paramstring)>=2: 11 params=sys.argv[2] 12 cleanedparams=params.replace('?','') 13 if (params[len(params)-1]=='/'): 14 params=params[0:len(params)-2] 15 pairsofparams=cleanedparams.split('&') 16 param={} 17 for i in range(len(pairsofparams)): 18 splitparams={} 19 splitparams=pairsofparams[i].split('=') 20 if (len(splitparams))==2: 21 param[splitparams[0]]=splitparams[1] 22 23 return param 24 25 26params=get_params() 27 28action=urllib.unquote_plus(params["action"]) 29 30if action == 'find': 31 year = 0 32 title=urllib.unquote_plus(params["title"]) 33 try: 34 year=int(urllib.unquote_plus(params["year"])) 35 except: 36 pass 37 38 print('Find TV show with title %s from year %i' %(title, int(year))) 39 liz=xbmcgui.ListItem('Demo show 1', thumbnailImage='DefaultVideo.png', offscreen=True) 40 liz.setProperty('relevance', '0.5') 41 xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url="/path/to/show", listitem=liz, isFolder=True) 42 liz=xbmcgui.ListItem('Demo show 2', thumbnailImage='DefaultVideo.png', offscreen=True) 43 liz.setProperty('relevance', '0.3') 44 xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url="/path/to/show2", listitem=liz, isFolder=True) 45elif action == 'getdetails': 46 url=urllib.unquote_plus(params["url"]) 47 if url == '/path/to/show': 48 liz=xbmcgui.ListItem('Demo show 1', offscreen=True) 49 liz.setInfo('video', 50 {'title': 'Demo show 1', 51 'originaltitle': 'Demo shåvv 1', 52 'sorttitle': '2', 53 'userrating': 5, 54 'plotoutline': 'Outline yo', 55 'plot': 'Plot yo', 56 'tagline': 'Tag yo', 57 'duration': 110, 58 'mpaa': 'T', 59 'trailer': '/home/akva/fluffy/bunnies.mkv', 60 'genre': ['Action', 'Comedy'], 61 'country': ['Norway', 'Sweden', 'China'], 62 'credits': ['None', 'Want', 'To Admit It'], 63 'director': ['spiff', 'spiff2'], 64 'studio': ['Studio1', 'Studio2'], 65 'dateadded': '2016-01-01', 66 'premiered': '2015-01-01', 67 'aired': '2007-01-01', 68 'status': 'Cancelled', 69 'episodeguide': '/path/to/show/guide', 70 'tag': ['Family', 'Mom <3'] 71 }) 72 liz.setRating("imdb", 9, 100000, True ) 73 liz.setRating("tvdb", 8.9, 1000) 74 liz.setUniqueIDs({ 'imdb': 'tt8938399', 'tvdb' : '9837493' }, 'tvdb') 75 liz.addSeason(1, 'Horrible') 76 liz.addSeason(2, 'Crap') 77 liz.setCast([{'name': 'spiff', 'role': 'himself', 'thumbnail': '/home/akva/Pictures/fish.jpg', 'order': 2}, 78 {'name': 'monkey', 'role': 'orange', 'thumbnail': '/home/akva/Pictures/coffee.jpg', 'order': 1}]) 79 liz.addAvailableArtwork('DefaultBackFanart.png', 'banner') 80 liz.addAvailableArtwork('/home/akva/Pictures/hawaii-shirt.png', 'poster') 81 liz.setAvailableFanart([{'image': 'DefaultBackFanart.png', 'preview': 'DefaultBackFanart.png'}, 82 {'image': '/home/akva/Pictures/hawaii-shirt.png', 'preview': '/home/akva/Pictures/hawaii-shirt.png'}]) 83 xbmcplugin.setResolvedUrl(handle=int(sys.argv[1]), succeeded=True, listitem=liz) 84elif action == 'getepisodelist': 85 url=urllib.unquote_plus(params["url"]) 86 print('in here yo ' + url) 87 if url == '/path/to/show/guide': 88 liz=xbmcgui.ListItem('Demo Episode 1x1', offscreen=True) 89 liz.setInfo('video', 90 {'title': 'Demo Episode 1', 91 'season': 1, 92 'episode': 1, 93 'aired': '2015-01-01' 94 }) 95 liz.addAvailableArtwork('/path/to/episode1','banner') 96 xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url="/path/to/episode1", listitem=liz, isFolder=False) 97 liz=xbmcgui.ListItem('Demo Episode 2x2', offscreen=True) 98 liz.setInfo('video', 99 {'title': 'Demo Episode 2', 100 'season': 2, 101 'episode': 2, 102 'aired': '2014-01-01' 103 }) 104 liz.addAvailableArtwork('/path/to/episode2','banner') 105 #liz.setProperty('video.sub_episode', '1') 106 xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url="/path/to/episode2", listitem=liz, isFolder=False) 107elif action == 'getepisodedetails': 108 url=urllib.unquote_plus(params["url"]) 109 if url == '/path/to/episode1': 110 liz=xbmcgui.ListItem('Demo Episode 1', offscreen=True) 111 liz.setInfo('video', 112 {'title': 'Demo Episode 1', 113 'originaltitle': 'Demo æpisod 1x1', 114 'sorttitle': '2', 115 'episode': 1, 116 'season': 1, 117 'userrating': 5, 118 'plotoutline': 'Outline yo', 119 'plot': 'Plot yo', 120 'tagline': 'Tag yo', 121 'duration': 110, 122 'mpaa': 'T', 123 'trailer': '/home/akva/fluffy/unicorns.mkv', 124 'genre': ['Action', 'Comedy'], 125 'country': ['Norway', 'Sweden', 'China'], 126 'credits': ['None', 'Want', 'To Admit It'], 127 'director': ['spiff', 'spiff2'], 128 'studio': ['Studio1', 'Studio2'], 129 'dateadded': '2016-01-01', 130 'premiered': '2015-01-01', 131 'aired': '2007-01-01', 132 'tag': ['Family', 'Dad <3'] 133 }) 134 liz.setRating("imdb", 9, 100000, True ) 135 liz.setRating("tvdb", 8.9, 1000) 136 liz.setUniqueIDs({ 'tvdb': '3894', 'imdb' : 'tt384940' }, 'tvdb') 137 liz.addSeason(1, 'Horrible') 138 liz.addSeason(2, 'Crap') 139 liz.setCast([{'name': 'spiff', 'role': 'himself', 'thumbnail': '/home/akva/Pictures/fish.jpg', 'order': 2}, 140 {'name': 'monkey', 'role': 'orange', 'thumbnail': '/home/akva/Pictures/coffee.jpg', 'order': 1}]) 141 liz.addAvailableArtwork('DefaultBackFanart.png', 'banner') 142 liz.addAvailableArtwork('/home/akva/Pictures/hawaii-shirt.png', 'poster') 143 liz.setAvailableFanart([{'image': 'DefaultBackFanart.png', 'preview': 'DefaultBackFanart.png'}, 144 {'image': '/home/akva/Pictures/hawaii-shirt.png', 'preview': '/home/akva/Pictures/hawaii-shirt.png'}]) 145 xbmcplugin.setResolvedUrl(handle=int(sys.argv[1]), succeeded=True, listitem=liz) 146 elif url == '/path/to/episode2': 147 liz=xbmcgui.ListItem('Demo Episode 2', offscreen=True) 148 liz.setInfo('video', 149 {'title': 'Demo Episode 2', 150 'originaltitle': 'Demo æpisod 2x2', 151 'sorttitle': '1', 152 'episode': 2, 153 'season': 2, 154 'userrating': 8, 155 'plotoutline': 'Outline yo', 156 'plot': 'Plot yo', 157 'tagline': 'Tag yo', 158 'duration': 110, 159 'mpaa': 'T', 160 'trailer': '/home/akva/fluffy/puppies.mkv', 161 'genre': ['Action', 'Comedy'], 162 'country': ['Norway', 'Sweden', 'China'], 163 'credits': ['None', 'Want', 'To Admit It'], 164 'director': ['spiff', 'spiff2'], 165 'studio': ['Studio1', 'Studio2'], 166 'dateadded': '2016-01-01', 167 'premiered': '2015-01-01', 168 'aired': '2007-01-01', 169 'tag': ['Something', 'Else'] 170 }) 171 liz.setRating("imdb", 7, 25457, True ) 172 liz.setRating("tvdb", 8.1, 5478) 173 liz.setUniqueIDs({ 'tvdb': '3894', 'imdb' : 'tt384940' }) 174 liz.addSeason(1, 'Horrible') 175 liz.addSeason(2, 'Crap') 176 liz.setCast([{'name': 'spiff', 'role': 'himself', 'thumbnail': '/home/akva/Pictures/fish.jpg', 'order': 2}, 177 {'name': 'monkey', 'role': 'orange', 'thumbnail': '/home/akva/Pictures/coffee.jpg', 'order': 1}]) 178 liz.addAvailableArtwork('DefaultBackFanart.png','banner') 179 liz.addAvailableArtwork('/home/akva/Pictures/hawaii-shirt.png','poster') 180 liz.setAvailableFanart([{'image': 'DefaultBackFanart.png', 'preview': 'DefaultBackFanart.png'}, 181 {'image': '/home/akva/Pictures/hawaii-shirt.png', 'preview': '/home/akva/Pictures/hawaii-shirt.png'}]) 182 xbmcplugin.setResolvedUrl(handle=int(sys.argv[1]), succeeded=True, listitem=liz) 183elif action == 'nfourl': 184 nfo=urllib.unquote_plus(params["nfo"]) 185 print 'Find url from nfo file' 186 liz=xbmcgui.ListItem('Demo show 1', offscreen=True) 187 xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url="/path/to/show", listitem=liz, isFolder=True) 188 189 190 191 192xbmcplugin.endOfDirectory(int(sys.argv[1])) 193