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

Reply via email to