GameSentenceMiner 2.14.0rc1__tar.gz → 2.14.1__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 (81) hide show
  1. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/obs.py +6 -5
  2. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/ocr.py +10 -2
  3. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/get_overlay_coords.py +26 -19
  4. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  5. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/PKG-INFO +1 -1
  6. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/pyproject.toml +1 -1
  7. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/__init__.py +0 -0
  8. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ai/__init__.py +0 -0
  9. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  10. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/anki.py +0 -0
  11. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/__init__.py +0 -0
  12. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon.png +0 -0
  13. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon128.png +0 -0
  14. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon256.png +0 -0
  15. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon32.png +0 -0
  16. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon512.png +0 -0
  17. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon64.png +0 -0
  18. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/pickaxe.png +0 -0
  19. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/config_gui.py +0 -0
  20. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/gametext.py +0 -0
  21. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/gsm.py +0 -0
  22. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/en_us.json +0 -0
  23. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/ja_jp.json +0 -0
  24. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/zh_cn.json +0 -0
  25. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/__init__.py +0 -0
  26. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  27. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  28. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  29. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  30. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  31. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  32. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  33. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  34. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  35. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  36. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  37. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/__init__.py +0 -0
  38. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
  39. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/ss_selector.py +0 -0
  40. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/window_transparency.py +0 -0
  41. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/__init__.py +0 -0
  42. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/communication/__init__.py +0 -0
  43. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/communication/send.py +0 -0
  44. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/communication/websocket.py +0 -0
  45. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/configuration.py +0 -0
  46. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/db.py +0 -0
  47. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  48. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  49. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  50. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  51. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/electron_config.py +0 -0
  52. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/ffmpeg.py +0 -0
  53. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/gsm_utils.py +0 -0
  54. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/model.py +0 -0
  55. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/notification.py +0 -0
  56. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/text_log.py +0 -0
  57. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/vad.py +0 -0
  58. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/__init__.py +0 -0
  59. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/service.py +0 -0
  60. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/__init__.py +0 -0
  61. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  62. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  63. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon.ico +0 -0
  64. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon.svg +0 -0
  65. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  66. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/style.css +0 -0
  67. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  68. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  69. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/__init__.py +0 -0
  70. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/index.html +0 -0
  71. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  72. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/utility.html +0 -0
  73. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/texthooking_page.py +0 -0
  74. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/wip/__init___.py +0 -0
  75. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  76. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  77. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  78. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/requires.txt +0 -0
  79. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  80. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/LICENSE +0 -0
  81. {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/setup.cfg +0 -0
@@ -461,11 +461,12 @@ if __name__ == '__main__':
461
461
  from mss import mss
462
462
  logging.basicConfig(level=logging.INFO)
463
463
  # main()
464
- connect_to_obs_sync()
465
-
466
- while True:
467
- print(get_active_source())
468
- time.sleep(3)
464
+ # connect_to_obs_sync()
465
+ # img = get_screenshot_PIL(source_name="Display Capture 2", compression=75, img_format='png', width=1280, height=720)
466
+ # img.show()
467
+ # while True:
468
+ # print(get_active_source())
469
+ # time.sleep(3)
469
470
  # i = 100
470
471
  # for i in range(1, 100):
471
472
  # print(f"Getting screenshot {i}")
@@ -280,7 +280,10 @@ class GoogleLens:
280
280
  logger.info('Google Lens ready')
281
281
 
282
282
  def __call__(self, img, furigana_filter_sensitivity=0, return_coords=False):
283
- furigana_filter_sensitivity = get_furigana_filter_sensitivity()
283
+ if furigana_filter_sensitivity != None:
284
+ furigana_filter_sensitivity = get_furigana_filter_sensitivity()
285
+ else:
286
+ furigana_filter_sensitivity = 0
284
287
  lang = get_ocr_language()
285
288
  img, is_path = input_to_pil_image(img)
286
289
  if lang != self.initial_lang:
@@ -863,6 +866,8 @@ class OneOCR:
863
866
  logger.warning('OneOCR is not supported on Windows older than 10!')
864
867
  elif 'oneocr' not in sys.modules:
865
868
  logger.warning('oneocr not available, OneOCR will not work!')
869
+ elif not os.path.exists(os.path.expanduser('~/.config/oneocr/oneocr.dll')):
870
+ logger.warning('OneOCR DLLs not found, please install OwOCR Dependencies via OCR Tab in GSM.')
866
871
  else:
867
872
  try:
868
873
  self.model = oneocr.OcrEngine()
@@ -902,7 +907,10 @@ class OneOCR:
902
907
 
903
908
  def __call__(self, img, furigana_filter_sensitivity=0, return_coords=False, multiple_crop_coords=False, return_one_box=True):
904
909
  lang = get_ocr_language()
905
- furigana_filter_sensitivity = get_furigana_filter_sensitivity()
910
+ if furigana_filter_sensitivity != None:
911
+ furigana_filter_sensitivity = get_furigana_filter_sensitivity()
912
+ else:
913
+ furigana_filter_sensitivity = 0
906
914
  if lang != self.initial_lang:
907
915
  self.initial_lang = lang
908
916
  self.regex = get_regex(lang)
@@ -132,33 +132,40 @@ class OverlayProcessor:
132
132
  if not full_screenshot:
133
133
  logger.warning("Failed to get a screenshot.")
134
134
  return []
135
+ if self.oneocr:
136
+ # 2. Use OneOCR to find general text areas (fast)
137
+ _, _, oneocr_results, crop_coords_list = self.oneocr(
138
+ full_screenshot,
139
+ return_coords=True,
140
+ multiple_crop_coords=True,
141
+ return_one_box=False,
142
+ furigana_filter_sensitivity=None # Disable furigana filtering
143
+ )
135
144
 
136
- # 2. Use OneOCR to find general text areas (fast)
137
- _, _, _, crop_coords_list = self.oneocr(
138
- full_screenshot,
139
- return_coords=True,
140
- multiple_crop_coords=True,
141
- return_one_box=False,
142
- furigana_filter_sensitivity=0
143
- )
144
-
145
- # 3. Create a composite image with only the detected text regions
146
- composite_image = self._create_composite_image(
147
- full_screenshot,
148
- crop_coords_list,
149
- monitor_width,
150
- monitor_height
151
- )
145
+ # 3. Create a composite image with only the detected text regions
146
+ composite_image = self._create_composite_image(
147
+ full_screenshot,
148
+ crop_coords_list,
149
+ monitor_width,
150
+ monitor_height
151
+ )
152
+ else:
153
+ composite_image = full_screenshot
152
154
 
153
155
  # 4. Use Google Lens on the cleaner composite image for higher accuracy
154
- res, text, coords = self.lens(
156
+ res = self.lens(
155
157
  composite_image,
156
158
  return_coords=True,
157
- furigana_filter_sensitivity=0
159
+ furigana_filter_sensitivity=None # Disable furigana filtering
158
160
  )
159
161
 
162
+ if len(res) != 3:
163
+ return oneocr_results
164
+
165
+ _, _, coords = res
166
+
160
167
  if not res or not coords:
161
- return []
168
+ return oneocr_results
162
169
 
163
170
  # 5. Process the high-accuracy results into the desired format
164
171
  extracted_data = self._extract_text_with_pixel_boxes(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.14.0rc1
3
+ Version: 2.14.1
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.14.0rc1
3
+ Version: 2.14.1
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.14.0.pre1"
10
+ version = "2.14.1"
11
11
  description = "A tool for mining sentences from games. Update: Overlay?"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"