@@ -113,7 +113,7 @@ def getTitle(self):
113
113
tries += 1
114
114
title = xbmc .getInfoLabel ('MusicPlayer.Title' )
115
115
if title is None or title == '' :
116
- return 'Kodi cannot detect title'
116
+ return u 'Kodi cannot detect title'
117
117
else :
118
118
return title
119
119
elif self .isPlayingVideo ():
@@ -137,46 +137,46 @@ def getTitle(self):
137
137
title = ''
138
138
else :
139
139
try :
140
- title = ret ['result' ]['item' ]['title' ]
140
+ title = ret [u 'result' ][u 'item' ][u 'title' ]
141
141
except KeyError :
142
- title = 'Kodi cannot detect title'
142
+ title = u 'Kodi cannot detect title'
143
143
else :
144
- if title == '' :
145
- title = ret ['result' ]['item' ]['label' ]
146
- if title == '' :
147
- title = 'Kodi cannot detect title'
144
+ if title == u '' :
145
+ title = ret [u 'result' ][u 'item' ][u 'label' ]
146
+ if title == u '' :
147
+ title = u 'Kodi cannot detect title'
148
148
return title
149
149
else :
150
150
return title
151
151
else :
152
- return 'Kodi cannot detect title - none playing'
152
+ return u 'Kodi cannot detect title - none playing'
153
153
154
154
def getAudioInfo (self , playerid ):
155
155
try :
156
156
info = json .loads (xbmc .executeJSONRPC (
157
157
'{"jsonrpc": "2.0", "method": "Player.GetItem", "params": { "properties": ["title", "album",'
158
158
' "artist", "duration", "file", "streamdetails"], "playerid": %s }, "id": "AudioGetItem"}'
159
159
% playerid ))['result' ]['item' ]
160
- if 'artist' in info .keys ():
161
- t = info ['artist' ]
162
- if isinstance (t , list ):
163
- info ['artist' ] = t [0 ]
160
+ if u 'artist' in info .keys ():
161
+ t = info [u 'artist' ]
162
+ if isinstance (t , list ) and len ( t ) > 0 :
163
+ info [u 'artist' ] = t [0 ]
164
164
elif isinstance (t , unicode ):
165
165
if t != u'' :
166
- info ['artist' ] = t
166
+ info [u 'artist' ] = t
167
167
else :
168
- info ['artist' ] = u'unknown'
168
+ info [u 'artist' ] = u'unknown'
169
169
else :
170
- info ['artist' ] = u'unknown'
170
+ info [u 'artist' ] = u'unknown'
171
171
else :
172
- info ['artist' ] = u'unknown'
173
- items = ['duration' , 'id' , 'label' , 'type' ]
172
+ info [u 'artist' ] = u'unknown'
173
+ items = [u 'duration' , u 'id' , u 'label' , u 'type' ]
174
174
for item in items :
175
175
try :
176
176
del info [item ]
177
177
except KeyError :
178
178
pass
179
- info ['mediaType' ] = 'audio'
179
+ info [u 'mediaType' ] = u 'audio'
180
180
except RuntimeError :
181
181
self .info = {}
182
182
else :
@@ -191,43 +191,61 @@ def getVideoInfo(self, playerid):
191
191
except RuntimeError :
192
192
self .info = {}
193
193
else :
194
- items = ['label' , 'id' , 'tvshowid' ]
194
+ items = [u 'label' , u 'id' , u 'tvshowid' ]
195
195
for item in items :
196
196
try :
197
197
del info [item ]
198
198
except KeyError :
199
199
pass
200
- items = {'mediaType' : 'type' , 'fileName' : 'file' }
200
+ items = {u 'mediaType' : u 'type' , u 'fileName' : u 'file' }
201
201
for item in items .keys ():
202
202
try :
203
203
t = items [item ]
204
204
info [item ] = info .pop (t , 'unknown' )
205
205
except KeyError :
206
- info [item ] = 'unknown'
206
+ info [item ] = u 'unknown'
207
207
if info ['mediaType' ] != 'musicvideo' :
208
- items = ['artist' , 'album' ]
208
+ items = [u 'artist' , u 'album' ]
209
209
for item in items :
210
210
try :
211
211
del info [item ]
212
212
except KeyError :
213
213
pass
214
214
else :
215
- info ['artist' ] = info ['artist' ][0 ]
216
- if 'streamdetails' in info .keys ():
217
- sd = info .pop ('streamdetails' , {})
218
- info ['stereomode' ] = sd ['video' ][0 ]['stereomode' ]
219
- info ['width' ] = str (sd ['video' ][0 ]['width' ])
220
- info ['height' ] = str (sd ['video' ][0 ]['height' ])
221
- info ['aspectRatio' ] = str (int ((sd ['video' ][0 ]['aspect' ] * 100.0 ) + 0.5 ) / 100.0 )
222
- if info ['mediaType' ] == u'episode' :
223
- items = ['episode' , 'season' ]
215
+ try :
216
+ info [u'artist' ] = info [u'artist' ][0 ]
217
+ except (KeyError , IndexError ):
218
+ info [u'artist' ] = u'unknown'
219
+ if u'streamdetails' in info .keys ():
220
+ sd = info .pop (u'streamdetails' , {})
221
+ try :
222
+ info [u'stereomode' ] = sd [u'video' ][0 ][u'stereomode' ]
223
+ except (KeyError , IndexError ):
224
+ info [u'stereomode' ] = u'unknown'
225
+ else :
226
+ if info [u'stereomode' ] == u'' :
227
+ info [u'stereomode' ] = u'unknown'
228
+ try :
229
+ info [u'width' ] = unicode (sd [u'video' ][0 ][u'width' ])
230
+ except (KeyError , IndexError ):
231
+ info [u'width' ] = u'unknown'
232
+ try :
233
+ info [u'height' ] = unicode (sd [u'video' ][0 ][u'height' ])
234
+ except (KeyError , IndexError ):
235
+ info [u'height' ] = u'unknown'
236
+ try :
237
+ info [u'aspectRatio' ] = unicode (int ((sd [u'video' ][0 ][u'aspect' ] * 100.0 ) + 0.5 ) / 100.0 )
238
+ except (KeyError , IndexError ):
239
+ info [u'aspectRatio' ] = u'unknown'
240
+ if info [u'mediaType' ] == u'episode' :
241
+ items = [u'episode' , u'season' ]
224
242
for item in items :
225
243
try :
226
- info [item ] = str (info [item ]).zfill (2 )
244
+ info [item ] = unicode (info [item ]).zfill (2 )
227
245
except KeyError :
228
- info [item ] = 'unknown'
246
+ info [item ] = u 'unknown'
229
247
else :
230
- items = ['episode' , 'season' , 'showtitle' ]
248
+ items = [u 'episode' , u 'season' , u 'showtitle' ]
231
249
for item in items :
232
250
try :
233
251
del info [item ]
@@ -261,52 +279,52 @@ def getInfo(self):
261
279
self .info = {}
262
280
263
281
def rectifyUnknowns (self ):
264
- items = {'filename ' : self .getPlayingFileX , 'aspectRatio' : self .getAspectRatio , 'height' : self .getResoluion ,
265
- 'title' : self .getTitle }
282
+ items = {u'fileName ' : self .getPlayingFileX , u 'aspectRatio' : self .getAspectRatio , u 'height' : self .getResoluion ,
283
+ u 'title' : self .getTitle }
266
284
for item in items .keys ():
267
285
if item not in self .info .keys ():
268
286
self .info [item ] = items [item ]()
269
287
else :
270
288
try :
271
- if self .info [item ] == '' or self .info [item ] == 'unknown' :
289
+ if self .info [item ] == '' or self .info [item ] == u 'unknown' :
272
290
self .info [item ] = items [item ]()
273
291
except KeyError :
274
292
pass
275
293
pt = self .playing_type ()
276
- if 'mediaType' not in self .info .keys ():
277
- self .info ['mediaType' ] = pt
294
+ if u 'mediaType' not in self .info .keys ():
295
+ self .info [u 'mediaType' ] = pt
278
296
else :
279
297
try :
280
- if pt != 'unknown' and self .info ['mediaType' ] != pt :
281
- self .info ['mediaType' ] = pt
298
+ if pt != u 'unknown' and self .info [u 'mediaType' ] != pt :
299
+ self .info [u 'mediaType' ] = pt
282
300
except KeyError :
283
301
pass
284
302
285
303
def getPlayingFileX (self ):
286
304
try :
287
305
fn = self .getPlayingFile ()
288
306
except RuntimeError :
289
- fn = 'unknown'
307
+ fn = u 'unknown'
290
308
if fn is None or fn == '' :
291
- fn = 'unknown'
309
+ fn = u 'unknown'
292
310
return xbmc .translatePath (fn )
293
311
294
312
@staticmethod
295
313
def getAspectRatio ():
296
314
ar = xbmc .getInfoLabel ("VideoPlayer.VideoAspect" )
297
315
if ar is None :
298
- ar = 'unknown'
316
+ ar = u 'unknown'
299
317
elif ar == '' :
300
- ar = 'unknown'
318
+ ar = u 'unknown'
301
319
return str (ar )
302
320
303
321
@staticmethod
304
322
def getResoluion ():
305
323
vr = xbmc .getInfoLabel ("VideoPlayer.VideoResolution" )
306
324
if vr is None :
307
- vr = 'unknown'
325
+ vr = u 'unknown'
308
326
elif vr == '' :
309
- vr = 'unknown'
327
+ vr = u 'unknown'
310
328
return str (vr )
311
329
312
330
def onPlayBackStarted (self ):
0 commit comments