diff src/plugins/plugin_exp_lang_detect.py @ 2011:d95a6d553bec

plugin lang detect: added a parameter to (de)activate the detection
author Goffi <goffi@goffi.org>
date Sun, 17 Jul 2016 19:43:30 +0200
parents 4c5d8cd35690
children 1d3f73e065e1
line wrap: on
line diff
--- a/src/plugins/plugin_exp_lang_detect.py	Sun Jul 17 17:59:14 2016 +0200
+++ b/src/plugins/plugin_exp_lang_detect.py	Sun Jul 17 19:43:30 2016 +0200
@@ -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__)
 from sat.core import exceptions
@@ -41,12 +41,29 @@
     "description": _("""Detect and set message language when unknown""")
 }
 
+CATEGORY = D_(u"Misc")
+NAME = u"lang_detect"
+LABEL = D_(u"language detection")
+PARAMS = """
+    <params>
+    <individual>
+    <category name="{category_name}">
+        <param name="{name}" label="{label}" type="bool" value="true" />
+    </category>
+    </individual>
+    </params>
+    """.format(category_name=CATEGORY,
+               name=NAME,
+               label=_(LABEL),
+              )
+
 
 class LangDetect(object):
 
     def __init__(self, host):
         log.info(_(u"Language detection plugin initialization"))
         self.host = host
+        host.memory.updateParams(PARAMS)
         host.trigger.add("MessageReceived", self.MessageReceivedTrigger)
         host.trigger.add("messageSend", self.MessageSendTrigger)
 
@@ -60,9 +77,14 @@
 
     def MessageReceivedTrigger(self, client, message_elt, post_treat):
         """ Check if source is linked and repeat message, else do nothing  """
-        post_treat.addCallback(self.addLanguage)
+
+        lang_detect = self.host.memory.getParamA(NAME, CATEGORY, profile_key=client.profile)
+        if lang_detect:
+            post_treat.addCallback(self.addLanguage)
         return True
 
     def MessageSendTrigger(self, client, data, pre_xml_treatments, post_xml_treatments):
-        self.addLanguage(data)
+        lang_detect = self.host.memory.getParamA(NAME, CATEGORY, profile_key=client.profile)
+        if lang_detect:
+            self.addLanguage(data)
         return True