GameSentenceMiner 2.13.2.post1__tar.gz → 2.13.4__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 (79) hide show
  1. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ocr/owocr_area_selector.py +3 -2
  2. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ocr/owocr_helper.py +34 -2
  3. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/ocr.py +3 -1
  4. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/run.py +3 -3
  5. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  6. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/PKG-INFO +1 -1
  7. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/pyproject.toml +1 -1
  8. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/__init__.py +0 -0
  9. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ai/__init__.py +0 -0
  10. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  11. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/anki.py +0 -0
  12. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/__init__.py +0 -0
  13. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/icon.png +0 -0
  14. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/icon128.png +0 -0
  15. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/icon256.png +0 -0
  16. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/icon32.png +0 -0
  17. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/icon512.png +0 -0
  18. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/icon64.png +0 -0
  19. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/assets/pickaxe.png +0 -0
  20. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/config_gui.py +0 -0
  21. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/gametext.py +0 -0
  22. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/gsm.py +0 -0
  23. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/locales/en_us.json +0 -0
  24. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/locales/ja_jp.json +0 -0
  25. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/locales/zh_cn.json +0 -0
  26. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/obs.py +0 -0
  27. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ocr/__init__.py +0 -0
  28. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  29. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  30. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  31. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  32. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  33. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  34. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  35. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  36. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/__init__.py +0 -0
  37. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/audio_offset_selector.py +0 -0
  38. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/communication/__init__.py +0 -0
  39. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/communication/send.py +0 -0
  40. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/communication/websocket.py +0 -0
  41. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/configuration.py +0 -0
  42. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  43. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  44. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  45. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  46. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/electron_config.py +0 -0
  47. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/ffmpeg.py +0 -0
  48. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/gsm_utils.py +0 -0
  49. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/model.py +0 -0
  50. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/notification.py +0 -0
  51. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/package.py +0 -0
  52. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/ss_selector.py +0 -0
  53. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/text_log.py +0 -0
  54. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/util/window_transparency.py +0 -0
  55. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/vad.py +0 -0
  56. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/__init__.py +0 -0
  57. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/service.py +0 -0
  58. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/__init__.py +0 -0
  59. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  60. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  61. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/favicon.ico +0 -0
  62. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/favicon.svg +0 -0
  63. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  64. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/style.css +0 -0
  65. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  66. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  67. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/templates/__init__.py +0 -0
  68. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/templates/index.html +0 -0
  69. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  70. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/templates/utility.html +0 -0
  71. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/web/texthooking_page.py +0 -0
  72. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner/wip/get_overlay_coords.py +0 -0
  73. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  74. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  75. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  76. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner.egg-info/requires.txt +0 -0
  77. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  78. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/LICENSE +0 -0
  79. {gamesentenceminer-2.13.2.post1 → gamesentenceminer-2.13.4}/setup.cfg +0 -0
@@ -129,8 +129,9 @@ class ScreenSelector:
129
129
  # 3:2 - use 1080x720
130
130
  return 1080, 720
131
131
  else:
132
- # Default/fallback - use 1280x720
133
- return 1280, 720
132
+ # Default/fallback - use original resolution
133
+ print(f"Unrecognized aspect ratio {aspect_ratio}. Using original resolution.")
134
+ return self.width, self.height
134
135
 
135
136
  def _find_target_window(self):
136
137
  try:
@@ -53,6 +53,7 @@ def get_ocr_config(window=None, use_window_for_config=False) -> OCRConfig:
53
53
  """Loads and updates screen capture areas from the corresponding JSON file."""
54
54
  ocr_config_dir = get_ocr_config_path()
55
55
  obs.connect_to_obs_sync(retry=0)
56
+ obs.update_current_game()
56
57
  if use_window_for_config and window:
57
58
  scene = sanitize_filename(window)
58
59
  else:
@@ -161,7 +162,7 @@ class WebsocketServerThread(threading.Thread):
161
162
  async def send_text(self, text, line_time: datetime):
162
163
  if text:
163
164
  return asyncio.run_coroutine_threadsafe(
164
- self.send_text_coroutine(json.dumps({"sentence": text, "time": line_time.isoformat()})), self.loop)
165
+ self.send_text_coroutine(json.dumps({"sentence": text, "time": line_time.isoformat(), "process_path": obs.get_current_game()})), self.loop)
165
166
 
166
167
  def stop_server(self):
167
168
  self.loop.call_soon_threadsafe(self._stop_event.set)
@@ -291,6 +292,38 @@ def reset_callback_vars():
291
292
  previous_text_list = []
