summaryrefslogtreecommitdiff
path: root/plugin.video.mediathekview/resources/lib/kodi/KodiAddon.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.video.mediathekview/resources/lib/kodi/KodiAddon.py')
-rw-r--r--plugin.video.mediathekview/resources/lib/kodi/KodiAddon.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/plugin.video.mediathekview/resources/lib/kodi/KodiAddon.py b/plugin.video.mediathekview/resources/lib/kodi/KodiAddon.py
new file mode 100644
index 0000000..f9c0cd7
--- /dev/null
+++ b/plugin.video.mediathekview/resources/lib/kodi/KodiAddon.py
@@ -0,0 +1,68 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Leo Moll and Dominik Schlösser
+#
+
+# -- Imports ------------------------------------------------
+import sys, urllib
+import xbmc, xbmcgui, xbmcaddon, xbmcplugin
+
+from resources.lib.kodi.KodiLogger import KodiLogger
+
+# -- Classes ------------------------------------------------
+class KodiAddon( KodiLogger ):
+
+ def __init__( self ):
+ self.addon = xbmcaddon.Addon()
+ self.addon_id = self.addon.getAddonInfo( 'id' )
+ self.icon = self.addon.getAddonInfo( 'icon' )
+ self.fanart = self.addon.getAddonInfo( 'fanart' )
+ self.version = self.addon.getAddonInfo( 'version' )
+ self.path = self.addon.getAddonInfo( 'path' )
+ self.datapath = xbmc.translatePath( self.addon.getAddonInfo('profile').decode('utf-8') )
+ self.language = self.addon.getLocalizedString
+ KodiLogger.__init__( self, self.addon_id, self.version )
+
+ def getSetting( self, setting_id ):
+ return self.addon.getSetting( setting_id )
+
+ def setSetting( self, setting_id, value ):
+ return self.addon.setSetting( setting_id, value )
+
+ def doAction( self, action ):
+ xbmc.executebuiltin( 'Action({})'.format( action ) )
+
+class KodiService( KodiAddon ):
+ def __init__( self ):
+ KodiAddon.__init__( self )
+
+class KodiPlugin( KodiAddon ):
+ def __init__( self ):
+ KodiAddon.__init__( self )
+ self.base_url = sys.argv[0]
+ self.addon_handle = int( sys.argv[1] )
+
+ def build_url( self, query ):
+ return self.base_url + '?' + urllib.urlencode( query )
+
+ def runPlugin( self, params ):
+ xbmc.executebuiltin( 'RunPlugin({})'.format( self.build_url( params ) ) )
+
+ def addActionItem( self, name, params ):
+ self.addDirectoryItem( name, params, False )
+
+ def addFolderItem( self, name, params ):
+ self.addDirectoryItem( name, params, True )
+
+ def addDirectoryItem( self, name, params, isFolder ):
+ if isinstance( name, int ):
+ name = self.language( name )
+ li = xbmcgui.ListItem( name )
+ xbmcplugin.addDirectoryItem(
+ handle = self.addon_handle,
+ url = self.build_url( params ),
+ listitem = li,
+ isFolder = isFolder
+ )
+
+ def endOfDirectory( self, succeeded = True, updateListing = False, cacheToDisc = True ):
+ xbmcplugin.endOfDirectory( self.addon_handle, succeeded, updateListing, cacheToDisc )