diff options
-rw-r--r-- | plugins/figlet.py | 22 | ||||
-rw-r--r-- | poezio/windows/image.py | 2 |
2 files changed, 22 insertions, 2 deletions
diff --git a/plugins/figlet.py b/plugins/figlet.py index b8fcb813..4d4c7577 100644 --- a/plugins/figlet.py +++ b/plugins/figlet.py @@ -11,15 +11,35 @@ Say something in a Chat tab. .. note:: Can create fun things when used with :ref:`The rainbow plugin <rainbow-plugin>`. """ -from poezio.plugin import BasePlugin + import subprocess +from poezio.plugin import BasePlugin + + +def is_figlet() -> bool: + """Ensure figlet exists""" + process = subprocess.Popen( + ['which', 'figlet'], + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + return process.wait() == 0 class Plugin(BasePlugin): def init(self): + if not is_figlet(): + self.api.information( + 'Couldn\'t find the figlet program. ' + 'Please install it and reload the plugin.', + 'Error', + ) + return None + self.api.add_event_handler('muc_say', self.figletize) self.api.add_event_handler('conversation_say', self.figletize) self.api.add_event_handler('private_say', self.figletize) + return None def figletize(self, msg, tab): process = subprocess.Popen( diff --git a/poezio/windows/image.py b/poezio/windows/image.py index dfd2eae2..ebecb5ad 100644 --- a/poezio/windows/image.py +++ b/poezio/windows/image.py @@ -20,7 +20,7 @@ try: from gi.repository import Rsvg import cairo HAS_RSVG = True -except (ImportError, ValueError): +except (ImportError, ValueError, AttributeError): HAS_RSVG = False from poezio.windows.base_wins import Win |