77import json
88import re
99import logging
10+ from typing import Tuple , List , Dict , Union , Optional
1011from resources .lib import utilities
1112
1213
1920
2021
2122def notification (
22- header : str , message : str , time = 5000 , icon = __addon__ .getAddonInfo ("icon" )
23- ):
23+ header : str , message : str , time : int = 5000 , icon : str = __addon__ .getAddonInfo ("icon" )
24+ ) -> None :
2425 xbmcgui .Dialog ().notification (header , message , icon , time )
2526
2627
27- def showSettings ():
28+ def showSettings () -> None :
2829 __addon__ .openSettings ()
2930
3031
31- def getSetting (setting ) :
32+ def getSetting (setting : str ) -> str :
3233 return __addon__ .getSetting (setting ).strip ()
3334
3435
35- def setSetting (setting , value ) :
36+ def setSetting (setting : str , value : Union [ str , int , float , bool ]) -> None :
3637 __addon__ .setSetting (setting , str (value ))
3738
3839
39- def getSettingAsBool (setting ) :
40+ def getSettingAsBool (setting : str ) -> bool :
4041 return getSetting (setting ).lower () == "true"
4142
4243
43- def getSettingAsFloat (setting ) :
44+ def getSettingAsFloat (setting : str ) -> float :
4445 try :
4546 return float (getSetting (setting ))
4647 except ValueError :
4748 return 0
4849
4950
50- def getSettingAsInt (setting ) :
51+ def getSettingAsInt (setting : str ) -> int :
5152 try :
5253 return int (getSettingAsFloat (setting ))
5354 except ValueError :
5455 return 0
5556
5657
57- def getString (string_id ) :
58+ def getString (string_id : int ) -> str :
5859 return __addon__ .getLocalizedString (string_id )
5960
6061
61- def kodiJsonRequest (params ) :
62+ def kodiJsonRequest (params : Dict ) -> Optional [ Union [ Dict , List ]] :
6263 data = json .dumps (params )
6364 request = xbmc .executeJSONRPC (data )
6465
@@ -131,7 +132,7 @@ def checkExclusion(fullpath: str) -> bool:
131132 return found
132133
133134
134- def kodiRpcToTraktMediaObject (type , data , mode = "collected" ):
135+ def kodiRpcToTraktMediaObject (type : str , data : Dict , mode : str = "collected" ) -> Optional [ Dict ] :
135136 if type == "show" :
136137 if "uniqueid" in data :
137138 data ["ids" ] = data .pop ("uniqueid" )
@@ -230,7 +231,7 @@ def kodiRpcToTraktMediaObject(type, data, mode="collected"):
230231 return
231232
232233
233- def kodiRpcToTraktMediaObjects (data , mode = "collected" ):
234+ def kodiRpcToTraktMediaObjects (data : Dict , mode : str = "collected" ) -> Optional [ List ] :
234235 if "tvshows" in data :
235236 shows = data ["tvshows" ]
236237
@@ -270,7 +271,7 @@ def kodiRpcToTraktMediaObjects(data, mode="collected"):
270271 return
271272
272273
273- def getShowDetailsFromKodi (showID , fields ) :
274+ def getShowDetailsFromKodi (showID : int , fields : List ) -> Optional [ Dict ] :
274275 result = kodiJsonRequest (
275276 {
276277 "jsonrpc" : "2.0" ,
@@ -292,7 +293,7 @@ def getShowDetailsFromKodi(showID, fields):
292293 return None
293294
294295
295- def getSeasonDetailsFromKodi (seasonID , fields ) :
296+ def getSeasonDetailsFromKodi (seasonID : int , fields : List ) -> Optional [ Dict ] :
296297 result = kodiJsonRequest (
297298 {
298299 "jsonrpc" : "2.0" ,
@@ -317,7 +318,7 @@ def getSeasonDetailsFromKodi(seasonID, fields):
317318# get a single episode from kodi given the id
318319
319320
320- def getEpisodeDetailsFromKodi (libraryId , fields ) :
321+ def getEpisodeDetailsFromKodi (libraryId : int , fields : List ) -> Optional [ Dict ] :
321322 result = kodiJsonRequest (
322323 {
323324 "jsonrpc" : "2.0" ,
@@ -358,7 +359,7 @@ def getEpisodeDetailsFromKodi(libraryId, fields):
358359# get a single movie from kodi given the id
359360
360361
361- def getMovieDetailsFromKodi (libraryId , fields ) :
362+ def getMovieDetailsFromKodi (libraryId : int , fields : List ) -> Optional [ Dict ] :
362363 result = kodiJsonRequest (
363364 {
364365 "jsonrpc" : "2.0" ,
@@ -380,7 +381,7 @@ def getMovieDetailsFromKodi(libraryId, fields):
380381 return None
381382
382383
383- def checkAndConfigureProxy ():
384+ def checkAndConfigureProxy () -> Optional [ str ] :
384385 proxyActive = kodiJsonRequest (
385386 {
386387 "jsonrpc" : "2.0" ,
@@ -480,7 +481,7 @@ def checkAndConfigureProxy():
480481 return None
481482
482483
483- def getMediaType ():
484+ def getMediaType () -> Optional [ str ] :
484485 listType = xbmc .getInfoLabel ("ListItem.DBTYPE" )
485486
486487 xbmc .log ("list item type: %s" % listType , xbmc .LOGINFO )
@@ -497,7 +498,7 @@ def getMediaType():
497498 return None
498499
499500
500- def getInfoLabelDetails (result ) :
501+ def getInfoLabelDetails (result : Dict ) -> Tuple [ str , Dict ] :
501502 type = result ["item" ]["type" ]
502503 data = {"action" : "started" }
503504 # check type of item
0 commit comments