diff --git a/bin/lib/Language.py b/bin/lib/Language.py index 1b8eed2b..70d5b685 100755 --- a/bin/lib/Language.py +++ b/bin/lib/Language.py @@ -388,6 +388,8 @@ class LanguageTranslator: return language def translate(self, content, source=None, target="en"): # TODO source target + if target not in LIST_LANGUAGES: + return None translation = None if content: if not source: @@ -407,15 +409,17 @@ class LanguageTranslator: return translation -LIST_LANGUAGES = [] +LIST_LANGUAGES = {} def get_translation_languages(): global LIST_LANGUAGES if not LIST_LANGUAGES: try: - LIST_LANGUAGES = LanguageTranslator().languages() + LIST_LANGUAGES = {} + for lang in LanguageTranslator().languages(): + LIST_LANGUAGES[lang['iso']] = lang['language'] except Exception as e: print(e) - LIST_LANGUAGES = [] + LIST_LANGUAGES = {} return LIST_LANGUAGES diff --git a/bin/lib/chats_viewer.py b/bin/lib/chats_viewer.py index e1809f47..5b2e2da6 100755 --- a/bin/lib/chats_viewer.py +++ b/bin/lib/chats_viewer.py @@ -23,6 +23,7 @@ from lib.objects import ChatThreads from lib.objects import Messages from lib.objects import UsersAccount from lib.objects import Usernames +from lib import Language config_loader = ConfigLoader() r_db = config_loader.get_db_conn("Kvrocks_DB") @@ -341,6 +342,8 @@ def api_get_chat(chat_id, chat_instance_uuid, translation_target=None, nb=-1, pa if meta['subchannels']: meta['subchannels'] = get_subchannels_meta_from_global_id(meta['subchannels']) else: + if translation_target not in Language.LIST_LANGUAGES: + translation_target = None meta['messages'], meta['pagination'], meta['tags_messages'] = chat.get_messages(translation_target=translation_target, nb=nb, page=page) return meta, 200 diff --git a/bin/lib/objects/Items.py b/bin/lib/objects/Items.py index d29fc521..7b79749a 100755 --- a/bin/lib/objects/Items.py +++ b/bin/lib/objects/Items.py @@ -629,43 +629,6 @@ def get_item_metadata(item_id, item_content=None): def get_item_content(item_id): return item_basic.get_item_content(item_id) -def get_item_content_html2text(item_id, item_content=None, ignore_links=False): - if not item_content: - item_content = get_item_content(item_id) - h = html2text.HTML2Text() - h.ignore_links = ignore_links - h.ignore_images = ignore_links - return h.handle(item_content) - -def remove_all_urls_from_content(item_id, item_content=None): - if not item_content: - item_content = get_item_content(item_id) - regex = r'\b(?:http://|https://)?(?:[a-zA-Z\d-]{,63}(?:\.[a-zA-Z\d-]{,63})+)(?:\:[0-9]+)*(?:/(?:$|[a-zA-Z0-9\.\,\?\'\\\+&%\$#\=~_\-]+))*\b' - url_regex = re.compile(regex) - urls = url_regex.findall(item_content) - urls = sorted(urls, key=len, reverse=True) - for url in urls: - item_content = item_content.replace(url, '') - - regex_pgp_public_blocs = r'-----BEGIN PGP PUBLIC KEY BLOCK-----[\s\S]+?-----END PGP PUBLIC KEY BLOCK-----' - regex_pgp_signature = r'-----BEGIN PGP SIGNATURE-----[\s\S]+?-----END PGP SIGNATURE-----' - regex_pgp_message = r'-----BEGIN PGP MESSAGE-----[\s\S]+?-----END PGP MESSAGE-----' - re.compile(regex_pgp_public_blocs) - re.compile(regex_pgp_signature) - re.compile(regex_pgp_message) - - res = re.findall(regex_pgp_public_blocs, item_content) - for it in res: - item_content = item_content.replace(it, '') - res = re.findall(regex_pgp_signature, item_content) - for it in res: - item_content = item_content.replace(it, '') - res = re.findall(regex_pgp_message, item_content) - for it in res: - item_content = item_content.replace(it, '') - - return item_content - # API # def get_item(request_dict): diff --git a/var/www/blueprints/chats_explorer.py b/var/www/blueprints/chats_explorer.py index 081df950..c24370fb 100644 --- a/var/www/blueprints/chats_explorer.py +++ b/var/www/blueprints/chats_explorer.py @@ -82,6 +82,8 @@ def chats_explorer_chat(): chat_id = request.args.get('id') instance_uuid = request.args.get('uuid') target = request.args.get('target') + if target == "Don't Translate": + target = None nb_messages = request.args.get('nb') page = request.args.get('page') chat = chats_viewer.api_get_chat(chat_id, instance_uuid, translation_target=target, nb=nb_messages, page=page) @@ -111,6 +113,8 @@ def objects_subchannel_messages(): subchannel_id = request.args.get('id') instance_uuid = request.args.get('uuid') target = request.args.get('target') + if target == "Don't Translate": + target = None nb_messages = request.args.get('nb') page = request.args.get('page') subchannel = chats_viewer.api_get_subchannel(subchannel_id, instance_uuid, translation_target=target, nb=nb_messages, page=page) @@ -128,6 +132,8 @@ def objects_thread_messages(): thread_id = request.args.get('id') instance_uuid = request.args.get('uuid') target = request.args.get('target') + if target == "Don't Translate": + target = None nb_messages = request.args.get('nb') page = request.args.get('page') thread = chats_viewer.api_get_thread(thread_id, instance_uuid, translation_target=target, nb=nb_messages, page=page) diff --git a/var/www/templates/chats_explorer/block_translation.html b/var/www/templates/chats_explorer/block_translation.html index 63d47b7c..6c027921 100644 --- a/var/www/templates/chats_explorer/block_translation.html +++ b/var/www/templates/chats_explorer/block_translation.html @@ -12,7 +12,7 @@ {% endif %} {% for language in translation_languages %} - + {% endfor %}