diff --git a/omemo/__init__.py b/omemo/__init__.py index dfe0ea5807d191d1327d8ead57bc7023bf7d212f..038d4a42bcf4ab4da0424034851c1400be9d88d9 100644 --- a/omemo/__init__.py +++ b/omemo/__init__.py @@ -22,7 +22,6 @@ import logging import os import sqlite3 import ui -import re from common import demandimport demandimport.enable() @@ -47,19 +46,36 @@ from .xmpp import ( iq_ids_to_callbacks = {} -AXOLOTL_MISSING = 'Please install python-axolotl.' +AXOLOTL_MISSING = 'You are missing Python-Axolotl or use an outdated version' +PROTOBUF_MISSING = 'OMEMO cant import Google Protobuf, you can find help in ' \ + 'the GitHub Wiki' +ERROR_MSG = '' NS_HINTS = 'urn:xmpp:hints' +DB_DIR = gajim.gajimpaths.data_root log = logging.getLogger('gajim.plugin_system.omemo') + + try: from omemo.state import OmemoState - HAS_AXOLOTL = True -except ImportError as e: +except Exception as e: log.error(e) - HAS_AXOLOTL = False + ERROR_MSG = 'Error: ' + e -DB_DIR = gajim.gajimpaths.data_root +try: + import google.protobuf +except Exception as e: + log.error(e) + ERROR_MSG = PROTOBUF_MISSING + +try: + import axolotl + if axolotl.__version__ < "0.1.35": + ERROR_MSG = AXOLOTL_MISSING +except Exception as e: + log.error(e) + ERROR_MSG = AXOLOTL_MISSING class OmemoPlugin(GajimPlugin): @@ -71,9 +87,9 @@ class OmemoPlugin(GajimPlugin): @log_calls('OmemoPlugin') def init(self): # pylint: disable=attribute-defined-outside-init - if not HAS_AXOLOTL: + if ERROR_MSG: self.activatable = False - self.available_text = _(AXOLOTL_MISSING) + self.available_text = ERROR_MSG return self.events_handlers = { 'mam-message-received': (ged.PRECORE, self.mam_message_received),