From d7d32744e984af66f80660a8fc441de3b07a1860 Mon Sep 17 00:00:00 2001
From: anima
Date: Tue, 21 Apr 2026 19:39:22 +0200
Subject: [PATCH] add counter function
---
source/window.py | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/source/window.py b/source/window.py
index 125f6b4..3e68b30 100644
--- a/source/window.py
+++ b/source/window.py
@@ -21,7 +21,7 @@ from .command import Command
class Window:
__AUTHOR__ = 'anima'
- __VERSION__ = '1.1.6'
+ __VERSION__ = '1.2.0'
key_press_duration = 0.1
supported_keys = ['return', 'Up', 'Down', 'Right', 'Left']
@@ -45,14 +45,18 @@ class Window:
self.dry_run = False
- def run(self):
+ def run(self) -> bool:
+ """main loop to screenshot given monitor and match with screens
+
+ Returns:
+ bool: True if a clean fin
+ """
if not len(self.commands) > 0:
logging.error(f'no commands to run found')
sys.exit(1)
with mss.mss() as self.sct:
while True:
command = self.match_screen()
- # print(self.match_screen())
if command:
self.activate_window()
for key in command.commands:
@@ -60,7 +64,14 @@ class Window:
self.send_key(key)
elif isinstance(key, int) or isinstance(key, float):
time.sleep(key)
+ command.count += 1
+ if isinstance(command.counter, int):
+ logging.info(f'{command.name} counter: {command.count} / {command.counter}')
+ if command.count >= command.counter:
+ logging.info(f'{command.name} hast reach counter limit. stop script')
+ return True
time.sleep(self.poll_intervall)
+ return False
## Screen Managament
def grab_screen(self) -> numpy.ndarray: