from PIL import Image, ImageTk, ImageGrab from datetime import datetime from server import start_server import requests import argparse import base64 import webbrowser import tkinter.font import pytesseract, clipboard, tkinter as tk formatted_date = datetime.today().strftime('Screenshot from %Y-%m-%d %H-%M-%S') parser = argparse.ArgumentParser("screenshot-magic") parser.add_argument("--server", help="Run server", type=bool, default=False) args = parser.parse_args() if args.server == True: start_server(addr="0.0.0.0", port=8080) def store_ocr_to_clipboard(): clipboard.copy(ocr) return def push_image_to_server(): im.save(f"./screenshots/{formatted_date}.png") with open(f"./screenshots/{formatted_date}.png", "rb") as file: encoded = base64.b64encode(file.read()) res = requests.post(url="http://localhost:8080/", data=encoded) webbrowser.open(res.text) return im = ImageGrab.grab() ocr = pytesseract.image_to_string(im) im.thumbnail((1080, 720)) window = tk.Tk() noto20 = tk.font.Font(family="Noto Sans", size = 20, weight="normal") im_widget = ImageTk.PhotoImage(im) panel = tk.Label(window, image = im_widget) panel.pack(side = "bottom", fill = "both", expand = "yes") ocr_to_clipboard_btn = tk.Button(window, text="Guardar OCR a clipboard", command=store_ocr_to_clipboard, font=noto20) push_image_to_server_btn = tk.Button(window, text="Cargar imagen a servidor", command=push_image_to_server, font=noto20) ocr_to_clipboard_btn.pack() push_image_to_server_btn.pack() window.mainloop() im.save(f"./screenshots/{formatted_date}.png")