[nanny] ListPkgFilters report name, description, ro



commit eed75e9cc92a74b732a92c6447e23ed3a8363ef3
Author: Roberto Majadas <roberto majadas openshine com>
Date:   Mon Feb 1 14:26:59 2010 +0100

    ListPkgFilters report name, description, ro

 daemon/src/FilterManager.py |   35 ++++++++++++++++++++++++++++++-----
 daemon/src/NannyDBus.py     |    4 ++--
 2 files changed, 32 insertions(+), 7 deletions(-)
---
diff --git a/daemon/src/FilterManager.py b/daemon/src/FilterManager.py
index f2af154..fe32e63 100644
--- a/daemon/src/FilterManager.py
+++ b/daemon/src/FilterManager.py
@@ -242,10 +242,35 @@ class FilterManager (gobject.GObject) :
         pass
 
     def list_pkg_filter(self):
-        ids = []
+        ret = []
         for x in self.pkg_filters_conf.keys():
-            ids.append(unicode(x))
-        return ids
+            if x.startswith("/usr") :
+                ro = True
+            else:
+                ro = False
+                
+            path = os.path.dirname(x)
+            if not os.path.exists(os.path.join(path, "filters.metadata")) :
+                ret.append([unicode(x), "", "", ro])
+                continue
+
+            name = ""
+            description = ""
+            
+            fd = open(os.path.join(path, "filters.metadata"), "r")
+            for line in fd.readlines():
+                l = line.strip("\n")
+                if l.startswith("Name=") :
+                    name = l.replace("Name=", "")
+                elif l.startswith("Comment=") :
+                    description = l.replace("Comment=", "")
+                else:
+                    continue
+            fd.close()
+            
+            ret.append([unicode(x), name, description, ro])
+                
+        return ret
             
     def get_pkg_filter_user_categories(self, pkg_id, uid):
         try:
@@ -257,9 +282,9 @@ class FilterManager (gobject.GObject) :
             else:
                 user_categories = []
         except:
-            return ["", "", [], []]
+            return [[], []]
             
-        return [name, description, categories, user_categories]
+        return [categories, user_categories]
 
     def set_pkg_filter_user_categories(self, pkg_id, uid, list_categories):
         self.pkg_filters_conf[pkg_id]["users_info"][uid] = list_categories
diff --git a/daemon/src/NannyDBus.py b/daemon/src/NannyDBus.py
index bac72b8..7e73db2 100644
--- a/daemon/src/NannyDBus.py
+++ b/daemon/src/NannyDBus.py
@@ -137,12 +137,12 @@ class NannyDBus(dbus.service.Object):
         return self.quarterback.filter_manager.add_pkg_filter(name, description, path)
     
     @dbus.service.method("org.gnome.Nanny.WebDatabase",
-                         in_signature='', out_signature='as')
+                         in_signature='', out_signature='a(sssb)')
     def ListPkgFilters(self):
         return self.quarterback.filter_manager.list_pkg_filter()
 
     @dbus.service.method("org.gnome.Nanny.WebDatabase",
-                         in_signature='ss', out_signature='ssasas')
+                         in_signature='ss', out_signature='asas')
     def GetPkgFilterUserCategories(self, pkg_id, uid):
         return self.quarterback.filter_manager.get_pkg_filter_user_categories(unicode(pkg_id),
                                                                               str(uid)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]