comparison sat/plugins/plugin_exp_lang_detect.py @ 4022:cdb7de398c85

plugin lang detect: don't detect the language if the body is empty
author Goffi <goffi@goffi.org>
date Thu, 23 Mar 2023 15:39:48 +0100
parents be6d91572633
children 524856bd7b19
comparison
equal deleted inserted replaced
4021:412b99c29d83 4022:cdb7de398c85
67 self.host = host 67 self.host = host
68 host.memory.updateParams(PARAMS) 68 host.memory.updateParams(PARAMS)
69 host.trigger.add("messageReceived", self.messageReceivedTrigger) 69 host.trigger.add("messageReceived", self.messageReceivedTrigger)
70 host.trigger.add("sendMessage", self.MessageSendTrigger) 70 host.trigger.add("sendMessage", self.MessageSendTrigger)
71 71
72 def addLanguage(self, mess_data): 72 def add_language(self, mess_data):
73 message = mess_data["message"] 73 message = mess_data["message"]
74 if len(message) == 1 and list(message.keys())[0] == "": 74 if len(message) == 1 and list(message.keys())[0] == "":
75 msg = list(message.values())[0] 75 msg = list(message.values())[0].strip()
76 lang = identifier.classify(msg)[0] 76 if msg:
77 mess_data["message"] = {lang: msg} 77 lang = identifier.classify(msg)[0]
78 mess_data["message"] = {lang: msg}
78 return mess_data 79 return mess_data
79 80
80 def messageReceivedTrigger(self, client, message_elt, post_treat): 81 def messageReceivedTrigger(self, client, message_elt, post_treat):
81 """ Check if source is linked and repeat message, else do nothing """ 82 """ Check if source is linked and repeat message, else do nothing """
82 83
83 lang_detect = self.host.memory.getParamA( 84 lang_detect = self.host.memory.getParamA(
84 NAME, CATEGORY, profile_key=client.profile 85 NAME, CATEGORY, profile_key=client.profile
85 ) 86 )
86 if lang_detect: 87 if lang_detect:
87 post_treat.addCallback(self.addLanguage) 88 post_treat.addCallback(self.add_language)
88 return True 89 return True
89 90
90 def MessageSendTrigger(self, client, data, pre_xml_treatments, post_xml_treatments): 91 def MessageSendTrigger(self, client, data, pre_xml_treatments, post_xml_treatments):
91 lang_detect = self.host.memory.getParamA( 92 lang_detect = self.host.memory.getParamA(
92 NAME, CATEGORY, profile_key=client.profile 93 NAME, CATEGORY, profile_key=client.profile
93 ) 94 )
94 if lang_detect: 95 if lang_detect:
95 self.addLanguage(data) 96 self.add_language(data)
96 return True 97 return True