import os 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: Application): self.app = app def media_info(self): media = self.app.get_installed_media() print(f"Installed medium: {media}") def simple_label(self, label_text, label_length=0): try: label = self.app.print_label(text=label_text, length=label_length) except Exception as e: print(f"There was an exception: {e}") def get_qrcode(self, label_text, label_length=0): label = self.app.render_qrcode_preview(text=label_text, length=label_length) return label def print_qrcode(self, label_text, label_length=0): try: label = self.app.print_qrcode(text=label_text, length=label_length) except Exception as e: print(f"There was an exception: {e}") # async def label_length(self): # await update.message.reply_text( # "Hello! Please tell me the length of the label, enter 0 for auto:" # ) # return LABEL_LENGTH # # async def label_text(self, update: Update, context: CallbackContext) -> int: # user_input = update.message.text # context.user_data["length"] = int(user_input) # await update.message.reply_text("Now, please tell me the text of the label:") # return LABEL_TEXT # # async def simple_label(self, update: Update, context: CallbackContext) -> int: # user_input = update.message.text # context.user_data["label"] = user_input # try: # label = self.app.print_label( # text=context.user_data["label"], length=context.user_data["length"] # ) # except Exception as e: # await update.message.reply_text(f"There was an exception: {e}") # return ConversationHandler.END # # await update.message.reply_photo( # label.bytes, f'Your label is: {context.user_data["label"]}' # ) # return ConversationHandler.END # # async def cancel(self, update: Update, context: CallbackContext) -> int: # await update.message.reply_text("Cancelled.") # return ConversationHandler.END if __name__ == "__main__": application = Application(PILRenderer(), E550W(os.environ.get("PRINTER_IP"))) bot = LabelingBot(application) LABEL_LENGTH, LABEL_TEXT = range(2) bot.media_info() label = bot.get_qrcode("512", 25) with open("label.png", "wb") as preview: preview.write(label.bytes) label = bot.print_qrcode("512", 25)