GameSentenceMiner 2.12.0.dev4__tar.gz → 2.12.0.dev5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/window_transparency.py +28 -0
  2. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/texthooking_page.py +1 -1
  3. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  4. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/PKG-INFO +1 -1
  5. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/pyproject.toml +1 -1
  6. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/__init__.py +0 -0
  7. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ai/__init__.py +0 -0
  8. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  9. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/anki.py +0 -0
  10. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/__init__.py +0 -0
  11. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/icon.png +0 -0
  12. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/icon128.png +0 -0
  13. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/icon256.png +0 -0
  14. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/icon32.png +0 -0
  15. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/icon512.png +0 -0
  16. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/icon64.png +0 -0
  17. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/assets/pickaxe.png +0 -0
  18. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/config_gui.py +0 -0
  19. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/gametext.py +0 -0
  20. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/gsm.py +0 -0
  21. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/obs.py +0 -0
  22. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ocr/__init__.py +0 -0
  23. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  24. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  25. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  26. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  27. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  28. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  29. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  30. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  31. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  32. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
  33. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  34. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  35. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/__init__.py +0 -0
  36. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/audio_offset_selector.py +0 -0
  37. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/communication/__init__.py +0 -0
  38. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/communication/send.py +0 -0
  39. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/communication/websocket.py +0 -0
  40. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/configuration.py +0 -0
  41. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  42. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  43. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  44. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  45. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/electron_config.py +0 -0
  46. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/ffmpeg.py +0 -0
  47. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/gsm_utils.py +0 -0
  48. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/model.py +0 -0
  49. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/notification.py +0 -0
  50. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/package.py +0 -0
  51. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/ss_selector.py +0 -0
  52. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/util/text_log.py +0 -0
  53. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/vad.py +0 -0
  54. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/__init__.py +0 -0
  55. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/service.py +0 -0
  56. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/__init__.py +0 -0
  57. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  58. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  59. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/favicon.ico +0 -0
  60. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/favicon.svg +0 -0
  61. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  62. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/style.css +0 -0
  63. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  64. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  65. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/templates/__init__.py +0 -0
  66. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/templates/index.html +0 -0
  67. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  68. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/web/templates/utility.html +0 -0
  69. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner/wip/get_overlay_coords.py +0 -0
  70. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  71. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  72. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  73. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner.egg-info/requires.txt +0 -0
  74. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  75. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/LICENSE +0 -0
  76. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/README.md +0 -0
  77. {gamesentenceminer-2.12.0.dev4 → gamesentenceminer-2.12.0.dev5}/setup.cfg +0 -0
@@ -1,9 +1,11 @@
1
+ import sys
1
2
  import win32gui
2
3
  import win32con
3
4
  import win32api
4
5
  import keyboard
5
6
  import time
6
7
  import threading
8
+ import signal
7
9
 
8
10
  from GameSentenceMiner.util.configuration import logger
9
11
 
@@ -137,6 +139,22 @@ def mouse_monitor_loop():
137
139
  # A small delay to reduce CPU usage
138
140
  time.sleep(0.1)
139
141
 
142
+ class HandleSTDINThread(threading.Thread):
143
+ def run(self):
144
+ while True:
145
+ try:
146
+ line = input()
147
+ if "exit" in line.strip().lower():
148
+ handle_quit()
149
+ break
150
+ except EOFError:
151
+ break
152
+
153
+ def handle_quit():
154
+ if is_toggled and target_hwnd:
155
+ reset_window_state(target_hwnd)
156
+ logger.info("Exiting Window Transparency Tool.")
157
+
140
158
  # --- Main Execution Block ---
141
159
 
142
160
  if __name__ == "__main__":
@@ -155,8 +173,18 @@ if __name__ == "__main__":
155
173
  # Register the global hotkey
156
174
  keyboard.add_hotkey(hotkey, toggle_functionality)
157
175
 
176
+ # Handle SigINT/SigTERM gracefully
177
+ def signal_handler(sig, frame):
178
+ handle_quit()
179
+ sys.exit(0)
180
+
181
+ signal.signal(signal.SIGINT, signal_handler)
182
+ signal.signal(signal.SIGTERM, signal_handler)
183
+
158
184
  logger.info(f"Script running. Press '{hotkey}' on a window to toggle transparency.")
159
185
  logger.info("Press Ctrl+C in this console to exit.")
186
+
187
+ HandleSTDINThread().start()
160
188
 
161
189
  # Keep the script running to listen for the hotkey.
162
190
  # keyboard.wait() is a blocking call that waits indefinitely.
@@ -489,7 +489,7 @@ async def texthooker_page_coro():
489
489
  plaintext_websocket_server_thread = WebsocketServerThread(read=False, ws_port=get_config().advanced.plaintext_websocket_port)
490
490
  plaintext_websocket_server_thread.start()
491
491
 
492
- overlay_server_thread = WebsocketServerThread(read=False, ws_port=49999)
492
+ overlay_server_thread = WebsocketServerThread(read=False, ws_port=get_config().wip.overlay_websocket_port)
493
493
  overlay_server_thread.start()
494
494
 
495
495
  # Keep the main asyncio event loop running (for the WebSocket server)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.12.0.dev4
3
+ Version: 2.12.0.dev5
4
4
  Summary: A tool for mining sentences from games. Update: Overlay?
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.12.0.dev4
3
+ Version: 2.12.0.dev5
4
4
  Summary: A tool for mining sentences from games. Update: Overlay?
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "GameSentenceMiner"
10
- version = "2.12.0-dev4"
10
+ version = "2.12.0-dev5"
11
11
  description = "A tool for mining sentences from games. Update: Overlay?"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"