From 09def1cd63d08a0a569286d553cd79b5581c9088 Mon Sep 17 00:00:00 2001 From: dymik739 Date: Tue, 19 Sep 2023 18:20:31 +0300 Subject: [PATCH] transliteration-decoder: add automatic photo caption detection and let bot core deal with exceptions --- modules/transliteration-decoder/index.py | 51 ++++++++++++------------ 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/modules/transliteration-decoder/index.py b/modules/transliteration-decoder/index.py index 9415be2..b04c063 100644 --- a/modules/transliteration-decoder/index.py +++ b/modules/transliteration-decoder/index.py @@ -4,37 +4,36 @@ command_length = len(command) def escaped_string(unescaped_string): result_string = str(unescaped_string) - for i in ["/", "<", ">"]: + for i in ["<", ">"]: result_string = result_string.replace(i, f"\\{i}") return result_string if (command[0] in self.aliases) and (1 <= command_length <= 3): - try: - models = json.loads(readfile(self.path + "translate_models.json")) + models = json.loads(readfile(self.path + "translate_models.json")) - if command_length == 1: - chosen_model = "cz-ua" - else: - chosen_model = command[1] + if command_length == 1: + chosen_model = "cz-ua" + else: + chosen_model = command[1] - if command_length == 3: - text_to_decode = command[2] - else: - text_to_decode = self.MESSAGE['reply_to_message']['text'] - - decoded_text = text_to_decode - if chosen_model not in models: - self.RESPONSE = f"Такого варіанту транслітерації не існує. Доступні варіанти: " \ - f"{', '.join(list(models.keys()))}" - else: - for i in models[chosen_model]: - decoded_text = decoded_text.replace(i[0], i[1]) - decoded_text = decoded_text.replace(i[0].capitalize(), i[1].capitalize()) - decoded_text = decoded_text.replace(i[0].upper(), i[1].upper()) - - self.RESPONSE = f"Результат\n{escaped_string(decoded_text)}" - self.FORMAT = "HTML" + if command_length == 3: + text_to_decode = command[2] + else: + if self.MESSAGE['reply_to_message'].caption: + text_to_decode = self.MESSAGE['reply_to_message'].caption + elif self.MESSAGE['reply_to_message'].text: + text_to_decode = self.MESSAGE['reply_to_message'].text - except Exception as e: - print(f"[translit-decoder] Got exception: {e}") + decoded_text = text_to_decode + if chosen_model not in models: + self.RESPONSE = f"Такого варіанту транслітерації не існує. Доступні варіанти: " \ + f"{', '.join(list(models.keys()))}" + else: + for i in models[chosen_model]: + decoded_text = decoded_text.replace(i[0], i[1]) + decoded_text = decoded_text.replace(i[0].capitalize(), i[1].capitalize()) + decoded_text = decoded_text.replace(i[0].upper(), i[1].upper()) + + self.RESPONSE = f"Результат\n{escaped_string(decoded_text)}" + self.FORMAT = "HTML"