292
293
  last_ocr2_result = ""
293
294
  run.set_last_image(None)
295
+
296
+ # class TwoPassOCRHandler:
297
+ # def __init__(self, ocr1, ocr2):
298
+ # self.ocr1 = ocr1
299
+ # self.ocr2 = ocr2
300
+ # self.second_ocr_queue = queue.Queue()
301
+ # self.previous_text = None
302
+ # self.previous_orig_text = ""
303
+ # self.previous_img = None
304
+ # self.text_stable_start_time = None
305
+ # self.last_oneocr_time = None
306
+ # self.force_stable = False
307
+ # self.previous_ocr1_result = ""
308
+ # self.last_sent_result = ""
309
+ # self.previous_text_list = []
310
+
311
+ # def check_first_ocr(self, text, orig_text, time, img=None, came_from_ss=False, filtering=None, crop_coords=None):
312
+ # if not twopassocr or not ocr2:
313
+ # return text_callback(text, orig_text, time, img=img, came_from_ss=came_from_ss, filtering=filtering, crop_coords=crop_coords)
314
+
315
+ # text_callback(text, orig_text, time, img=img, came_from_ss=came_from_ss, filtering=filtering, crop_coords=crop_coords)
316
+
317
+ # def set_ocr_ocr1(self, ocr1):
318
+ # self.ocr1 = ocr1
319
+ # def set_ocr_ocr2(self, ocr2):
320
+ # self.ocr2 = ocr2
321
+
322
+ # def get_ocr_ocr1(self):
323
+ # return self.ocr1
324
+
325
+ # def get_ocr_ocr2(self):
326
+ # return self.ocr2
294
327
 
295
328
  def text_callback(text, orig_text, time, img=None, came_from_ss=False, filtering=None, crop_coords=None):
296
329
  global twopassocr, ocr2, previous_text, last_oneocr_time, text_stable_start_time, previous_orig_text, previous_img, force_stable, previous_ocr1_result, previous_text_list, last_sent_result
@@ -305,7 +338,6 @@ def text_callback(text, orig_text, time, img=None, came_from_ss=False, filtering
305
338
 
306
339
  line_start_time = time if time else datetime.now()
307
340
 
308
-
309
341
  if manual or not get_ocr_two_pass_ocr():
310
342
  if compare_ocr_results(last_sent_result, text, 80):
311
343
  if text:
@@ -17,7 +17,7 @@ from PIL import Image
17
17
  from loguru import logger
18
18
  import requests
19
19
 
20
- from GameSentenceMiner.util.electron_config import get_ocr_language
20
+ from GameSentenceMiner.util.electron_config import get_ocr_language, get_furigana_filter_sensitivity
21
21
 
22
22
  # from GameSentenceMiner.util.configuration import get_temporary_directory
23
23
 
@@ -275,6 +275,7 @@ class GoogleLens:
275
275
  logger.info('Google Lens ready')
276
276
 
277
277
  def __call__(self, img, furigana_filter_sensitivity=0, return_coords=False):
278
+ furigana_filter_sensitivity = get_furigana_filter_sensitivity()
278
279
  lang = get_ocr_language()
279
280
  img, is_path = input_to_pil_image(img)
280
281
  if lang != self.initial_lang:
@@ -895,6 +896,7 @@ class OneOCR:
895
896
 
896
897
  def __call__(self, img, furigana_filter_sensitivity=0, return_coords=False):
897
898
  lang = get_ocr_language()
899
+ furigana_filter_sensitivity = get_furigana_filter_sensitivity()
898
900
  if lang != self.initial_lang:
899
901
  self.initial_lang = lang
900
902
  self.regex = get_regex(lang)
@@ -876,9 +876,9 @@ class OBSScreenshotThread(threading.Thread):
876
876
  logger.info("Using standard aspect ratio scaling (3:2).")
877
877
  return 1080, 720
878
878
  else:
879
- # Default/fallback - use 1280x720
880
- logger.info("Using default aspect ratio scaling (1280x720).")
881
- return 1280, 720
879
+ # Default fallback - use original resolution
880
+ logger.info("Using default aspect ratio scaling (original resolution).")
881
+ return self.width, self.height
882
882
 
883
883
  def run(self):
884
884
  global last_image
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.13.2.post1
3
+ Version: 2.13.4
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.13.2.post1
3
+ Version: 2.13.4
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.13.2.post1"
10
+ version = "2.13.4"
11
11
  description = "A tool for mining sentences from games. Update: Overlay?"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"