diff --git a/skills/memobird/SKILL.md b/skills/memobird/SKILL.md index 1b1dfa8..bb54b61 100644 --- a/skills/memobird/SKILL.md +++ b/skills/memobird/SKILL.md @@ -7,6 +7,16 @@ description: Print text, images, and notes directly to the Memobird thermal prin Direct printing to the Memobird thermal printer on the local network. +## 📦 Installation + +This skill requires Python 3 and several libraries. Install them using: + +```bash +pip install -r requirements.txt +``` + +*Note: Depends on `requests` and `Pillow`.* + ## 🚀 Usage Use the `scripts/memobird_print.py` tool. By default, it targets the static IP `192.168.10.165`. diff --git a/skills/memobird/requirements.txt b/skills/memobird/requirements.txt new file mode 100644 index 0000000..c0db057 --- /dev/null +++ b/skills/memobird/requirements.txt @@ -0,0 +1,2 @@ +requests +Pillow diff --git a/skills/memobird/scripts/memobird_print.py b/skills/memobird/scripts/memobird_print.py index b9360df..6f8fffc 100755 --- a/skills/memobird/scripts/memobird_print.py +++ b/skills/memobird/scripts/memobird_print.py @@ -1,14 +1,28 @@ #!/usr/bin/env python3 import sys import os -import requests import json import base64 from io import BytesIO from random import randint -from PIL import Image as PILImg, ImageOps import argparse +# Dependency Check +MISSING_DEPS = [] +try: + import requests +except ImportError: + MISSING_DEPS.append("requests") +try: + from PIL import Image as PILImg, ImageOps +except ImportError: + MISSING_DEPS.append("Pillow (PIL)") + +if MISSING_DEPS: + print(f"Error: Missing dependencies: {', '.join(MISSING_DEPS)}") + print("Please install them using: pip install " + " ".join(["requests", "Pillow"])) + sys.exit(1) + # Default IP for Moritz's Memobird DEFAULT_HOST = "192.168.10.165" @@ -48,6 +62,14 @@ class MemobirdSender: resp = requests.post(self.uri, json=payload, timeout=10) resp.raise_for_status() return resp.status_code + except requests.exceptions.ConnectTimeout: + print(f"Error: Connection to Memobird at {self.host} timed out.") + print("Check if the printer is powered on and on the same network.") + sys.exit(1) + except requests.exceptions.ConnectionError: + print(f"Error: Could not connect to Memobird at {self.host}.") + print("Verify the IP address and network connectivity.") + sys.exit(1) except Exception as e: print(f"Error sending to Memobird: {e}") sys.exit(1)