simple bot for getting media info

This commit is contained in:
Hubert Bryłkowski 2023-07-09 15:30:10 +02:00 committed by Piotr Gaczkowski
parent 26664d0b58
commit c73aac7a50
3 changed files with 31 additions and 2 deletions

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 from labeler.interfaces import Renderer, Printer
@ -23,3 +23,6 @@ class Application:
) )
self.renderer.render_label(label_definition) 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 self.snmp_port = 161
def get_installed_media(self) -> MediaDefinition: def get_installed_media(self) -> MediaDefinition:
pass return self.__get_printer_status()
def __get_printer_status(self): def __get_printer_status(self):
raw_snmp_data = self.__get_snmp_status().asNumbers() raw_snmp_data = self.__get_snmp_status().asNumbers()