The branch, frodo has been updated
via 3bef9c45e8f0ffb99d5aba7819e51e022cf18908 (commit)
from 38d50c5fc87926e01421a4698363824e5106af15 (commit)
- Log -----------------------------------------------------------------
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/scripts;a=commit;h=3bef9c45e8f0ffb99d5aba7819e51e022cf18908
commit 3bef9c45e8f0ffb99d5aba7819e51e022cf18908
Author: beenje <[email protected]>
Date: Tue Mar 19 21:47:51 2013 +0100
[script.categories] updated to version 2.0.8
diff --git a/script.categories/addon.xml b/script.categories/addon.xml
index 587d9d0..c1d0d44 100644
--- a/script.categories/addon.xml
+++ b/script.categories/addon.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<addon id="script.categories" name="- Categories" version="2.0.7"
provider-name="AddonScriptorDE">
+<addon id="script.categories" name="- Categories" version="2.0.8"
provider-name="AddonScriptorDE">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
</requires>
diff --git a/script.categories/changelog.txt b/script.categories/changelog.txt
index 35c8446..b5bfc06 100644
--- a/script.categories/changelog.txt
+++ b/script.categories/changelog.txt
@@ -18,3 +18,8 @@
- Added context menu for removing whole category
1.0.7
- Added context menu for renaming categories
+1.0.8 / 2.0.8
+- Added Portuguese (Brazil) strings (thx@Wanilton)
+- Fixed problem with addons using the "content_type" parameter
+- Added setting for showing the number of addons and addon version in title
+- Added setting for notifications
diff --git a/script.categories/default.py b/script.categories/default.py
index d5d7732..51149f0 100644
--- a/script.categories/default.py
+++ b/script.categories/default.py
@@ -9,8 +9,11 @@ addonsFolder=xbmc.translatePath('special://home/addons/')
catsFile=xbmc.translatePath(addon_work_folder+'/categories.list')
addon = xbmcaddon.Addon(id=addonID)
translation = addon.getLocalizedString
-forceViewMode=addon.getSetting("forceViewMode")
+forceViewMode=addon.getSetting("forceView")
viewMode=str(addon.getSetting("viewMode"))
+catCount=addon.getSetting("catCount")
+versionInTitle=str(addon.getSetting("versionInTitle"))
+showMessages=str(addon.getSetting("showMessages"))
if not os.path.isdir(addon_work_folder):
os.mkdir(addon_work_folder)
@@ -27,11 +30,16 @@ def indexMain():
elif plType==translation(30008):
xbmc.executebuiltin('XBMC.ActivateWindow(10002,plugin://script.categories/?content_type=image)')
-def index(cType):
- addDir(translation(30001), "all", "listCat", "")
+def index():
+ allCount=getAllCount()
+ if catCount=="true" and allCount>0:
+ allTitle=translation(30001)+" ("+str(allCount)+")"
+ else:
+ allTitle=translation(30001)
+ addDir(allTitle, "all", "listCat", "")
cats = []
if os.path.exists(catsFile):
- json_result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method":
"Addons.GetAddons", "params": {"content": "'+cType+'"}, "id": 1}' )
+ json_result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method":
"Addons.GetAddons", "params": {"content": "'+contentType+'"}, "id": 1}' )
fh = open(catsFile, 'r')
if '"Method not found."' in json_result:
for line in fh:
@@ -45,7 +53,7 @@ def index(cType):
types=match[0]
cat = line[line.find("#")+1:]
cat = cat[:cat.find("#END")]
- if cType in types and cat not in cats:
+ if contentType in types and cat not in cats:
cats.append(cat)
else:
for line in fh:
@@ -57,13 +65,55 @@ def index(cType):
cats.append(cat)
fh.close()
for cat in cats:
- addRDir(cat, cat, "listCat", "")
+ catsCount=getCatCount(cat)
+ if catCount=="true" and catsCount>0:
+ catTitle=cat+" ("+str(catsCount)+")"
+ else:
+ catTitle=cat
+ addRDir(catTitle, cat, "listCat", "")
xbmcplugin.endOfDirectory(pluginhandle)
+ if forceViewMode=="true":
+ xbmc.executebuiltin('Container.SetViewMode('+viewMode+')')
+
+def getAllCount():
+ json_result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method":
"Addons.GetAddons", "params": {"content": "'+contentType+'"}, "id": 1}' )
+ match=re.compile('"addonid"', re.DOTALL).findall(json_result)
+ return len(match)-1
+
+def getCatCount(category):
+ count=0
+ if os.path.exists(catsFile):
+ json_result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method":
"Addons.GetAddons", "params": {"content": "'+contentType+'"}, "id": 1}' )
+ fh = open(catsFile, 'r')
+ if '"Method not found."' in json_result:
+ for line in fh:
+ id = line[:line.find("#")]
+ currentAddon = xbmcaddon.Addon(id=id)
+ path =
xbmc.translatePath('special://home/addons/'+id+'/addon.xml')
+ fh = open(path, 'r')
+ xml = fh.read()
+ fh.close()
+ match=re.compile('<provides>(.+?)</provides>',
re.DOTALL).findall(xml)
+ types=match[0]
+ cat = line[line.find("#")+1:]
+ cat = cat[:cat.find("#END")]
+ if contentType in types and cat==category:
+ count+=1
+ else:
+ for line in fh:
+ id = line[:line.find("#")]
+ if id in json_result:
+ cat = line[line.find("#")+1:]
+ cat = cat[:cat.find("#END")]
+ if cat==category:
+ count+=1
+ fh.close()
+ return count
-def listCat(cat,cType):
+def listCat(cat):
xbmcplugin.addSortMethod(pluginhandle, xbmcplugin.SORT_METHOD_LABEL)
addons = os.listdir(addonsFolder)
- json_result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method":
"Addons.GetAddons", "params": {"content": "'+cType+'"}, "id": 1}' )
+ json_result = xbmc.executeJSONRPC('{"jsonrpc": "2.0", "method":
"Addons.GetAddons", "params": {"content": "'+contentType+'"}, "id": 1}' )
if '"Method not found."' in json_result:
if cat == "all":
for a in addons:
@@ -76,11 +126,15 @@ def listCat(cat,cType):
types=match[0]
except:
types=""
- if a!="script.categories" and cType in types:
+ if a!="script.categories" and contentType in types:
try:
currentAddon = xbmcaddon.Addon(id=a)
+ if versionInTitle=="true":
+ title = currentAddon.getAddonInfo('name')+"
("+currentAddon.getAddonInfo('version')+")"
+ else:
+ title = currentAddon.getAddonInfo('name')
desc = "Version: "+currentAddon.getAddonInfo('version')+"
("+currentAddon.getAddonInfo('author')+")\n"+currentAddon.getAddonInfo('description')
-
addAddonDir(currentAddon.getAddonInfo('name'),a,currentAddon.getAddonInfo('icon'),desc,cType)
+
addAddonDir(title,a,currentAddon.getAddonInfo('icon'),desc,contentType)
except:
pass
else:
@@ -98,11 +152,15 @@ def listCat(cat,cType):
types=match[0]
except:
types=""
- if a!="script.categories" and cType in types and a+"#"+cat in
content:
+ if a!="script.categories" and contentType in types and
a+"#"+cat in content:
try:
currentAddon = xbmcaddon.Addon(id=a)
+ if versionInTitle=="true":
+ title = currentAddon.getAddonInfo('name')+"
("+currentAddon.getAddonInfo('version')+")"
+ else:
+ title = currentAddon.getAddonInfo('name')
desc = "Version: "+currentAddon.getAddonInfo('version')+"
("+currentAddon.getAddonInfo('author')+")\n"+currentAddon.getAddonInfo('description')
-
addAddonRDir(currentAddon.getAddonInfo('name'),a,currentAddon.getAddonInfo('icon'),cat,desc)
+
addAddonRDir(title,a,currentAddon.getAddonInfo('icon'),cat,desc)
except:
pass
@@ -113,8 +171,12 @@ def listCat(cat,cType):
try:
if addonid!="script.categories":
currentAddon = xbmcaddon.Addon(id=addonid)
+ if versionInTitle=="true":
+ title = currentAddon.getAddonInfo('name')+"
("+currentAddon.getAddonInfo('version')+")"
+ else:
+ title = currentAddon.getAddonInfo('name')
desc = "Version: "+currentAddon.getAddonInfo('version')+"
("+currentAddon.getAddonInfo('author')+")\n"+currentAddon.getAddonInfo('description')
-
addAddonDir(currentAddon.getAddonInfo('name'),addonid,currentAddon.getAddonInfo('icon'),desc,cType)
+
addAddonDir(title,addonid,currentAddon.getAddonInfo('icon'),desc,contentType)
except:
pass
else:
@@ -127,8 +189,12 @@ def listCat(cat,cType):
try:
if addonid!="script.categories":
currentAddon = xbmcaddon.Addon(id=addonid)
+ if versionInTitle=="true":
+ title = currentAddon.getAddonInfo('name')+"
("+currentAddon.getAddonInfo('version')+")"
+ else:
+ title = currentAddon.getAddonInfo('name')
desc = "Version:
"+currentAddon.getAddonInfo('version')+"
("+currentAddon.getAddonInfo('author')+")\n"+currentAddon.getAddonInfo('description')
-
addAddonRDir(currentAddon.getAddonInfo('name'),addonid,currentAddon.getAddonInfo('icon'),cat,desc)
+
addAddonRDir(title,addonid,currentAddon.getAddonInfo('icon'),cat,desc)
except:
pass
xbmcplugin.endOfDirectory(pluginhandle)
@@ -189,8 +255,13 @@ def addAddon(args):
fh=open(catsFile, 'a')
fh.write(playlistEntry+"\n")
fh.close()
+ if showMessages=="true":
+
xbmc.executebuiltin('XBMC.Notification(Info:,'+translation(30018).format(addon=xbmcaddon.Addon(id=addonID).getAddonInfo('name'),
cat=pl)+',5000)')
def deleteAddon(args):
+ match=re.compile('(.+?)#(.+?)#', re.DOTALL).findall(args)
+ id=match[0][0]
+ cat=match[0][1]
fh = open(catsFile, 'r')
content=fh.read()
fh.close()
@@ -198,6 +269,8 @@ def deleteAddon(args):
fh.write(content.replace(args+"\n",""))
fh.close()
xbmc.executebuiltin("Container.Refresh")
+ if showMessages=="true":
+
xbmc.executebuiltin('XBMC.Notification(Info:,'+translation(30019).format(addon=xbmcaddon.Addon(id=id).getAddonInfo('name'),
cat=cat)+',5000)')
def deleteCat(args):
dialog = xbmcgui.Dialog()
@@ -260,7 +333,7 @@ def addAddonDir(name,url,iconimage,desc="",cType=""):
liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage)
liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc } )
liz.addContextMenuItems([(translation(30002),
'RunPlugin(plugin://script.categories/?mode=addAddon&url='+urllib.quote_plus(cType+"#"+url)+')',)])
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url="plugin://"+url+"/",listitem=liz,isFolder=True)
+
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url="plugin://"+url+"/?content_type="+contentType,listitem=liz,isFolder=True)
return ok
def addAddonRDir(name,url,iconimage,cat,desc=""):
@@ -268,7 +341,7 @@ def addAddonRDir(name,url,iconimage,cat,desc=""):
liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage)
liz.setInfo( type="Video", infoLabels={ "Title": name, "Plot": desc } )
liz.addContextMenuItems([(translation(30003),
'RunPlugin(plugin://script.categories/?mode=deleteAddon&url='+urllib.quote_plus(url+"#"+cat+"#END")+')',)])
-
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url="plugin://"+url+"/",listitem=liz,isFolder=True)
+
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url="plugin://"+url+"/?content_type="+contentType,listitem=liz,isFolder=True)
return ok
def addRDir(name,url,mode,iconimage):
@@ -276,7 +349,7 @@ def addRDir(name,url,mode,iconimage):
ok=True
liz=xbmcgui.ListItem(name, iconImage="DefaultFolder.png",
thumbnailImage=iconimage)
liz.setInfo( type="Video", infoLabels={ "Title": name } )
- liz.addContextMenuItems([(translation(30009),
'RunPlugin(plugin://script.categories/?mode=deleteCat&url='+urllib.quote_plus(name)+')',),(translation(30012),
'RunPlugin(plugin://script.categories/?mode=renameCat&url='+urllib.quote_plus(name)+')',)])
+ liz.addContextMenuItems([(translation(30009),
'RunPlugin(plugin://script.categories/?mode=deleteCat&url='+urllib.quote_plus(url)+')',),(translation(30012),
'RunPlugin(plugin://script.categories/?mode=renameCat&url='+urllib.quote_plus(url)+')',)])
ok=xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=u,listitem=liz,isFolder=True)
return ok
@@ -301,7 +374,7 @@ if type(url)==type(str()):
if contentType == "":
indexMain()
elif mode == 'listCat':
- listCat(url,contentType)
+ listCat(url)
elif mode == 'addAddon':
addAddon(url)
elif mode == 'deleteAddon':
@@ -311,4 +384,4 @@ elif mode == 'deleteCat':
elif mode == 'renameCat':
renameCat(url)
else:
- index(contentType)
+ index()
diff --git a/script.categories/resources/language/English/strings.xml
b/script.categories/resources/language/English/strings.xml
index 568cb03..4caae00 100644
--- a/script.categories/resources/language/English/strings.xml
+++ b/script.categories/resources/language/English/strings.xml
@@ -15,6 +15,11 @@
<string id="30013">Settings</string>
<string id="30014">Force View</string>
<string id="30015">ViewID</string>
+ <string id="30016">Show number of addons in category title</string>
+ <string id="30017">Show add-on version in title</string>
+ <string id="30018">Added {addon} to category {cat}</string>
+ <string id="30019">Removed {addon} from category {cat}</string>
+ <string id="30020">Show notifications</string>
<string id="30100">Category 01</string>
<string id="30101">Category 02</string>
<string id="30102">Category 03</string>
diff --git a/script.categories/resources/language/German/strings.xml
b/script.categories/resources/language/German/strings.xml
index d682ee2..8c30b60 100644
--- a/script.categories/resources/language/German/strings.xml
+++ b/script.categories/resources/language/German/strings.xml
@@ -14,6 +14,11 @@
<string id="30012">Kategorie umbenennen</string>
<string id="30013">Einstellungen</string>
<string id="30014">View erzwingen</string>
+ <string id="30016">Anzahl der Add-ons im Titel anzeigen</string>
+ <string id="30017">Add-on Version im Titel anzeigen</string>
+ <string id="30018">{addon} zu Kategorie {cat} hinzugefuegt</string>
+ <string id="30019">{addon} aus Kategorie {cat} entfernt</string>
+ <string id="30020">Hinweis-Meldungen anzeigen</string>
<string id="30100">Kategorie 01</string>
<string id="30101">Kategorie 02</string>
<string id="30102">Kategorie 03</string>
diff --git a/script.categories/resources/settings.xml
b/script.categories/resources/settings.xml
index 6457846..0ba2861 100644
--- a/script.categories/resources/settings.xml
+++ b/script.categories/resources/settings.xml
@@ -66,7 +66,10 @@
<setting id="cat_image_19" type="text" label="30119" default="" />
</category>
<category label="30013">
- <setting id="forceViewMode" type="bool" label="30014" default="false"/>
+ <setting id="catCount" type="bool" label="30016" default="true"/>
+ <setting id="versionInTitle" type="bool" label="30017" default="false"/>
+ <setting id="showMessages" type="bool" label="30020" default="false"/>
+ <setting id="forceView" type="bool" label="30014" default="true"/>
<setting id="viewMode" type="number" label="30015" default="500"/>
</category>
</settings>
-----------------------------------------------------------------------
Summary of changes:
script.categories/addon.xml | 2 +-
script.categories/changelog.txt | 5 +
script.categories/default.py | 111 ++++++++++++++++----
.../resources/language/English/strings.xml | 5 +
.../resources/language/German/strings.xml | 5 +
.../language/Portuguese (Brazil)/strings.xml | 38 +++++++
script.categories/resources/settings.xml | 5 +-
7 files changed, 150 insertions(+), 21 deletions(-)
create mode 100644 script.categories/resources/language/Portuguese
(Brazil)/strings.xml
hooks/post-receive
--
Scripts
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_mar
_______________________________________________
Xbmc-addons mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xbmc-addons