Add Pablo: the friendly label printer helper #5

Merged
marsien merged 15 commits from add-pablo into master 2026-04-16 14:02:48 +00:00
3 changed files with 31 additions and 2 deletions
Showing only changes of commit 27798e6e54 - Show all commits

View file

@ -0,0 +1,26 @@
import os
from telegram.ext import CommandHandler, ApplicationBuilder
from labeler.app.labeler import Application
from labeler.infra.e550w_printer.printer import E550W
from labeler.infra.renderer import PILRenderer
class LabelingBot:
def __init__(self, app):
self.app = app
async def media_info(self, update, context):
media = self.app.get_installed_media()
await update.message.reply_text(f"Installed media: {media.description}")
if __name__ == "__main__":
application = Application(PILRenderer(), E550W(os.environ.get("PRINTER_IP")))
bot = LabelingBot(application)
app = ApplicationBuilder().token(os.environ["TELEGRAM_TOKEN"]).build()
app.add_handler(CommandHandler("media_info", bot.media_info))
app.run_polling()

View file

@ -1,4 +1,4 @@
from labeler.domain.objects import Label, LabelRequest, LabelDefinition
from labeler.domain.objects import Label, LabelRequest, LabelDefinition, MediaDefinition
from labeler.interfaces import Renderer, Printer
@ -23,3 +23,6 @@ class Application:
)
self.renderer.render_label(label_definition)
def get_installed_media(self) -> MediaDefinition:
return self.printer.get_installed_media()

View file

@ -24,7 +24,7 @@ class E550W(Printer):
self.snmp_port = 161
def get_installed_media(self) -> MediaDefinition:
pass
return self.__get_printer_status()
def __get_printer_status(self):
raw_snmp_data = self.__get_snmp_status().asNumbers()