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.
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/obs.py +6 -5
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/ocr.py +10 -2
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/get_overlay_coords.py +26 -19
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/PKG-INFO +1 -1
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/pyproject.toml +1 -1
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ai/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ai/ai_prompting.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/anki.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon128.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon256.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon32.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon512.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon64.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/pickaxe.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/config_gui.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/gametext.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/gsm.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/en_us.json +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/ja_jp.json +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/zh_cn.json +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/ss_picker.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/config.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/run.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/ss_selector.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/window_transparency.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/communication/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/communication/send.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/communication/websocket.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/configuration.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/db.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/electron_config.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/ffmpeg.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/gsm_utils.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/model.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/notification.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/text_log.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/vad.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/service.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon.ico +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon.svg +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/site.webmanifest +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/style.css +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/__init__.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/index.html +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/utility.html +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/texthooking_page.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/wip/__init___.py +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/requires.txt +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/top_level.txt +0 -0
- {gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/LICENSE +0 -0
- {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
|
-
|
467
|
-
|
468
|
-
|
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}")
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/ocr.py
RENAMED
@@ -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
|
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
|
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
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
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
|
156
|
+
res = self.lens(
|
155
157
|
composite_image,
|
156
158
|
return_coords=True,
|
157
|
-
furigana_filter_sensitivity=
|
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(
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ai/ai_prompting.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/__init__.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon128.png
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon256.png
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon32.png
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon512.png
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/icon64.png
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/assets/pickaxe.png
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/en_us.json
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/ja_jp.json
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/locales/zh_cn.json
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/gsm_ocr_config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/ocr/owocr_helper.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/__init__.py
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/__main__.py
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/config.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/owocr/owocr/run.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/__init__.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/tools/ss_selector.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/configuration.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/electron_config.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/gsm_utils.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/util/notification.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon.ico
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/favicon.svg
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/static/style.css
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/__init__.py
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/templates/index.html
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner/web/texthooking_page.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/entry_points.txt
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/requires.txt
RENAMED
File without changes
|
{gamesentenceminer-2.14.0rc1 → gamesentenceminer-2.14.1}/GameSentenceMiner.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|