summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/figlet.py22
-rw-r--r--poezio/windows/image.py2
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