add yaml dependency, cli colors and translation file

This commit is contained in:
2025-07-08 16:17:40 +02:00
parent 27c3885f9f
commit 24b01273ad
8 changed files with 136 additions and 27 deletions

View File

@@ -6,6 +6,7 @@ import time
import pyperclip as clipboard
import getpixelcolor
import pytesseract
import yaml
# from src.cursor import classify_cursor, get_current_hcursor
pytesseract.pytesseract.tesseract_cmd = r".\tesseract\tesseract.exe"
@@ -232,18 +233,16 @@ def enter_print_mode():
def exit_print_mode():
print("Exiting print mode...")
lang = open("lang.txt", "r", encoding="utf-8").read().strip()
sys_messages = yaml.safe_load(open(f"translation.yaml", "r", encoding="utf-8"))
print(sys_messages["exit_print_mode"][lang])
time.sleep(2)
while getpixelcolor.pixel(1240, 971) != (192, 215, 242):
print("Not found")
print(sys_messages["print_exit_not_found"][lang])
time.sleep(1)
# while getpixelcolor.pixel(1240, 971) == (202, 202, 202):
# time.sleep(1)
# print("Process locked")
# time.sleep(1)
pyautogui.click(1240, 971) # Click the print button
print("Exited print mode.")
print(sys_messages["exit_print_mode"][lang])
if __name__ == "__main__":

View File

@@ -4,7 +4,10 @@
from playwright.sync_api import Playwright, sync_playwright
from playwright.sync_api import Page
from src.database import Database
from src.colors import bcolors
import pyperclip as clipboard
import yaml
import time
def run():
browser = sync_playwright().start().chromium.launch(headless=False)
@@ -19,10 +22,17 @@ def run():
page.get_by_role("textbox", name="Mediennummer").click()
return page
def work_on_page(page: Page, mednr: str):
def work_on_page(page: Page, mednr: str) -> bool:
lang = open("lang.txt", "r", encoding="utf-8").read().strip()
sys_messages = yaml.safe_load(open(f"translation.yaml", "r", encoding="utf-8"))
db = Database()
page.get_by_role("textbox", name="Mediennummer").fill(mednr)
page.get_by_text("Suche starten").nth(1).click()
time.sleep(1)
if page.get_by_role("main", name="Hauptbereich").is_visible():
print(bcolors.FAIL + sys_messages["page_dead"][lang] + bcolors.ENDC)
return False
page.get_by_text("Ändern").nth(1).click()
page.get_by_role("link", name="Sacherschließung").click()
page.get_by_role("link", name="Notation, Genre, Signatur").click()
@@ -30,12 +40,12 @@ def work_on_page(page: Page, mednr: str):
page.locator("input[name=\"cellEditValue\\$7\"]").press("ControlOrMeta+a")
page.locator("input[name=\"cellEditValue\\$7\"]").press("ControlOrMeta+c")
signature = clipboard.paste()
print(signature)
print(bcolors.BOLD + bcolors.HEADER + f"{signature}" + bcolors.ENDC)
new_signature = db.insert(signature)
if new_signature is None:
print("Signature already exists in the database.")
return
print(bcolors.WARNING + sys_messages["signature_present"][lang] + bcolors.ENDC)
return True
clipboard.copy(new_signature)
page.locator("input[name=\"cellEditValue\\$7\"]").fill(new_signature)
@@ -52,7 +62,7 @@ def work_on_page(page: Page, mednr: str):
page.get_by_role("link", name="Ansigeln/Absigeln").click()
page.get_by_role("button", name="Ok").click()
return True

10
src/colors.py Normal file
View File

@@ -0,0 +1,10 @@
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'