From f52a97f0fec7cc43d04a41038d98bf01b6c80f9f Mon Sep 17 00:00:00 2001 From: trav Date: Sun, 23 Jul 2023 02:24:42 -0400 Subject: [PATCH] current working version --- __pycache__/addtoDB.cpython-38.pyc | Bin 1386 -> 1387 bytes addtoDB.py | 2 +- drawing.png | Bin 8936 -> 5183 bytes freeze_frame.jpg | Bin 24152 -> 37950 bytes kiosk6.py | 450 +++++++++++++++++++++++------ merged_image.png | Bin 12959 -> 9160 bytes qr.jpg | Bin 690 -> 685 bytes scuttlebot.js | 2 +- ssb-post.sh | 2 +- to_print.zpl | 2 +- 10 files changed, 369 insertions(+), 89 deletions(-) diff --git a/__pycache__/addtoDB.cpython-38.pyc b/__pycache__/addtoDB.cpython-38.pyc index a8189727b1c8048ff48f84a2ee2d4f548a8a7ab6..302e9d6c4b0435e9fd5b4bd320e3a1aeaf449b8b 100644 GIT binary patch delta 36 qcmaFG^_q(}l$V!_0SM&2PfVGyk@pfa2YY^6T25wO>gH$6EsOxiYYVsl delta 35 pcmaFO^@@u(l$V!_0SKy3^rlST$a{&Ioh>ORzce{x^K<4FMgYHo3wi(m diff --git a/addtoDB.py b/addtoDB.py index 2f54312..3be2c59 100644 --- a/addtoDB.py +++ b/addtoDB.py @@ -59,7 +59,7 @@ def addToSSB(pathToImage,description,mintOrGive): json_object = json.loads(newssb) except json.JSONDecodeError: print("Invalid JSON") - return "blouch" # Return the blouch + return "offline" # Return the blouch # get the key for the post we just made key = json_object["key"] diff --git a/drawing.png b/drawing.png index dbad1cac411f474eb0c5a76b210938dba25e86ed..a27829039805db9e5e933f95a23975dcf58b5575 100644 GIT binary patch literal 5183 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', lambda e: self.update_users_list()) self.entry.pack(side="left") @@ -109,16 +148,24 @@ class Screen2(tk.Frame): self.container = ttk.Frame(self, height=500) # Define a height here self.container.pack(fill='both', expand=True, padx=20, pady=20) - # Initialize users list from users.json + # Initialize users list from users.json self.users = self.get_users_from_file() self.update_users_list() + # Highlight selected user if one exists + if GlobalVars.selected_user is not None: + for widget in self.container.winfo_children(): + if isinstance(widget, tk.Button) and widget['text'] == GlobalVars.selected_user: + widget.configure(relief=tk.SUNKEN, bg="light blue") + self.selected_label = widget + + # The 'Done' button to navigate to next screen - self.done_button = tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen3), height=3, width=30, bg='peach puff', font=('Helvetica', 16)) + self.done_button = tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen3), height=3, width=30, bg='peach puff', font=BUTTON_FONT) self.done_button.pack(side="bottom", padx=20, pady=10) # The 'Refresh List' button - self.refresh_button = tk.Button(self, text="Refresh List (takes a minute)", command=self.refresh_users, height=3, width=30, bg='peach puff', font=('Helvetica', 16)) + self.refresh_button = tk.Button(self, text="Refresh List (takes 30 seconds or so)", command=self.refresh_users, height=3, width=30, bg='peach puff', font=BUTTON_FONT) self.refresh_button.pack(side="bottom", padx=20, pady=10) master.add_home_button(self) @@ -194,15 +241,15 @@ class Screen2(tk.Frame): def on_user_clicked(self, button, user): # Remove highlight from previously selected user - if Screen2.selected_label is not None and self.widget_exists(Screen2.selected_label): - Screen2.selected_label.configure(relief=tk.FLAT, bg='SystemButtonFace') # default color + if self.selected_label is not None and self.widget_exists(self.selected_label): + self.selected_label.configure(relief=tk.FLAT, bg='SystemButtonFace') # default color # Store selected user and button - Screen2.selected_user = user['id'] - Screen2.selected_label = button + GlobalVars.selected_user = user['id'] + self.selected_label = button # Highlight clicked label - Screen2.selected_label.configure(relief=tk.SUNKEN, bg="light blue") + self.selected_label.configure(relief=tk.SUNKEN, bg="light blue") @@ -211,7 +258,12 @@ class Screen2(tk.Frame): class Screen3(tk.Frame): def __init__(self, master=None): tk.Frame.__init__(self, master, bg='#bcfef9') - master.add_home_button(self) + global BUTTON_FONT + global TEXT_FONT + + # Create the "Start Over" button + home_button = tk.Button(text="Start Over", command=self.homer, bg='peach puff', font=BUTTON_FONT) + home_button.place(x=0, y=0) # top-left corner self.vid = cv2.VideoCapture(0) self.is_capturing = True @@ -224,15 +276,19 @@ class Screen3(tk.Frame): # Info and button on the right self.text_frame = tk.Frame(self, bg='#bcfef9') self.text_frame.pack(side="right", fill="both", expand=True) - tk.Label(self.text_frame, text="Now we will take a picture of your item to show up on Scuttlebutt", font=("Helvetica", 16), bg='#bcfef9').pack(pady=10) - self.button = tk.Button(self.text_frame, text="Take Photo", command=self.take_photo, font=("Helvetica", 32), height=3, width=37, bg='peach puff') + tk.Label(self.text_frame, text="Now we will take a picture of your item to show up on Scuttlebutt.\n\nIf you tap Take Photo a second time it will re-take the photo\nbut wont show you a preview during the countdown (this is a bug)", font=("Helvetica", 16), bg='#bcfef9').pack(pady=10) + self.button = tk.Button(self.text_frame, text="Take Photo", command=self.take_photo, height=3, width=37, bg='peach puff', font=BUTTON_FONT) self.button.pack(pady=10) - self.done_button = tk.Button(self, text="Done", command=self.done, height=3, width=30, bg='peach puff') + self.done_button = tk.Button(self, text="Done", command=self.done, height=3, width=30, bg='peach puff', font=BUTTON_FONT) self.done_button.place(relx=0.9, rely=0.9, anchor='se') self.update_image() + def homer(self): + self.__del__() + self.master.switch_frame(Screen0) + def update_image(self): if self.is_capturing: ret, frame = self.vid.read() @@ -279,15 +335,128 @@ class Screen3(tk.Frame): if self.vid.isOpened(): self.vid.release() +# draw a sticker +class Screen4(tk.Frame): + def __init__(self, master): + tk.Frame.__init__(self, master, bg='#bcfef9') + global BUTTON_FONT + global TEXT_FONT + + # Configure column minsizes + self.grid_columnconfigure(0, minsize=665) # considering 675 width + 50 padding on each side + self.grid_columnconfigure(1, minsize=100) + self.grid_columnconfigure(2, minsize=100) + + # Creating a frame for the left side of the screen for drawing + self.left_frame = tk.Frame(self, bg='#bcfef9') + self.left_frame.grid(row=0, column=0, padx=20) + + # Frame for the instructions + self.center_frame = tk.Frame(self, bg='#bcfef9') + self.center_frame.grid(row=0, column=1, padx=20) + + # Frame for the tools + self.right_frame = tk.Frame(self, bg='#bcfef9') + self.right_frame.grid(row=0, column=2, padx=60) + + # Add instructions + self.label = tk.Label(self.left_frame, text="You may now draw your sticker :) This will be printed ~ 1.25 by 2.25 inches. You can include contact info for yourself, the name of the item, a drawing, or whatever you want, it's your artistic expression. You might have better results using thicker lines (see drawing tools on the right). In the bottom right of the sticker will be a small QR code which links to the Scuttlebutt post for your item. The image you are drawing now will not be posted to Scuttlebutt.", + wraplength=600, # adjust to suit needs + font=TEXT_FONT) + self.label.pack(pady=10) + + # is this the drawing area + self.drawing = Image.new('1', (635, 360), 1) + self.draw = ImageDraw.Draw(self.drawing) + self.last_draw = None + + # Set initial drawing color to black and size to 1 + self.draw_color = 'black' + self.draw_size = 1 + + # Creating the Canvas for drawing + self.canvas = Canvas(self.left_frame, width=635, height=360, bg='white') + self.canvas.bind("", self.draw_line) + self.canvas.pack(pady=20) + self.canvas.bind("", self.reset_last_draw) + self.add_qr_box() # Add QR box to the canvas + + + + + #Create a frame for the buttons grid + self.buttons_frame = tk.Frame(self.right_frame, bg='#bcfef9') + self.buttons_frame.pack(pady=50) + + # Add Draw Size buttons + tk.Button(self.buttons_frame, text=".", command=lambda: self.set_draw_size(1), height=3, width=10, bg='peach puff').grid(row=0, column=0, padx=5, pady=5) + tk.Button(self.buttons_frame, text="*", command=lambda: self.set_draw_size(2), height=3, width=10, bg='peach puff').grid(row=1, column=0, padx=5, pady=5) + tk.Button(self.buttons_frame, text="⚬", command=lambda: self.set_draw_size(3), height=3, width=10, bg='peach puff').grid(row=2, column=0, padx=5, pady=5) + tk.Button(self.buttons_frame, text="⬤", command=lambda: self.set_draw_size(4), height=3, width=10, bg='peach puff').grid(row=3, column=0, padx=5, pady=5) + + # Creating color buttons + tk.Button(self.buttons_frame, height=5, width=10, bg='black', command=lambda: self.set_draw_color('black')).grid(row=0, column=1, padx=5, pady=5) + tk.Button(self.buttons_frame, height=5, width=10, bg='white', command=lambda: self.set_draw_color('white')).grid(row=1, column=1, padx=5, pady=5) + + # Add label for pen color buttons + self.color_label = tk.Label(self.right_frame, text="^ drawing tools ^", font=TEXT_FONT) + self.color_label.pack(pady=5) + + # Add Clear Drawing Button + tk.Button(self.right_frame, text="clear drawing", command=self.clear_drawing, height=3, width=20, bg='peach puff', font=BUTTON_FONT).pack(pady=10) + + # Done button + tk.Button(self.right_frame, text="Done", command=self.next, height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) + + # Adding a home button + master.add_home_button(self.right_frame) + + def draw_line(self, event): + x, y = event.x, event.y + if self.last_draw: + self.canvas.create_line(*self.last_draw, x, y, fill=self.draw_color, width=self.draw_size) + self.draw.line([*self.last_draw, x, y], fill=0 if self.draw_color == 'black' else 1, width=self.draw_size) + self.last_draw = (x, y) + + def next(self): + # Save the drawing as a .png file + self.drawing.save("drawing.png") + + # next screen + self.master.switch_frame(Screen13) + + def reset_last_draw(self, event): + self.last_draw = None + + def set_draw_color(self, color): + self.draw_color = color + + def set_draw_size(self, size): + self.draw_size = size + + def clear_drawing(self): + self.canvas.delete("all") # Clear canvas + self.drawing = Image.new('1', (635, 360), 1) # Create new blank drawing image + self.draw = ImageDraw.Draw(self.drawing) # Prepare to draw on the new blank image + self.add_qr_box() # Add QR box to the canvas + + def add_qr_box(self): + self.canvas.create_rectangle(506, 217, 627, 346, outline='black', fill='white') + self.canvas.create_text(540, 260, text="QR", fill="black") + + + # typed description class Screen5(tk.Frame): def __init__(self, master): tk.Frame.__init__(self, master, bg='#bcfef9') master.add_home_button(self) + global BUTTON_FONT + global TEXT_FONT # Adding the information label - self.info_label = tk.Label(self, text="Please enter any information you'd like about your item. This can be make/model of the itme, a name for the item, diagnostic information, provenance, historical context, contact info, stories, whatever. Along with the photo, this will be posted on Scuttlebutt forever and cannot be deleted. You can always add more information later via any Scuttlebutt client.", font=("Helvetica", 16), wraplength=500) + self.info_label = tk.Label(self, text="Please enter any information you'd like about your item. This can be make/model of the item, a name for the item, diagnostic information, provenance, historical context, contact info, stories, whatever. Along with the photo, this will be posted on Scuttlebutt forever and cannot be deleted. You can always add more information later via any Scuttlebutt client.", font=TEXT_FONT, wraplength=500) self.info_label.pack(pady=10) # Adding the text entry field @@ -295,7 +464,7 @@ class Screen5(tk.Frame): self.info_entry.pack(pady=10) # Adding the done button - self.done_button = tk.Button(self, text="Done", command=self.save_info_and_switch, height=3, width=30, bg='peach puff') + self.done_button = tk.Button(self, text="Done", command=self.save_info_and_switch, height=3, width=30, bg='peach puff', font=BUTTON_FONT) self.done_button.pack(pady=10) # Setting the focus to the text entry field @@ -307,25 +476,33 @@ class Screen5(tk.Frame): info_text = self.info_entry.get("1.0", "end-1c") # escape the newlines!: info_text = info_text.replace('\n', '\\n') - self.master.switch_frame(Screen8) + self.master.switch_frame(Screen11) class Screen6(tk.Frame): def __init__(self, master): tk.Frame.__init__(self, master, bg='#bcfef9') + global BUTTON_FONT + global TEXT_FONT master.add_home_button(self) - tk.Button(self, text="I Understand", command=lambda: master.switch_frame(Screen3), height=3, width=30, bg='peach puff').pack(pady=10) + tk.Button(self, text="I Understand", command=lambda: master.switch_frame(Screen3), height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) class Screen7(tk.Frame): def __init__(self, master): tk.Frame.__init__(self, master, bg='#bcfef9') + global BUTTON_FONT + global TEXT_FONT master.add_home_button(self) # Assume there's a method to manage the text entry - tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen6), height=3, width=30, bg='peach puff').pack(pady=10) + self.info_label = tk.Label(self, text="Hiii sorry this hasn't been implemented yet!", font=("Helvetica", 16), wraplength=500) + self.info_label.pack() + #tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen6), height=3, width=30, bg='peach puff').pack(pady=10) -# draw the tag! :) +# draw a ribbon tag class Screen8(tk.Frame): def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT tk.Frame.__init__(self, master, bg='#bcfef9') # Creating a frame for the left side of the screen for drawing @@ -341,13 +518,11 @@ class Screen8(tk.Frame): self.right_frame.pack(side='left', padx=50) # Add instructions - self.label = tk.Label(self.center_frame, text="You may now draw your tag! This will be printed as either a sticker or a ribbon, both of which are 1.25 by 2.25 inches. You can include contact info for yourself, the name of the item, a drawing, or whatever you want, it's your artistic expression. In the bottom right will be a small QR code which links to the Scuttlebutt post for your item. The image you are drawing now will not be posted to Scuttlebutt.", - wraplength=400, # adjust to suit needs - font=("Helvetica", 16)) + self.label = tk.Label(self.center_frame, text="You may now draw your tag! You might like to include contact info for yourself, the name of the item, a drawing, or whatever you want, it's your artistic expression. Thin lines might not show up well (try different drawing tools on the right). In the bottom right of your tag will be a small QR code which links to the Scuttlebutt post for your item. The image you are drawing now will not be posted to Scuttlebutt.", wraplength=400, font=TEXT_FONT) self.label.pack(pady=50) - # is this the drawing area? - self.drawing = Image.new('1', (361, 675), 1) + # the drawing area + self.drawing = Image.new('1', (475, 375), 1) self.draw = ImageDraw.Draw(self.drawing) self.last_draw = None @@ -356,7 +531,7 @@ class Screen8(tk.Frame): self.draw_size = 1 # Creating the Canvas for drawing - self.canvas = Canvas(self.left_frame, width=361, height=675, bg='white') + self.canvas = Canvas(self.left_frame, width=475, height=375, bg='white') self.canvas.bind("", self.draw_line) self.canvas.pack(pady=20) self.canvas.bind("", self.reset_last_draw) @@ -381,10 +556,10 @@ class Screen8(tk.Frame): self.color_label.pack(pady=5) # Add Clear Drawing Button - tk.Button(self.right_frame, text="clear drawing", command=self.clear_drawing, height=3, width=20, bg='peach puff').pack(pady=10) + tk.Button(self.right_frame, text="clear drawing", command=self.clear_drawing, height=3, width=20, bg='peach puff', font=BUTTON_FONT).pack(pady=10) # Done button - tk.Button(self.right_frame, text="Done", command=self.next, height=3, width=30, bg='peach puff').pack(pady=10) + tk.Button(self.right_frame, text="Done", command=self.next, height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) # Adding a home button master.add_home_button(self.center_frame) @@ -401,7 +576,7 @@ class Screen8(tk.Frame): self.drawing.save("drawing.png") # next screen - self.master.switch_frame(Screen11) + self.master.switch_frame(Screen13) def reset_last_draw(self, event): self.last_draw = None @@ -414,51 +589,96 @@ class Screen8(tk.Frame): def clear_drawing(self): self.canvas.delete("all") # Clear canvas - self.drawing = Image.new('1', (361, 675), 1) # Create new blank drawing image + self.drawing = Image.new('1', (475, 375), 1) # Create new blank drawing image self.draw = ImageDraw.Draw(self.drawing) # Prepare to draw on the new blank image self.add_qr_box() # Add QR box to the canvas def add_qr_box(self): - self.canvas.create_rectangle(232, 546, 361, 667, outline='black', fill='white') - self.canvas.create_text(300, 600, text="QR", fill="black") + self.canvas.create_rectangle(346, 229, 475, 358, outline='black', fill='white') + self.canvas.create_text(355, 260, text="QR", fill="black") # txt update class Screen9(tk.Frame): def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT tk.Frame.__init__(self, master, bg='#bcfef9') master.add_home_button(self) # Assume there's a method to manage the text entry - tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen10), height=3, width=30, bg='peach puff').pack(pady=10) + tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen10), height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) #THX BYE class Screen10(tk.Frame): def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT + GlobalVars.selected_user = None # Reset the selected user tk.Frame.__init__(self, master, bg='#bcfef9') tk.Label(self, text="Thank you!", bg='#bcfef9', font=('Helvetica', 48)).pack() - tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen0), height=3, width=30, bg='peach puff').pack(pady=10) + tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen0), height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) - -#sticker or tag? then print +# Sticker or tag? class Screen11(tk.Frame): def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT tk.Frame.__init__(self, master, bg='#bcfef9') + master.add_home_button(self) + # Instructions + self.label = tk.Label(self, text="Do you want to design a sticker or a ribbon? The sticker is suitable for hard surfaces and the ribbon is a tag suitable for sewing into textiles.", + wraplength=400, # adjust to suit needs + font=("Helvetica", 16)) + self.label.pack(pady=50) + + # Button functions + def select_ribbon(): + global print_type + print_type = 'ribbon' + master.switch_frame(Screen8) + + def select_sticker(): + global print_type + print_type = 'sticker' + master.switch_frame(Screen4) + + # Buttons + tk.Button(self, text="Sticker", command=select_sticker, height=4, width=39, bg='peach puff', font=BUTTON_FONT).pack(side='top', pady=30) + tk.Button(self, text="Ribbon tag", command=select_ribbon, height=4, width=39, bg='peach puff', font=BUTTON_FONT).pack(side='top', pady=30) + + +# after QR scanned for lookup +class Screen12(tk.Frame): + def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT + tk.Frame.__init__(self, master, bg='#bcfef9') + master.add_home_button(self) + tk.Button(self, text="not implemented yet", command=lambda: master.switch_frame(Screen8), height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) + tk.Button(self, text="Post Update (also not implemented)", command=lambda: master.switch_frame(Screen9), height=3, width=30, bg='peach puff', font=BUTTON_FONT).pack(pady=10) + +#time to print +class Screen13(tk.Frame): + def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT + tk.Frame.__init__(self, master, bg='#bcfef9') + master.add_home_button(self) # Create a container to hold the widgets container = tk.Frame(self) container.place(relx=0.5, rely=0.5, anchor='center') # instructions - tk.Label(container, text="Wonderful! It is now time to post your item to Scuttlebutt and to print your tag. You can still cancel by hitting Start Over if you like. Otherwise choose whether you'd like a sticker or a fabric tag printed!", wraplength=600, font=('Helvetica', 16)).grid(row=0, column=0, columnspan=2) + tk.Label(container, text="Wonderful! It is now time to post your item to Scuttlebutt and to print your tag. You can still cancel by hitting Start Over if you like.", wraplength=600, font=TEXT_FONT).grid(row=0, column=0, columnspan=2) # buttons master.add_home_button(self) - tk.Button(container, text="Sticker", command=lambda: self.printy(2), height=3, width=30, bg='peach puff').grid(row=2, column=0, pady=20) - tk.Button(container, text="Tag", command=lambda: self.printy(1), height=3, width=30, bg='peach puff').grid(row=2, column=1, pady=20) + tk.Button(container, text="Print", command=self.printy, height=3, width=30, bg='peach puff', font=BUTTON_FONT).grid(row=2, column=0, pady=20) # go ahead and print the thing - def printy(self, orientation): - + def printy(self): + global print_type # Specify the path to your image file path_to_image = "/home/trav/Documents/custodiosk/freeze_frame.jpg" @@ -467,8 +687,8 @@ class Screen11(tk.Frame): key = addtoDB.addToSSB(path_to_image,info_text,1) # ssb give! (make sure we have a UID to give to first) - if Screen2.selected_user != "": - nothing = addtoDB.addToSSB(Screen2.selected_user,key,2) + if GlobalVars.selected_user and GlobalVars.selected_user.strip() != "": + nothing = addtoDB.addToSSB(GlobalVars.selected_user,key,2) # Create qr code #from https://ourcodeworld.com/articles/read/554/how-to-create-a-qr-code-image-or-svg-in-python @@ -481,6 +701,7 @@ class Screen11(tk.Frame): # Add data qr.add_data(key) qr.make(fit=True) + # Create an image from the QR Code instance img = qr.make_image() whereToSaveQR = 'qr.jpg' @@ -490,43 +711,46 @@ class Screen11(tk.Frame): drawing = Image.open("drawing.png") # drawing qr = Image.open("qr.jpg") # qr - # merge em - merged_image = Image.new('L', (367, 725), "white") - merged_image.paste(drawing, (0, 25)) - merged_image.paste(qr, (232, 571)) # paste without mask - merged_image.save("merged_image.png") + #### merge em + merged_image = Image.new('L', (675, 375), "white") + ## if sticker + if print_type == "sticker": + merged_image.paste(drawing, (0, 0)) + merged_image.paste(qr, (506, 217)) + merged_image.save("merged_image.png") - # if sticker we gotta rotate 90 degrees.... I think - if orientation == 2: + # if ribbon we gotta rotate 90 degrees and paste QR in different spot + if print_type == "ribbon": + merged_image.paste(drawing, (100, 0)) + merged_image.paste(qr, (446, 229)) # paste without mask + merged_image.save("merged_image.png") image = Image.open("merged_image.png") rotated_image = image.transpose(Image.ROTATE_270) # Transpose and rotate 90 degrees rotated_image.save("merged_image.png") - # Get the ZPL code for the image zpl_code = tozpl.print_to_zpl("merged_image.png") - # send the ZPL to the printer babeee - #print(zpl_code) #only needed for testing - - #save the zpl # Open the file in write mode with open("to_print.zpl", "w") as file: # Write the string to the file file.write(zpl_code) + #print(zpl_code) #only needed for testing + #print (print_type) + # print to sticker printer - if orientation == 2: + if print_type == "sticker": try: result = subprocess.Popen('lpr -P sticker_printer -o raw to_print.zpl', shell=True, stdout=subprocess.PIPE, ) except: print('traceback.format_exc():\n%s' % traceback.format_exc()) exit() # or print to tag printer: - elif orientation == 1: + if print_type == "ribbon": try: result = subprocess.Popen('lpr -P tag-printer -o raw to_print.zpl', shell=True, stdout=subprocess.PIPE, ) except: @@ -535,19 +759,75 @@ class Screen11(tk.Frame): self.master.switch_frame(Screen10) # Switching to Screen10 after Done -class Screen12(tk.Frame): - def __init__(self, master): - tk.Frame.__init__(self, master, bg='#bcfef9') - master.add_home_button(self) - tk.Button(self, text="Re-print Tag", command=lambda: master.switch_frame(Screen8), height=3, width=30, bg='peach puff').pack(pady=10) - tk.Button(self, text="Post Update", command=lambda: master.switch_frame(Screen9), height=3, width=30, bg='peach puff').pack(pady=10) - +# lookup item class Screen14(tk.Frame): def __init__(self, master): + global BUTTON_FONT + global TEXT_FONT tk.Frame.__init__(self, master, bg='#bcfef9') - tk.Button(self, text="Done", command=lambda: master.switch_frame(Screen12), height=3, width=30, bg='peach puff').pack(pady=10) + + # divide the screen into two halves + left_frame = tk.Frame(self, bg='#bcfef9') # updated background color + right_frame = tk.Frame(self, bg='#bcfef9') # updated background color + left_frame.pack(side='left', fill='both', expand=True) + right_frame.pack(side='right', fill='both', expand=True) + + # add the home button to the right frame + master.add_home_button(right_frame) + + # setup the instruction on the right side, with wraplength to avoid running off the screen + instruction = tk.Label(right_frame, text="Please hold the QR code of a Custodisco tag up to the camera to be scanned. This isn't currently working! Sorry! If you download a Scuttlebutt client and follow the Custodisco Kiosk account you can look up Custodisco items on your own device. Ask someone who knows about Scuttlebutt for help ;)", font=("Helvetica", 16), bg='#bcfef9', wraplength=300) # updated wraplength + instruction.pack(pady=100) # increased padding to avoid overlap with the button + + # setup the video feed on the left side + self.video = tk.Label(left_frame, bg='#bcfef9') # updated background color + self.video.pack(pady=10) + + # Open the camera for video capture + self.cap = cv2.VideoCapture(0) + self.master.after(10, self.update_frame) + + def update_frame(self): + global qr_code_value + + # Capture frame-by-frame + ret, frame = self.cap.read() + + # Check if the frame is not None + if not ret or frame is None: + print("Failed to capture frame") + return + + # Our operations on the frame come here + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # Look for QR codes in the frame + codes = decode(gray) + + for code in codes: + # If a QR code is detected, store its value and switch to Screen12 + qr_code_value = code.data.decode('utf-8') + self.cap.release() # Close the video capture + self.master.switch_frame(Screen12) + return + + # Display the resulting frame + cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA) + img = Image.fromarray(cv2image) + imgtk = ImageTk.PhotoImage(image=img) + self.video.imgtk = imgtk + self.video.configure(image=imgtk) + self.master.after(10, self.update_frame) # Call the update_frame function after 10 milliseconds + + def destroy(self): + self.cap.release() # Close the video capture when the frame is destroyed + super().destroy() # Call the parent class's destroy method + + if __name__ == "__main__": app = Kiosk() + BUTTON_FONT = tkfont.Font(size=24, family='Helvetica') + TEXT_FONT = tkfont.Font(size=20, family='Helvetica') app.mainloop() diff --git a/merged_image.png b/merged_image.png index 2ac3942572889543249d989dc499aade78c26035..1ae6e3eefeee07b21852ed39961af203b557f8a2 100644 GIT binary patch literal 9160 zcmeI&RaYAT^CobtXmNKbQYc!qMS{D#yVGJV5+qREp%k}3p+Im76bivzgFC@pQY5(S zyYKEN*uDMV&U5CRIdeC2ezDq`O8B@mxF{$n_$tcsx+o~9ekdqt#n}HTp!A*)MWLX) zNmh}U(f7|gwOGlyUmOa0FE&qb;J-N zp775b(3LJ=^S4WP^!+u=i8lN^KidBZ{=Zi8Qbk*bS$|)kZaO6`QKK+Z{^4b#4)jcg z5Zh;@o10ILG;H~6fRloq3 zY~m%vk<2__PswPPlkE)&!v}2PS3ep(1jzeD&olhS+d9Y9y2N<4I4Wt{>Vry* zONZGIN2ZS92?DOSCGJ(O;ydQg z$b;-x`mDDfq+aHAVLHw;Z;r!|bcmtbC3|Adb>0ptO1- zP~OC2$|0F1{d%X9=ufmq= ztd5Lkc!=YxbDP?h%sBy{@%Qk*k_#-)^&79ItNr|b*T0!gSq%ygR#oCSBeLR!q#h0m%%mj3||@}(U5A8mFCk&dcozZG$kMBpg>T` zwBzTC04&h3*Cj~${*3Bq3aJ*9YsH25dp)ioWx1X{Fz?fI`wL3xKbFHq?i<#$tMx*C zS*j9h-+0vf?G^_3#FZeLbu%I~^IN&g;_=ass3-Yh{Gg>~qw$Co5 zbMeT)+J$@CTjq*LCCLCoh;GH2q~lfMX-maKfMs4n`ooDn8(ZInov!Iy`-=4i`FPd2 z>9t}OElfULu)Cj@mlxDZOu;z+- z0?oJDyxvvU7R)B*a>{1X)i~t*A!Bj5EZFAvV5V&Wk0d+B^}5RSg7q&NeDOT*@EyR# zwepEaJs$N<%PPJQH=D~q7ux8ac1JACoV~0s1L%IQ7iaZojKpQ3~2CSfBnua zDW=tDH1&Mp(C-*&!FZq|;fC3-_*4+z^cFTh_E-#*gzSzq5YnyN z{bmbI8%6qGpclif%98;~11kGm(GEOkB@it(JPllA=)Pty5!|C>WiRzVCHw46P>L&Lb9rM#ECgR`|k{gs5q|D!IuuAaobmf|NoLp>BT?$otgFE0j^p+zI;x}$( zbad13?ee{wy(k{|UGw>^mXH=DLT;cz(sK$|IJ89q9MZx zM*{#{2)C%;mJp2s3eQH(gPgmr+=Uh-s$70?x6`rv_@dy)>B62amh=|Qg|UA%GgHu% zXUVrm>Z4=F(0^%mG;f-E-n(cTblbeRIrZ_}j=@$&v{ZNrg@XGfTs!w8 z8UVO&`0)NdO5yHZr|4^-$7^0pG{Oq=wJ2fWA$^GbwrILSY%YgtuXQWk?N_1gp!IM0 zg!EOeDQu}XARtFoPm@QlS@Qt_5tPzFd+no*PqXAXp?sqB69(+-V*|wF2fTV!ulj>D zN`!N@)oBg3gbmIz^~z@4w-YVThkR;!Q*r?c8J;I=j;;=XUu&7QLWE-==CRFqjg%7x>(Md7$hjA|H4eeN`%1rN#I@3?Mv8j)|6<;Q+)lO!VrinkW zlSS0P%ofSmKj1{y%*xk$6#rGD3Bb>TI&Lp~NkG{CbMnGu{Hq{^(dL-h0w#RwXma`X zlnQ_3T8;iZ{yVkNAyf!=$;J<<^HpSJ^>^pQTW#kU1EY@x4aVaR ziXJ8%RWz$&R>uy`9JhnA*qd-z7^f&x#INOW3>e;&zK!Jl^IsAqW2YGr@zf{Ha}1Zk;u-cKtmXV9DG4HYo^ z!=k6EprkPfzglW?$9ewAY#s66<>a;53^F%~)lX>>0cMPH#~reE=4`@~sZr%<3r%iv ztSnw0)gD~9?Hx_8o2q0j9Vfoi5`^pely2}1$7s9^`!*!wZyCfNI3r_ezCVe zl|y5-L7732pGR(~CN?JhqeTO3*d)H+Wr*?e>1lr8h-Ewwa)$}Ix>LOZ6uU(9B@fX! zge8oJ_a(1j`|7jQZ4R1CjR%WIhh23Rx_Eag)24nZrrUwKuzFsL=j_SWKAh{~T~Jd? zTG4O)Gy0U%!>q7z?vbQU*(QT#lTG_*XNLKG(pMh|I{iuOK>{DMv(>uvUvo2={Bs5` zM`?7S{|?{XYEgsBSve$$7IzjP_}&OZz<=-VAD-#&sNkG3+!X zYFsQ`Dqml)=?^64Sal7-RD&zsA*WjywvU?tU7XML^**Sey{Ag6CkSbp0M+>-bQ8IBDxMwCSI9affXs7g$1T8daDM!LYy`cXURC&RwX zn_d86H<@_fvNv58H6H(fd!W*AzGAwWjGbZ+MG5mq@Ay&b@T3xQ`J=o4+E$wp48l?(UQ+o+B#}nTp0f_uj$3zvt+5jzpj(Y3(lr;;F%s5GTUFVp@NG4 zWs4EMlE_plZSGL9EcaXLTw*-MKNh_4{O^j;MKtfl{W3Y$xon~340RGQ%SC99Ue#L6 z6AujL>wIU_xseYct(o;V?-)Y0^W47sa`sYId=hJA7t*N=yvzoJwgtB$T4LA4) zRlc8$xyF@h(Jsw;=hE;cOwV4VnvD)2N1X7C&~3}|kxCFdBvtXa^0wj;2a^Y*U=b_Q zJ+5h#*p^FYP<4j?Mh2)YAH|kCR84WKL*+s<2ACPIKemtE+&6D)xi>6w6zaL;Y?Z!^yjPKSed5MM4dw3L@++*I^W`8Z=FN=zlQ62@>rblmnzN? zmDVy~Y=)E>Ncg@UhOxLW%hCfPi`d&Kzh{4CEpLf_bf9*~?@N5(uT_UmeNOQBwYyUD>%zDr~f`w zv7Y(sg_Gx2QN8J|ci%lz7rfr*C(AV3d-JVV10Xg3hQU=wzxu$`>@(A(hJx06`uzG* z^?aDt%)-V@XjQzy}x*?jaODVHgbNfXEk>9ZXe*cf*gP2G!lwLV{;J8$N!?z+XE}tca@Qq`nVU zpSgNyWbVpXGkec#R~$)k$_T{O74X8JOK6a&Bd3Ea`MPY2MK+&28;&Dm7q@-YYxV`> z2I41`FX~6J9nYmEKhCqQxYNkA7kwL^LC`1i|Kb+;pw*>5K3_qZP#FGp7;mx ztQd(Ap|u7zONOkodCfomwtOJSQB{TH6&HxtOjl58F~=`h5uAUK7@c-kpd!OC(|uDyod}Ip!`eLRIK6^I>!d=mEG~6{oAM*3k_}h@qk#(^`@xU09Ya zbn>rgd0p+L{1gVEq&)#CZ!_eFbsrxwY>CsHE5!^ZzQ!Pdw^iIO1#xQeAK*R94D1NS zNcf<92mH26vif6Z;nm69c@==+C~6Pdppa<*%|-TIzISZ4wO^kY@Cf%kHPx)yuOp9L z0_k-<3+i?MjZJ8A&=DOl6-8IxZ3ntJ{&IZ9v#)Jo{Wb*iG~OCtz!%xqgx1IkI;JPN z?1(EA5(~EVSLKUcOncWKZVvBs4KNY9VvTp?*YbFEj_2=(i;Usb0W z1=m#}uSB_-ITm$GpDkaXYo4G4FUwA~UOZ(T=i%%rA=R}s{x~~fxiodh z1f$M|S)4eC)_9a&tP}rLZ{Z?t^f;V0{2OZPtIhtk_&q?PM#PE9!0flAYgV=X2FMV7 z!NI`452U^~xSOA%R#GY36fj*G*Skhnb$%$2!)H`hI8J&kE(m6)X#5hfoi!Xpz_OR} zM8#%!bOMFAEttPt`pj6=i^bpOnOzLN)pr$y-W)<^vRcdwR3vyWHVYi%m&I>8!hgz; zNnaRqclfADMc+mPzlPF#t&bgM?|rT?$qXDzVwNJMR}S_KUH=e?tUR@m$hA+iTB!ro zl6S2Xipt>mv)uM;T)-RdxaNOh3OjaWuO&~Y8dE!-X8))mQ*%>8wunjHgCX(c?3-~=PXA!pf$y%CjFPkp%=4oVb3M;iEgh;aliNQd z2j@e-nr%?s7mY1|PqzkwT`no`c{`y+vWi6I|zW{qN0f zAHjR0s7j7}6OIo_uTW~hgR!Y=d z8yQnLVU^}(QhJ#c6^th4mN5;1+}@T3a!KT=Jqm_BvzPk` zc@CP)W+f*RqnHgNarU(LEhKofHo`5%M=}!D;~#RA0UpFbZr4gL?Oa<9@8kCnjj4^j|g!cZCWm2!wUT{ink&W+=D2$XYcFwk1!@9y8bn|*~~xee+X z2mB{DiuT%*OGTTl8jkKR_A8TA2m4)a6Pnyk*=)V%ikrSQhRjxc&flzB!B-l|c>cr@ zxtbf$cQF`q!-m73U=xa07V(t!Nx`O( zJ~bJlXyL#k&H_OGZIwmW0dyEBt+JI};JX$zmPAvreZG8COVUUBWL4g!6g~TnV4i;j ztLb9v2JW3F95^rvVP&6Q_ySPclB%LJ0#Dabl`G=+PC2J_UN0sl52ZqMzwO?A&w??H zpOOQXQz0Lx{NcBPLfnWTQLudypB&i(1%fbZl|-Q(AoCs8)LF&30}7A3%ysCC2NIGg zal^a&VOrjM!(KjH#Ih@epI!)TrG-Aw;*Fvo+RY=GDEe-&R;53^efBNuS@TH5=)Yp-h~4*rCl| z1uqm{J+!F4El?JAK1E4G^LTG$sSoB3=?_f&{9u=qT)AT`W<9Z^ARDgjFW^nwmiPI1 zB#OB5%gLh@=x>k>)NBLu=-2M7&2@0Qc9UIx2CZqSro`(`evhOypLI zPKS4JU5Y$}`gu(}^QOlz_a{Vt?4;dhYj@8w@(VDeR4jW)YlDYLW~={EH272AbkZCG zIYuHiCkNjNfL~4nwhp^F9`aI?cIc65;UI#5^J5nPq~hU~hNoXm!JYKFQQBeVUmd#< zaPoxFROt>J79ptxJ3mT2QtnIYHOm~Mdq z{gj$+ZhxogNnyjS>ngtg!2@lC)ks`>E<#tvfUUSme~>|IgGwA>a5=%PkXPvx7FTg7 z-v7hYf`o27kkaC}RE8}VQVc0^CNJ07yZE|MZbR-K+qfo&MGP>dM0UP>)WpEonE%b- z%T7y0oLRE8k|z%Dx#VSLbOTUphms=B#hIlfxKRE6ZJRYQg7|=LBtQnA;c6kW+-zRQ zh3=b?+uhQI)GMN}gY#Cs{t!L{_tX!8B@U@g8ii-782@PZ>{Vw-PAJz;r@bcB6Kb8b zyvH+}jJ7MbQ(WetMCeT!;6OMGZ!y<|f^U*0qwo@#e5a%WU>mg$kLVfG`KTTo?q_T* zjH9}=zUqUXn1?d)X*Sgeiy$_JGVh(-*-wVzXMJGV>?!AYz3d;%9)q$A%kA^*T4qqm zr2e6_4l^0zbhCXEmtaFoVw&JXcWZ%`8oN1ZB-+u^DkBe~mhznFG^{Yr*vl-C3o#e8 zLDr-x{mhzl+LS&5*^_8^kFfp@aA(63m)A7u3sQaj3+~qIRg8{A@0T;C z3)ftyMJmol9z^*zWg@SPPs9fDnnub#E4|jV=@hi$>qu#{m{yZQURfUSW6u$nGhh8<05n^B zf#y)scn)!6jr)mhNm9}TZZNAZ3(!o%+HE_h(Iw%ytO>`Enk@T=8-X$EgFgtkl$gX1 zCK-X1e-Q%!jD$b7X3D!}th3>{yN8Lz^;J@8=8Gn(bH8$cYzN?TwpH*=2?{VEDV$O* zeZ!aU1k0y%In~7~!+5G1_0Yh%%TZZHRMqPDvyzpr6PY)knd41ZhZh6*5dslJ$C+4+ zUr0$dd2B`MKEnzNR$Q;sz~LVw(6!ltcq;qq7!*?xw$xu8r3@|!@F-OCU18+`?cz6T zF!-k0KzG1ie~Gt?MNL&R$qjGZ#W(axehW6eyXYx5GXWfHv9#p#d0~|tF+*5H%KFae z1vlr8n9;B)`f&ghpzTvw?{Z`$BxXQ9A^wVUN2E82I)t=_*!!B#~bZq@?{nL4uSK;wSreA7#HJMiCneOJb~>> z4o2W4-3vP6j>g3;*)YEiWdAk@@SDXbv@Cd&X8X-x=kpnkmaLRYVau#|WM~4zv}15I zw7E`@ll-)FR1TQb3-*A zH|vE2*m;6z2;vsCglxgaI(i5nS*P+2OkOib1VS9`n^P{OMxw}93xpys{2v4ZJ~(Rx zk0jjd5Q^ZeVn-imuhs@8)fL0{m~v+6N5$=z&K&62RNr8dz+}a1=zl|qUcZ)k#}-Ct z;8x_4W|hl{KSnEi<%*~-U*R`?DB5;iYD?R->8f|aoF4tYvm=1?D=z@bx21SlkOK}z z2#dU@6?NazINv&5)akhU@32R_O-ZXGo&0$gdyBN&H-VQp*F2L`khKmZgv;$dy;2(R zBYM$f?otj|$N5GLMMtGFum#bDa3_;1P!P*RK^5!I62A&yY-PsPL1!y)KoGD5z zDdxZj)B`YDFlLn8Y4+>N2oveRPm`7qdiT@)qinm$crIZms}Kz$wz5aXU`hM3OYK5X zhnD->Ocek9vedi-qvS%3tmR900DEL6eZZ=zWU1w!247*UOG~DojQb?_-ht$A(VQ6#HD9ife$IOrg zLi21P&+FMNUP-4O9DNKLNYQ7m)Ax){yK!D&_qsS%ZxA`Z2l=?Fe`j`t-;AMVxgLjI zSk=YPifJT7F}74NR77HcaDQ2jz#>MlG6sH6qmoY3NyM&rQg_I~#hqbQTvfF1*u<6q z4chG0{p~*havHwN#J{-mKvxpePfBrSX;n zNnhI(bL?164e4Mo%DQ0dI1m)>|N0P(1b_ESB7Vs(DUf-n{Rbjlx0Z^kTlV6V?k$jE z44N&T7EAQ*(cVPhSel-<7>3Sbbh02e*~q`&jRr_WUl;Fd=oZ!nz!a~;ot+M;g)-KB zMlobxB20p(Wex4}O@JiFootArmZyFVfa<*5E$0&m)$SJhbVUOUKowL&FwC+tN@NTErNyc!Md7U#BImxY-MAT;Lxf(s zho1#*y{$yQ4=m~?#m3{XK00`;*Cyrtuhf`~5tY;_BIH`Zq~V`y@&w77D1{LJ->5)T z5{#b37C9{iL`lc__5E4M{J*p#^lt~Jz0$@bwgLTYW4W$yi2iBIf5C^0T`=j9^6=+e zbG-jt1KI!>qxYks=YJtc_%;dMGxq=K{~sFi|A=CqvEH;USN4<4CI4@tqoSZGUn6TB G_P+oVXK{M~ literal 12959 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 VOGdp=$JYP=002ovPDHLkV1mk|fS~{Y diff --git a/qr.jpg b/qr.jpg index 63daab1b29da81c8949f7432a56a6b218d26def7..2ef734f6d1c7c329698b65912c517ddc74c84976 100644 GIT binary patch delta 661 zcmV;G0&4xT1+4{;B!6^CL_t(|oSl}xZrd;r#y^?{l%lBU)hJyV$P;8!fdKNB=jao} zYC3qSExSXf$juAn9Xe*C0R!^p7pMU_G@z}O+(klZUDy5zibHQa@Idm%@4KTQ{2ucT z{){Iwdm*sc>^qw-iSAr)FZ>iw1H; zwgrHIYArI!V}B@N91oN?s~Gmt9j&MOXTCoRz@b!Q;&H< zeMbNWJzyFg7NKS`q#8cpdk&$CGakdvzT?RRh>b_4NWgR@uEow0%|dO0n$0j*WUHDI$kyXB1nkm48SRHMjd2ktbdnuwgLU0g$D vy!Yy!1gPo-voo7)^7{#Ieu@A3+x!IBmO#HLCJvZL00000NkvXXu0mjfMMy-a delta 666 zcmV;L0%iTJ1+oQ@B!78HL_t(|oSjy|YTG~%ed{%>d+2W3OB1R@hJ1l<3K*oDzoTE! zD7oYmN$n+i?;8U^G(+Z?a&vl(LbdHaCdc*9ShXmozN_yC@ z1IR`QB%(WdJdFlrBKn7V{zfF(Qe%5HTFx*ul=E0ff|DYHhJSl)LE>=Fe)R#!BX6K@ z+IHc*_T@uJw+rNTy$)~w(X&?t*<7rMs5K;0Dq@yaCkFCcSf&@-=pwJhkf%jNMQvqb zsa{DU;%R}zm;&g>&D6`kfTz_jAJp>x?%a8lVsQN9V)?+F(6(ARx5};1Y9(0{A~&mo zR=LR9Fr!%Uc7KRmWC+O-)-hBN@w9pld^&5EG{NWKREU=8jmyR68DrgS8jNp#eY7nnjP-6Zygb}<07(M;f;eiR(e=Pg8vxF2Bcq@{YY-*OWCI{$wVo<@eb>I;vyVg> zW{s>Kp|QPEOjaibU5xS93>0)G;N6$_uYa50G!qywnDkF=)c^nh07*qoM6N<$f@>U8 AKL7v# diff --git a/scuttlebot.js b/scuttlebot.js index aad96c7..70d41f8 100644 --- a/scuttlebot.js +++ b/scuttlebot.js @@ -16,7 +16,7 @@ ssbClient(keys, (err, sbot) => { const authors = new Set(); pull( - sbot.createLogStream(), + sbot.messagesByType("contact"), pull.drain((msg) => { authors.add(msg.value.author); }, (err) => { diff --git a/ssb-post.sh b/ssb-post.sh index e4ccfdf..1053a15 100755 --- a/ssb-post.sh +++ b/ssb-post.sh @@ -54,7 +54,7 @@ then ssb-server publish . <