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