jellyfin-kodi/default.py

127 lines
4.0 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
import xbmcaddon, xbmc
import os, sys
import urlparse
2015-05-03 15:39:12 +00:00
addon_ = xbmcaddon.Addon(id='plugin.video.emby')
addon_path = addon_.getAddonInfo('path').decode('utf-8')
base_resource_path = xbmc.translatePath(os.path.join(addon_path, 'resources', 'lib')).decode('utf-8')
sys.path.append(base_resource_path)
import Entrypoint as entrypoint
enableProfiling = False
class Main:
# MAIN ENTRY POINT
def __init__(self):
# Parse parameters
base_url = sys.argv[0]
addon_handle = int(sys.argv[1])
params = urlparse.parse_qs(sys.argv[2][1:])
xbmc.log("Parameter string: %s" % sys.argv[2])
try:
mode = params['mode'][0]
id = params.get('id', None)
if id:
id = id[0]
except:
params = {}
mode = ""
##### PLAY ITEM VIA plugin://plugin.video.emby/ #####
if "play" in mode or "playnow" in mode:
entrypoint.doPlayback(id)
#### DO RESET AUTH #####
elif "resetauth" in mode:
entrypoint.resetAuth()
##### DO DATABASE RESET #####
elif "reset" in mode:
import Utils as utils
utils.reset()
##### ADD/REMOVE USER FROM SESSION #####
elif "adduser" in mode:
entrypoint.addUser()
##### SYNC THEME MEDIA #####
elif "thememedia" in mode:
entrypoint.getThemeMedia()
##### LAUNCH EMBY USER PREFS #####
elif "userprefs" in mode:
entrypoint.userPreferences()
##### OPEN ADDON SETTINGS #####
elif "settings" in mode:
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.emby)')
##### MANUALLY SYNC LIBRARY #####
elif "manualsync" in mode:
from LibrarySync import LibrarySync
LibrarySync().FullLibrarySync(True)
##### CACHE ARTWORK #####
elif "texturecache" in mode:
from TextureCache import TextureCache
TextureCache().FullTextureCacheSync()
##### BROWSE EMBY CHANNELS FOLDER #####
elif "channelsfolder" in mode:
folderid = params['folderid'][0]
entrypoint.BrowseChannels(id,folderid)
##### BROWSE EMBY CHANNELS ROOT #####
elif "channels" in mode:
entrypoint.BrowseChannels(id)
##### GET NEXTUP EPISODES FOR TAGNAME #####
elif "nextup" in mode:
limit = int(params['limit'][0])
entrypoint.getNextUpEpisodes(id, limit)
##### GET INPROGRESS EPISODES FOR TAGNAME #####
elif "inprogressepisodes" in mode:
limit = int(params['limit'][0])
entrypoint.getInProgressEpisodes(id, limit)
##### GET RECENT EPISODES FOR TAGNAME #####
elif "recentepisodes" in mode:
limit = int(params['limit'][0])
entrypoint.getRecentEpisodes(id, limit)
##### GET EXTRAFANART FOR LISTITEM #####
elif "extrafanart" in sys.argv[0]:
entrypoint.getExtraFanArt()
##### SHOW ADDON NODES LISTING #####
if not mode:
entrypoint.doMainListing()
if ( __name__ == "__main__" ):
xbmc.log('plugin.video.emby started')
if enableProfiling:
import cProfile
import pstats
import random
from time import gmtime, strftime
addonid = addon_.getAddonInfo('id').decode( 'utf-8' )
datapath = os.path.join( xbmc.translatePath( "special://profile/" ).decode( 'utf-8' ), "addon_data", addonid )
filename = os.path.join( datapath, strftime( "%Y%m%d%H%M%S",gmtime() ) + "-" + str( random.randrange(0,100000) ) + ".log" )
cProfile.run( 'Main()', filename )
stream = open( filename + ".txt", 'w')
p = pstats.Stats( filename, stream = stream )
p.sort_stats( "cumulative" )
p.print_stats()
2015-05-04 22:24:41 +00:00
else:
Main()
2015-05-03 15:39:12 +00:00
xbmc.log('plugin.video.emby stopped')