changeset 1741:cc31dd72526d

plugin misc_extra_pep: use a user parameter (jids_list) instead of a general configuration value
author souliane <souliane@mailoo.org>
date Fri, 11 Dec 2015 09:12:11 +0100
parents 681fe91abcc0
children 244a605623d6
files src/plugins/plugin_misc_extra_pep.py src/plugins/plugin_xep_0277.py
diffstat 2 files changed, 31 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/plugin_misc_extra_pep.py	Tue Dec 15 14:12:19 2015 +0100
+++ b/src/plugins/plugin_misc_extra_pep.py	Fri Dec 11 09:12:11 2015 +0100
@@ -17,7 +17,7 @@
 # You should have received a copy of the GNU Affero General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from sat.core.i18n import _
+from sat.core.i18n import _, D_
 from sat.core.log import getLogger
 log = getLogger(__name__)
 
@@ -28,22 +28,40 @@
     "type": "MISC",
     "protocols": [],
     "dependencies": [],
-    "recommendations": ['XEP-0277'],
+    "recommendations": [],
     "main": "ExtraPEP",
     "handler": "no",
     "description": _(u"""Display messages from extra PEP services""")
 }
 
-CONFIG_SECTION = "plugin extra pep"
-
-default_conf = {"get_items_from_list": ["salut-a-toi@libervia.org"], }
-
+PARAM_KEY = u"Misc"
+PARAM_NAME = u"Blog authors following list"
+PARAM_DEFAULT = ["salut-a-toi@libervia.org"]
 
 class ExtraPEP(object):
 
+    params = """
+    <params>
+    <individual>
+    <category name="%(category_name)s" label="%(category_label)s">
+        <param name="%(param_name)s" label="%(param_label)s" type="jids_list" security="0">
+            %(jids)s
+        </param>
+     </category>
+    </individual>
+    </params>
+    """ % {
+        'category_name': PARAM_KEY,
+        'category_label': D_(PARAM_KEY),
+        'param_name': PARAM_NAME,
+        'param_label': D_(PARAM_NAME),
+        'jids': "".join(["<jid>%s</jid>" % jid for jid in PARAM_DEFAULT])
+    }
+
     def __init__(self, host):
         log.info(_(u"Plugin Extra PEP initialization"))
         self.host = host
+        host.memory.updateParams(self.params)
 
-    def getConfig(self, name):
-        return self.host.memory.getConfig(CONFIG_SECTION, name, default_conf[name])
+    def getFollowedEntities(self, profile_key):
+        return self.host.memory.getParamA(PARAM_NAME, PARAM_KEY, profile_key=profile_key)
--- a/src/plugins/plugin_xep_0277.py	Tue Dec 15 14:12:19 2015 +0100
+++ b/src/plugins/plugin_xep_0277.py	Fri Dec 11 09:12:11 2015 +0100
@@ -654,12 +654,13 @@
             jids_set = client.roster.getJidsSet(publishers_type, publishers)
             if publishers_type == C.ALL:
                 try:  # display messages from salut-a-toi@libervia.org or other PEP services
-                    services = self.host.plugins["EXTRA-PEP"].getConfig("get_items_from_list")
+                    services = self.host.plugins["EXTRA-PEP"].getFollowedEntities(profile_key)
                 except KeyError:
-                    pass
+                    pass  # plugin is not loaded
                 else:
-                    log.debug("Items from the following extra PEP services will be requested as well: %s" % ", ".join(services))
-                    jids_set.update([jid.JID(service) for service in services])
+                    if services:
+                        log.debug("Extra PEP followed entities: %s" % ", ".join([unicode(service) for service in services]))
+                        jids_set.update(services)
 
         node_data = []
         for jid_ in jids_set: