def backup_skinsettings(self, dest_file, filters, temp_path):
'''backup the skinsettings (guisettings)'''
# save guisettings
skinfile = xbmcvfs.File(dest_file, "w")
skinsettings = self.get_skinsettings(filters)
skinfile.write(repr(skinsettings))
skinfile.close()
# copy any custom skin images or themes
for item in ["custom_images/", "themes/"]:
custom_images_folder = u"special://profile/addon_data/%s/%s" % (xbmc.getSkinDir(), item)
if xbmcvfs.exists(custom_images_folder):
custom_images_folder_temp = os.path.join(temp_path, item)
for file in xbmcvfs.listdir(custom_images_folder)[1]:
source = os.path.join(custom_images_folder, file)
dest = os.path.join(custom_images_folder_temp, file)
copy_file(source, dest)
python类getSkinDir()的实例源码
backuprestore.py 文件源码
项目:script.skin.helper.skinbackup
作者: marcelveldt
项目源码
文件源码
阅读 23
收藏 0
点赞 0
评论 0
def add_list_items(self, items, content=None, end=True, withNextPage=False):
TidalSession.add_list_items(self, items, content=content, end=end, withNextPage=withNextPage)
if end:
try:
self.save_album_cache()
kodiVersion = xbmc.getInfoLabel('System.BuildVersion').split()[0]
kodiVersion = kodiVersion.split('.')[0]
skinTheme = xbmc.getSkinDir().lower()
if 'onfluence' in skinTheme:
if kodiVersion <= '16':
xbmc.executebuiltin('Container.SetViewMode(506)')
elif content == 'musicvideos':
xbmc.executebuiltin('Container.SetViewMode(511)')
elif content == 'artists':
xbmc.executebuiltin('Container.SetViewMode(512)')
else:
xbmc.executebuiltin('Container.SetViewMode(506)')
elif 'estuary' in skinTheme:
xbmc.executebuiltin('Container.SetViewMode(55)')
except:
pass
def save_view_mode(content):
viewid = get_view_id()
skin = xbmc.getSkinDir()
koding.Create_Table("addonviews", view_spec)
koding.Remove_From_Table(
"addonviews", {"skin": skin,
"content": content})
koding.Add_To_Table("addonviews", {
"skin": skin,
"content": content,
"viewid": viewid,
})
icon = xbmcaddon.Addon().getAddonInfo('icon')
xbmcgui.Dialog().notification(xbmcaddon.Addon().getAddonInfo('name'),
_("View set for %s") % content,
icon)
def save_view_mode(content):
viewid = get_view_id()
skin = xbmc.getSkinDir()
koding.Create_Table("addonviews", view_spec)
koding.Remove_From_Table(
"addonviews", {"skin": skin,
"content": content})
koding.Add_To_Table("addonviews", {
"skin": skin,
"content": content,
"viewid": viewid,
})
icon = xbmcaddon.Addon().getAddonInfo('icon')
xbmcgui.Dialog().notification(xbmcaddon.Addon().getAddonInfo('name'),
_("View set for %s") % content,
icon)
def set_property(self):
if "estuary" in xbmc.getSkinDir():
self.setProperty("clockfont", "fontclock")
else:
self.setProperty("clockfont", "fontmainmenu")
# Set skin properties as settings
for setting in ["hide-clock-info", "hide-kodi-logo", "hide-weather-info", "hide-pic-info"]:
self.setProperty(setting, kodiutils.get_setting(setting))
# Set animations
if kodiutils.get_setting_as_int("animation") == 1:
self.setProperty("animation","panzoom")
return
def __init__(self):
self.userthemes_path = u"special://profile/addon_data/%s/themes/" % xbmc.getSkinDir()
if not xbmcvfs.exists(self.userthemes_path):
xbmcvfs.mkdir(self.userthemes_path)
self.skinthemes_path = u"special://skin/extras/skinthemes/"
if xbmcvfs.exists("special://home/addons/resource.skinthemes.%s/resources/" % get_skin_name()):
self.skinthemes_path = u"special://home/addons/resource.skinthemes.%s/resources/" % get_skin_name()
self.addon = xbmcaddon.Addon(ADDON_ID)
backuprestore.py 文件源码
项目:script.skin.helper.skinbackup
作者: marcelveldt
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def backup_skinshortcuts(self, dest_path):
'''backup skinshortcuts including images'''
source_path = u'special://profile/addon_data/script.skinshortcuts/'
if not xbmcvfs.exists(dest_path):
xbmcvfs.mkdir(dest_path)
for file in xbmcvfs.listdir(source_path)[1]:
file = file.decode("utf-8")
sourcefile = source_path + file
destfile = dest_path + file
if xbmc.getCondVisibility("SubString(Skin.String(skinshortcuts-sharedmenu),false)"):
# User is not sharing menu, so strip the skin name out of the destination file
destfile = destfile.replace("%s." % (xbmc.getSkinDir()), "")
if (file.endswith(".DATA.xml") and (not xbmc.getCondVisibility(
"SubString(Skin.String(skinshortcuts-sharedmenu),false)") or file.startswith(xbmc.getSkinDir()))):
xbmcvfs.copy(sourcefile, destfile)
# parse shortcuts file and look for any images - if found copy them to addon folder
self.backup_skinshortcuts_images(destfile, dest_path)
elif file.endswith(".properties") and xbmc.getSkinDir() in file:
if xbmc.getSkinDir() in file:
destfile = dest_path + file.replace(xbmc.getSkinDir(), "SKINPROPERTIES")
copy_file(sourcefile, destfile)
self.backup_skinshortcuts_properties(destfile, dest_path)
else:
# just copy the remaining files
copy_file(sourcefile, destfile)
backuprestore.py 文件源码
项目:script.skin.helper.skinbackup
作者: marcelveldt
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
def backup_skinshortcuts_images(shortcutfile, dest_path):
'''parse skinshortcuts file and copy images to backup location'''
shortcutfile = xbmc.translatePath(shortcutfile).decode("utf-8")
doc = parse(shortcutfile)
listing = doc.documentElement.getElementsByTagName('shortcut')
for shortcut in listing:
defaultid = shortcut.getElementsByTagName('defaultID')
if defaultid:
defaultid = defaultid[0].firstChild
if defaultid:
defaultid = defaultid.data
if not defaultid:
defaultid = shortcut.getElementsByTagName('label')[0].firstChild.data
thumb = shortcut.getElementsByTagName('thumb')
if thumb:
thumb = thumb[0].firstChild
if thumb:
thumb = thumb.data
if thumb and (thumb.endswith(".jpg") or thumb.endswith(".png") or thumb.endswith(".gif")):
thumb = get_clean_image(thumb)
extension = thumb.split(".")[-1]
newthumb = os.path.join(dest_path, "%s-thumb-%s.%s" %
(xbmc.getSkinDir(), normalize_string(defaultid), extension))
newthumb_vfs = "special://profile/addon_data/script.skinshortcuts/%s-thumb-%s.%s" % (
xbmc.getSkinDir(), normalize_string(defaultid), extension)
if xbmcvfs.exists(thumb):
copy_file(thumb, newthumb)
shortcut.getElementsByTagName('thumb')[0].firstChild.data = newthumb_vfs
# write changes to skinshortcuts file
shortcuts_file = xbmcvfs.File(shortcutfile, "w")
shortcuts_file.write(doc.toxml(encoding='utf-8'))
shortcuts_file.close()
backuprestore.py 文件源码
项目:script.skin.helper.skinbackup
作者: marcelveldt
项目源码
文件源码
阅读 26
收藏 0
点赞 0
评论 0
def get_skinsettings(filters=None):
'''get all active skin settings'''
all_skinsettings = []
guisettings_path = 'special://profile/addon_data/%s/settings.xml' % xbmc.getSkinDir()
if xbmcvfs.exists(guisettings_path):
doc = parse(xbmc.translatePath(guisettings_path).decode("utf-8"))
skinsettings = doc.documentElement.getElementsByTagName('setting')
for skinsetting in skinsettings:
settingname = skinsetting.attributes['id'].nodeValue
settingtype = skinsetting.attributes['type'].nodeValue
if isinstance(settingname, unicode):
settingname = settingname.encode("utf-8")
# we must grab the actual values because the xml file only updates at restarts
if settingtype == "bool":
if "$INFO" not in settingname and xbmc.getCondVisibility("Skin.HasSetting(%s)" % settingname):
settingvalue = "true"
else:
settingvalue = "false"
else:
settingvalue = xbmc.getInfoLabel("Skin.String(%s)" % settingname)
if not filters:
# no filter - just add all settings we can find
all_skinsettings.append((settingtype, settingname, settingvalue))
else:
# only select settings defined in our filters
for filteritem in filters:
if filteritem.lower() in settingname.lower():
all_skinsettings.append((settingtype, settingname, settingvalue))
return all_skinsettings
backuprestore.py 文件源码
项目:script.skin.helper.skinbackup
作者: marcelveldt
项目源码
文件源码
阅读 24
收藏 0
点赞 0
评论 0
def restore_skinshortcuts(temp_path):
'''restore skinshortcuts files'''
source_path = temp_path + u"skinshortcuts/"
if xbmcvfs.exists(source_path):
dest_path = u'special://profile/addon_data/script.skinshortcuts/'
for filename in xbmcvfs.listdir(source_path)[1]:
filename = filename.decode("utf-8")
sourcefile = source_path + filename
destfile = dest_path + filename
if filename == "SKINPROPERTIES.properties":
destfile = dest_path + filename.replace("SKINPROPERTIES", xbmc.getSkinDir())
elif xbmc.getCondVisibility("SubString(Skin.String(skinshortcuts-sharedmenu),false)"):
destfile = "%s-" % (xbmc.getSkinDir())
copy_file(sourcefile, destfile)
def get_skin_name():
''' get the skin name filtering out any beta prefixes and such.'''
skin_name = xbmc.getSkinDir().decode("utf-8")
skin_name = skin_name.replace("skin.", "")
skin_name = skin_name.replace(".kryptonbeta", "")
skin_name = skin_name.replace(".jarvisbeta", "")
skin_name = skin_name.replace(".leiabeta", "")
return skin_name
def getskinfolder():
#if "skin.aeon.nox" in xbmc.getSkinDir(): return "skin.aeon.nox.5"
#else:
return "default"
def set_view(view_mode, view_code=0):
_log("set_view view_mode='"+view_mode+"', view_code="+str(view_code))
# Set the content for extended library views if needed
if view_mode==MOVIES:
_log("set_view content is movies")
xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )
elif view_mode==TV_SHOWS:
_log("set_view content is tvshows")
xbmcplugin.setContent( int(sys.argv[1]) ,"tvshows" )
elif view_mode==SEASONS:
_log("set_view content is seasons")
xbmcplugin.setContent( int(sys.argv[1]) ,"seasons" )
elif view_mode==EPISODES:
_log("set_view content is episodes")
xbmcplugin.setContent( int(sys.argv[1]) ,"episodes" )
# Reads skin name
skin_name = xbmc.getSkinDir()
_log("set_view skin_name='"+skin_name+"'")
try:
if view_code==0:
_log("set_view view mode is "+view_mode)
view_codes = ALL_VIEW_CODES.get(view_mode)
view_code = view_codes.get(skin_name)
_log("set_view view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
else:
_log("set_view view code forced to "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
except:
_log("Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
def set_view(view_mode, view_code=0):
_log("set_view view_mode='"+view_mode+"', view_code="+str(view_code))
# Set the content for extended library views if needed
if view_mode==MOVIES:
_log("set_view content is movies")
xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )
elif view_mode==TV_SHOWS:
_log("set_view content is tvshows")
xbmcplugin.setContent( int(sys.argv[1]) ,"tvshows" )
elif view_mode==SEASONS:
_log("set_view content is seasons")
xbmcplugin.setContent( int(sys.argv[1]) ,"seasons" )
elif view_mode==EPISODES:
_log("set_view content is episodes")
xbmcplugin.setContent( int(sys.argv[1]) ,"episodes" )
# Reads skin name
skin_name = xbmc.getSkinDir()
_log("set_view skin_name='"+skin_name+"'")
try:
if view_code==0:
_log("set_view view mode is "+view_mode)
view_codes = ALL_VIEW_CODES.get(view_mode)
view_code = view_codes.get(skin_name)
_log("set_view view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
else:
_log("set_view view code forced to "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
except:
_log("Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
def switch_view():
skin_used = xbmc.getSkinDir()
if skin_used == 'skin.confluence':
xbmc.executebuiltin('Container.SetViewMode(500)') # ??? "??????".
elif skin_used == 'skin.aeon.nox':
xbmc.executebuiltin('Container.SetViewMode(512)') # ??? "????-?????"
def action(self, data):
if self.scid is None:
return
url = "%s/Stats" % (sctop.BASE_URL)
data.update({'est': self.estimateFinishTime})
data.update({'se': self.se, 'ep': self.ep})
data.update({'ver': sctop.addonInfo('version')})
try:
data.update({'state': bool(xbmc.getCondVisibility("!Player.Paused"))})
data.update({'ws': xbmcgui.Window(10000).getProperty('ws.ident'), 'vip': xbmcgui.Window(10000).getProperty('ws.vip')})
data.update({'vd': xbmcgui.Window(10000).getProperty('ws.days')})
data.update({'skin':xbmc.getSkinDir()})
if 'bitrate' in self.stream:
util.debug("[SC] action bitrate")
data.update({'bt': self.stream['bitrate']})
else:
util.debug("[SC] action no bitrate")
except:
pass
try:
if self.itemDuration > 0:
data.update({'dur': self.itemDuration})
except Exception:
pass
self.log("[SC] action: %s" % str(data))
url = self.parent.provider._url(url)
sctop.post_json(url, data, {'X-UID': sctop.uid})
def get_viewmode_id(parent_item):
# viewmode_json habria q guardarlo en un archivo y crear un metodo para q el user fije sus preferencias en:
# user_files, user_movies, user_tvshows, user_season y user_episodes.
viewmode_json = {'skin.confluence': {'default_files': 50,
'default_movies': 515,
'default_tvshows': 508,
'default_seasons': 503,
'default_episodes': 504,
'view_list': 50,
'view_thumbnails': 500,
'view_movie_with_plot': 503},
'skin.estuary': {'default_files': 50,
'default_movies': 54,
'default_tvshows': 502,
'default_seasons': 500,
'default_episodes': 53,
'view_list': 50,
'view_thumbnails': 500,
'view_movie_with_plot': 54}}
# Si el parent_item tenia fijado un viewmode usamos esa vista...
if parent_item.viewmode == 'movie':
# Remplazamos el antiguo viewmode 'movie' por 'thumbnails'
parent_item.viewmode = 'thumbnails'
if parent_item.viewmode in ["list", "movie_with_plot", "thumbnails"]:
view_name = "view_" + parent_item.viewmode
'''elif isinstance(parent_item.viewmode, int):
# only for debug
viewName = parent_item.viewmode'''
# ...sino ponemos la vista por defecto en funcion del viewcontent
else:
view_name = "default_" + parent_item.viewcontent
skin_name = xbmc.getSkinDir()
if skin_name not in viewmode_json:
skin_name = 'skin.confluence'
view_skin = viewmode_json[skin_name]
return view_skin.get(view_name, 50)
def set_view(view_mode, view_code=0):
_log("set_view view_mode='"+view_mode+"', view_code="+str(view_code))
# Set the content for extended library views if needed
if view_mode==MOVIES:
_log("set_view content is movies")
xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )
elif view_mode==TV_SHOWS:
_log("set_view content is tvshows")
xbmcplugin.setContent( int(sys.argv[1]) ,"tvshows" )
elif view_mode==SEASONS:
_log("set_view content is seasons")
xbmcplugin.setContent( int(sys.argv[1]) ,"seasons" )
elif view_mode==EPISODES:
_log("set_view content is episodes")
xbmcplugin.setContent( int(sys.argv[1]) ,"episodes" )
# Reads skin name
skin_name = xbmc.getSkinDir()
_log("set_view skin_name='"+skin_name+"'")
try:
if view_code==0:
_log("set_view view mode is "+view_mode)
view_codes = ALL_VIEW_CODES.get(view_mode)
view_code = view_codes.get(skin_name)
_log("set_view view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
else:
_log("set_view view code forced to "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
except:
_log("Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
plugintools.py 文件源码
项目:plugin.video.streamondemand-pureita
作者: orione7
项目源码
文件源码
阅读 20
收藏 0
点赞 0
评论 0
def set_view(view_mode, view_code=0):
_log("set_view view_mode='"+view_mode+"', view_code="+str(view_code))
# Set the content for extended library views if needed
if view_mode==MOVIES:
_log("set_view content is movies")
xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )
elif view_mode==TV_SHOWS:
_log("set_view content is tvshows")
xbmcplugin.setContent( int(sys.argv[1]) ,"tvshows" )
elif view_mode==SEASONS:
_log("set_view content is seasons")
xbmcplugin.setContent( int(sys.argv[1]) ,"seasons" )
elif view_mode==EPISODES:
_log("set_view content is episodes")
xbmcplugin.setContent( int(sys.argv[1]) ,"episodes" )
# Reads skin name
skin_name = xbmc.getSkinDir()
_log("set_view skin_name='"+skin_name+"'")
try:
if view_code==0:
_log("set_view view mode is "+view_mode)
view_codes = ALL_VIEW_CODES.get(view_mode)
view_code = view_codes.get(skin_name)
_log("set_view view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
else:
_log("set_view view code forced to "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
except:
_log("Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
def set_view(view_mode, view_code=0):
if get_setting('auto-view') == 'true':
# Set the content for extended library views if needed
xbmcplugin.setContent(int(sys.argv[1]), view_mode)
if view_mode == MOVIES:
xbmcplugin.setContent(int(sys.argv[1]), "movies")
elif view_mode == TV_SHOWS:
xbmcplugin.setContent(int(sys.argv[1]), "tvshows")
elif view_mode == SEASONS:
xbmcplugin.setContent(int(sys.argv[1]), "seasons")
elif view_mode == EPISODES:
xbmcplugin.setContent(int(sys.argv[1]), "episodes")
elif view_mode == THUMBNAIL:
xbmcplugin.setContent(int(sys.argv[1]), "thumbnail")
elif view_mode == LIST:
xbmcplugin.setContent(int(sys.argv[1]), "list")
elif view_mode == SETS:
xbmcplugin.setContent(int(sys.argv[1]), "sets")
skin_name = xbmc.getSkinDir() # Reads skin name
try:
if view_code == 0:
view_codes = ALL_VIEW_CODES.get(view_mode)
# kodi.log(view_codes)
view_code = view_codes.get(skin_name)
# kodi.log(view_code)
xbmc.executebuiltin("Container.SetViewMode(" + str(view_code) + ")")
# kodi.log("Setting First view code "+str(view_code)+" for view mode "+str(view_mode)+" and skin "+skin_name)
else:
xbmc.executebuiltin("Container.SetViewMode(" + str(view_code) + ")")
# kodi.log("Setting Second view code for view mode "+str(view_mode)+" and skin "+skin_name)
except:
# kodi.log("Unable to find view code "+str(view_code)+" for view mode "+str(view_mode)+" and skin "+skin_name)
pass
# else:
# xbmc.executebuiltin("Container.SetViewMode(sets)")
def get_skin_id(self):
return xbmc.getSkinDir()
def get_skin_id(self):
return xbmc.getSkinDir()
def set_list_view_mode(content):
skin = xbmc.getSkinDir()
koding.reset_db()
match = koding.Get_From_Table("addonviews", {
"skin": skin,
"content": content
})
if match:
match = match[0]
xbmc.executebuiltin('Container.SetViewMode(%s)' % str(match["viewid"]))
def set_list_view_mode(content):
skin = xbmc.getSkinDir()
koding.reset_db()
match = koding.Get_From_Table("addonviews", {
"skin": skin,
"content": content
})
if match:
match = match[0]
xbmc.executebuiltin('Container.SetViewMode(%s)' % str(match["viewid"]))
def set_view(view_mode, view_code=0):
_log("set_view view_mode='"+view_mode+"', view_code="+str(view_code))
# Set the content for extended library views if needed
if view_mode==MOVIES:
_log("set_view content is movies")
xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )
elif view_mode==TV_SHOWS:
_log("set_view content is tvshows")
xbmcplugin.setContent( int(sys.argv[1]) ,"tvshows" )
elif view_mode==SEASONS:
_log("set_view content is seasons")
xbmcplugin.setContent( int(sys.argv[1]) ,"seasons" )
elif view_mode==EPISODES:
_log("set_view content is episodes")
xbmcplugin.setContent( int(sys.argv[1]) ,"episodes" )
# Reads skin name
skin_name = xbmc.getSkinDir()
_log("set_view skin_name='"+skin_name+"'")
try:
if view_code==0:
_log("set_view view mode is "+view_mode)
view_codes = ALL_VIEW_CODES.get(view_mode)
view_code = view_codes.get(skin_name)
_log("set_view view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
else:
_log("set_view view code forced to "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
except:
_log("Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
backuprestore.py 文件源码
项目:script.skin.helper.skinbackup
作者: marcelveldt
项目源码
文件源码
阅读 22
收藏 0
点赞 0
评论 0
def restore(self, filename="", silent=False):
'''restore skin settings from file'''
if not filename:
filename = self.get_restorefilename()
progressdialog = None
if not silent:
progressdialog = xbmcgui.DialogProgress(self.addon.getLocalizedString(32006))
progressdialog.create(self.addon.getLocalizedString(32007))
if filename and xbmcvfs.exists(filename):
# create temp path
temp_path = self.create_temp()
if not filename.endswith("zip"):
# assume that passed filename is actually a skinsettings file
skinsettingsfile = filename
else:
# copy zip to temp directory and unzip
skinsettingsfile = temp_path + "guisettings.txt"
if progressdialog:
progressdialog.update(0, "unpacking backup...")
zip_temp = u'%sskinbackup-%s.zip' % (ADDON_DATA, datetime.now().strftime('%Y-%m-%d-%H-%M'))
copy_file(filename, zip_temp, True)
unzip_fromfile(zip_temp, temp_path)
delete_file(zip_temp)
# copy skinshortcuts preferences
self.restore_skinshortcuts(temp_path)
# restore any custom skin images or themes
for directory in ["custom_images/", "themes/"]:
custom_images_folder = u"special://profile/addon_data/%s/%s" % (xbmc.getSkinDir(), directory)
custom_images_folder_temp = temp_path + directory
if xbmcvfs.exists(custom_images_folder_temp):
for file in xbmcvfs.listdir(custom_images_folder_temp)[1]:
xbmcvfs.copy(custom_images_folder_temp + file,
custom_images_folder + file)
# restore guisettings
if xbmcvfs.exists(skinsettingsfile):
self.restore_guisettings(skinsettingsfile, progressdialog)
# cleanup temp
recursive_delete_dir(temp_path)
progressdialog.close()
if not silent:
xbmcgui.Dialog().ok(self.addon.getLocalizedString(32006), self.addon.getLocalizedString(32009))
def system(self, data, cl=False):
util.debug("[SC] SYSYEM CL: %s" % str(cl));
if cl is False and "setContent" in data:
xbmcplugin.setContent(int(sys.argv[1]), data["setContent"])
'''
view_mode=data["setContent"].lower()
skin_name=xbmc.getSkinDir() # nacitame meno skinu
util.debug("[SC] skin_name='"+skin_name+"'")
try:
util.debug("[SC] view mode is "+view_mode)
view_codes=sctop.ALL_VIEW_CODES.get(view_mode)
view_code=view_codes.get(skin_name)
util.debug("[SC] view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
#xbmc.executebuiltin("Container.Refresh")
except:
util.debug("[SC] Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
'''
if cl is False and "setPluginCategory" in data:
xbmcplugin.setPluginCategory(int(sys.argv[1]), data["setPluginCategory"])
if cl is False and "addSortMethod" in data:
xbmcplugin.addSortMethod(int(sys.argv[1]), sctop.sortmethod[int(data["addSortMethod"])])
if cl is False and data.get('addSortMethods'):
for m in data.get("addSortMethods"):
xbmcplugin.addSortMethod(int(sys.argv[1]), sctop.sortmethod[int(m)])
if cl is False and "setPluginFanart" in data:
xbmcplugin.setPluginFanart(int(sys.argv[1]), data["setPluginFanart"])
if cl is False and "version" in data:
util.info("[SC] kontrola verzie: %s %s" % (str(sctop.addonInfo('version')), data["version"]))
if sctop.addonInfo('version') != data["version"] and sctop.getSetting('ver') != data['version']:
try:
sctop.dialog.ok(sctop.getString(30954), sctop.getString(30955) % str(data['version']))
except:
pass
xbmc.executebuiltin('UpdateAddonRepos')
sctop.setSetting('ver', data['version'])
if sctop.getSettingAsBool('cachemigrate') == '' or sctop.getSettingAsBool('cachemigrate') is False:
self.parent.cacheMigrate()
pass
pass
if cl is False and "focus" in data:
self.parent.system = {"focus": data['focus']}
if cl is True and "focus" in data:
try:
self.parent.endOfDirectory()
util.debug("[SC] nastavujem focus na: %d" % int(data['focus']))
xel = xbmcgui.Window(xbmcgui.getCurrentWindowId())
ctr = xel.getControl(xel.getFocusId())
ctr.selectItem(int(data['focus']))
except Exception, e:
util.debug("[SC] error focus :-( %s" % str(traceback.format_exc()))
pass
def get_viewmode_id(parent_item):
# viewmode_json habria q guardarlo en un archivo y crear un metodo para q el user fije sus preferencias en:
# user_files, user_movies, user_tvshows, user_season y user_episodes.
viewmode_json = {'skin.confluence': {'default_files': 50,
'default_movies': 515,
'default_tvshows': 508,
'default_seasons': 503,
'default_episodes': 504,
'view_list': 50,
'view_thumbnails': 500,
'view_movie_with_plot': 503},
'skin.estuary': {'default_files': 50,
'default_movies': 54,
'default_tvshows': 502,
'default_seasons': 500,
'default_episodes': 53,
'view_list': 50,
'view_thumbnails': 500,
'view_movie_with_plot': 54}}
# Si el parent_item tenia fijado un viewmode usamos esa vista...
if parent_item.viewmode == 'movie':
# Remplazamos el antiguo viewmode 'movie' por 'thumbnails'
parent_item.viewmode = 'thumbnails'
if parent_item.viewmode in ["list", "movie_with_plot", "thumbnails"]:
view_name = "view_" + parent_item.viewmode
'''elif isinstance(parent_item.viewmode, int):
# only for debug
viewName = parent_item.viewmode'''
# ...sino ponemos la vista por defecto en funcion del viewcontent
else:
view_name = "default_" + parent_item.viewcontent
skin_name = xbmc.getSkinDir()
if skin_name not in viewmode_json:
skin_name = 'skin.confluence'
view_skin = viewmode_json[skin_name]
return view_skin.get(view_name, 50)