GameSentenceMiner 2.8.47__tar.gz → 2.8.48__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 (67) hide show
  1. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/configuration.py +11 -10
  2. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/obs.py +6 -3
  3. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ss_selector.py +1 -1
  4. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  5. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/PKG-INFO +1 -1
  6. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/pyproject.toml +1 -1
  7. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/__init__.py +0 -0
  8. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ai/__init__.py +0 -0
  9. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  10. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/anki.py +0 -0
  11. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/communication/__init__.py +0 -0
  12. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/communication/send.py +0 -0
  13. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/communication/websocket.py +0 -0
  14. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/config_gui.py +0 -0
  15. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/downloader/Untitled_json.py +0 -0
  16. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/downloader/__init__.py +0 -0
  17. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/downloader/download_tools.py +0 -0
  18. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/downloader/oneocr_dl.py +0 -0
  19. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/electron_config.py +0 -0
  20. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ffmpeg.py +0 -0
  21. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/gametext.py +0 -0
  22. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/gsm.py +0 -0
  23. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/model.py +0 -0
  24. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/notification.py +0 -0
  25. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/obs_back.py +0 -0
  26. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ocr/__init__.py +0 -0
  27. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  28. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  29. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  30. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  31. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  32. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  33. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  34. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  35. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
  36. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  37. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  38. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/package.py +0 -0
  39. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/text_log.py +0 -0
  40. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/util.py +0 -0
  41. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/vad/__init__.py +0 -0
  42. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/vad/result.py +0 -0
  43. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/vad/silero_trim.py +0 -0
  44. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/vad/vosk_helper.py +0 -0
  45. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/vad/whisper_helper.py +0 -0
  46. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/__init__.py +0 -0
  47. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/__init__.py +0 -0
  48. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  49. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  50. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/favicon.ico +0 -0
  51. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/favicon.svg +0 -0
  52. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  53. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/style.css +0 -0
  54. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  55. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  56. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/templates/__init__.py +0 -0
  57. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  58. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/templates/utility.html +0 -0
  59. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner/web/texthooking_page.py +0 -0
  60. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  61. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  62. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  63. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner.egg-info/requires.txt +0 -0
  64. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  65. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/LICENSE +0 -0
  66. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/README.md +0 -0
  67. {gamesentenceminer-2.8.47 → gamesentenceminer-2.8.48}/setup.cfg +0 -0
@@ -446,20 +446,21 @@ def get_log_path():
446
446
 
447
447
  temp_directory = ''
448
448
 
449
- def get_temporary_directory():
449
+ def get_temporary_directory(delete=True):
450
450
  global temp_directory
451
451
  if not temp_directory:
452
452
  temp_directory = os.path.join(get_app_directory(), 'temp')
453
453
  os.makedirs(temp_directory, exist_ok=True)
454
- for filename in os.listdir(temp_directory):
455
- file_path = os.path.join(temp_directory, filename)
456
- try:
457
- if os.path.isfile(file_path) or os.path.islink(file_path):
458
- os.unlink(file_path)
459
- elif os.path.isdir(file_path):
460
- shutil.rmtree(file_path)
461
- except Exception as e:
462
- logger.error(f"Failed to delete {file_path}. Reason: {e}")
454
+ if delete:
455
+ for filename in os.listdir(temp_directory):
456
+ file_path = os.path.join(temp_directory, filename)
457
+ try:
458
+ if os.path.isfile(file_path) or os.path.islink(file_path):
459
+ os.unlink(file_path)
460
+ elif os.path.isdir(file_path):
461
+ shutil.rmtree(file_path)
462
+ except Exception as e:
463
+ logger.error(f"Failed to delete {file_path}. Reason: {e}")
463
464
  return temp_directory
464
465
 
465
466
  def get_config_path():
@@ -28,9 +28,12 @@ class OBSConnectionManager(threading.Thread):
28
28
  def run(self):
29
29
  while self.running:
30
30
  time.sleep(1)
31
- if not client or not client.get_version():
32
- logger.info("OBS WebSocket not connected. Attempting to reconnect...")
33
- connect_to_obs()
31
+ try:
32
+ if not client or not client.get_version():
33
+ logger.info("OBS WebSocket not connected. Attempting to reconnect...")
34
+ connect_to_obs()
35
+ except Exception as e:
36
+ logger.debug(f"Error checking OBS connection: {e}")
34
37
 
35
38
  def stop(self):
36
39
  self.running = False
@@ -91,7 +91,7 @@ def display_images(image_paths, golden_frame):
91
91
  return selected_path.get()
92
92
 
93
93
  def run_extraction_and_display(video_path, timestamp_str, mode):
94
- temp_dir = os.path.join(get_temporary_directory(), "screenshot_frames", sanitize_filename(os.path.splitext(os.path.basename(video_path))[0]))
94
+ temp_dir = os.path.join(get_temporary_directory(False), "screenshot_frames", sanitize_filename(os.path.splitext(os.path.basename(video_path))[0]))
95
95
  os.makedirs(temp_dir, exist_ok=True)
96
96
  image_paths, golden_frame = extract_frames(video_path, timestamp_str, temp_dir, mode)
97
97
  if image_paths:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.8.47
3
+ Version: 2.8.48
4
4
  Summary: A tool for mining sentences from games. Update: Multi-Line Mining! Fixed!
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.8.47
3
+ Version: 2.8.48
4
4
  Summary: A tool for mining sentences from games. Update: Multi-Line Mining! Fixed!
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.8.47"
10
+ version = "2.8.48"
11
11
  description = "A tool for mining sentences from games. Update: Multi-Line Mining! Fixed!"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"