GameSentenceMiner 2.12.4__tar.gz → 2.12.6__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.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/owocr_helper.py +7 -4
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/run.py +5 -1
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/wip/get_overlay_coords.py +1 -1
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/PKG-INFO +1 -1
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/pyproject.toml +1 -1
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ai/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ai/ai_prompting.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/anki.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/icon.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/icon128.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/icon256.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/icon32.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/icon512.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/icon64.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/assets/pickaxe.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/config_gui.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/gametext.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/gsm.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/obs.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/ss_picker.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/config.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/audio_offset_selector.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/communication/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/communication/send.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/communication/websocket.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/configuration.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/downloader/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/electron_config.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/ffmpeg.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/gsm_utils.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/model.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/notification.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/package.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/ss_selector.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/text_log.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/window_transparency.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/vad.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/service.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/favicon.ico +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/favicon.svg +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/site.webmanifest +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/style.css +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/__init__.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/index.html +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/utility.html +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/texthooking_page.py +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/requires.txt +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/top_level.txt +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/LICENSE +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/README.md +0 -0
- {gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/setup.cfg +0 -0
@@ -194,19 +194,21 @@ def compare_ocr_results(prev_text, new_text, threshold=90):
|
|
194
194
|
all_cords = None
|
195
195
|
rectangles = None
|
196
196
|
last_ocr2_result = []
|
197
|
+
last_sent_result = ""
|
197
198
|
|
198
199
|
def do_second_ocr(ocr1_text, time, img, filtering, pre_crop_image=None, ignore_furigana_filter=False, ignore_previous_result=False):
|
199
|
-
global twopassocr, ocr2, last_ocr2_result
|
200
|
+
global twopassocr, ocr2, last_ocr2_result, last_sent_result
|
200
201
|
try:
|
201
202
|
orig_text, text = run.process_and_write_results(img, None, last_ocr2_result if not ignore_previous_result else None, filtering, None,
|
202
203
|
engine=get_ocr_ocr2(), furigana_filter_sensitivity=furigana_filter_sensitivity if not ignore_furigana_filter else 0)
|
203
204
|
|
204
|
-
if compare_ocr_results(
|
205
|
+
if compare_ocr_results(last_sent_result, text, threshold=80):
|
205
206
|
if text:
|
206
207
|
logger.info("Seems like Text we already sent, not doing anything.")
|
207
208
|
return
|
208
209
|
save_result_image(img, pre_crop_image=pre_crop_image)
|
209
210
|
last_ocr2_result = orig_text
|
211
|
+
last_sent_result = text
|
210
212
|
asyncio.run(send_result(text, time))
|
211
213
|
except json.JSONDecodeError:
|
212
214
|
print("Invalid JSON received.")
|
@@ -291,7 +293,7 @@ def reset_callback_vars():
|
|
291
293
|
run.set_last_image(None)
|
292
294
|
|
293
295
|
def text_callback(text, orig_text, time, img=None, came_from_ss=False, filtering=None, crop_coords=None):
|
294
|
-
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
|
296
|
+
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
|
295
297
|
orig_text_string = ''.join([item for item in orig_text if item is not None]) if orig_text else ""
|
296
298
|
if came_from_ss:
|
297
299
|
save_result_image(img)
|
@@ -304,12 +306,13 @@ def text_callback(text, orig_text, time, img=None, came_from_ss=False, filtering
|
|
304
306
|
line_start_time = time if time else datetime.now()
|
305
307
|
|
306
308
|
if manual or not get_ocr_two_pass_ocr():
|
307
|
-
if compare_ocr_results(
|
309
|
+
if compare_ocr_results(last_sent_result, text, 80):
|
308
310
|
if text:
|
309
311
|
logger.info("Seems like Text we already sent, not doing anything.")
|
310
312
|
return
|
311
313
|
save_result_image(img)
|
312
314
|
asyncio.run(send_result(text, line_start_time))
|
315
|
+
last_sent_result = text
|
313
316
|
previous_orig_text = orig_text_string
|
314
317
|
previous_text = None
|
315
318
|
previous_img = None
|
@@ -856,6 +856,9 @@ class OBSScreenshotThread(threading.Thread):
|
|
856
856
|
self.current_source_name = self.current_source.get("sourceName") or None
|
857
857
|
self.current_scene = scene if scene else obs.get_current_game()
|
858
858
|
self.ocr_config = get_scene_ocr_config()
|
859
|
+
if not self.ocr_config:
|
860
|
+
logger.error("No OCR config found for the current scene.")
|
861
|
+
return
|
859
862
|
self.ocr_config.scale_to_custom_size(self.width, self.height)
|
860
863
|
|
861
864
|
# Register a scene switch callback in obsws
|
@@ -883,6 +886,7 @@ class OBSScreenshotThread(threading.Thread):
|
|
883
886
|
continue
|
884
887
|
|
885
888
|
if not self.ocr_config:
|
889
|
+
logger.info("No OCR config found for the current scene. Waiting for scene switch.")
|
886
890
|
time.sleep(1)
|
887
891
|
continue
|
888
892
|
|
@@ -896,7 +900,7 @@ class OBSScreenshotThread(threading.Thread):
|
|
896
900
|
logger.error("No active source found in the current scene.")
|
897
901
|
time.sleep(1)
|
898
902
|
continue
|
899
|
-
img = obs.get_screenshot_PIL(source_name=self.current_source_name, width=self.width, height=self.height, img_format='
|
903
|
+
img = obs.get_screenshot_PIL(source_name=self.current_source_name, width=self.width, height=self.height, img_format='png', compression=80)
|
900
904
|
|
901
905
|
if img is not None:
|
902
906
|
if not img.getbbox():
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/wip/get_overlay_coords.py
RENAMED
@@ -314,7 +314,7 @@ async def get_full_screenshot() -> Image.Image | None:
|
|
314
314
|
else:
|
315
315
|
monitors = [monitors[0]]
|
316
316
|
monitor = monitors[get_config().wip.monitor_to_capture]
|
317
|
-
img = get_screenshot_PIL(compression=
|
317
|
+
img = get_screenshot_PIL(compression=90, img_format='jpg')
|
318
318
|
# Put the image over a transparent background without stretching
|
319
319
|
new_img = Image.new("RGBA", (monitor['width'], monitor['height']), (0, 0, 0, 0))
|
320
320
|
# Calculate coordinates to center img horizontally and vertically
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/gsm_ocr_config.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/ocr/owocr_area_selector.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/__init__.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/__main__.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/owocr/owocr/config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/communication/send.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/configuration.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/downloader/__init__.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/downloader/oneocr_dl.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/electron_config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/notification.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/util/window_transparency.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/__init__.py
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/favicon-96x96.png
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/favicon.ico
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/favicon.svg
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/site.webmanifest
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/static/style.css
RENAMED
File without changes
|
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/__init__.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/index.html
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/templates/utility.html
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner/web/texthooking_page.py
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/entry_points.txt
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/requires.txt
RENAMED
File without changes
|
{gamesentenceminer-2.12.4 → gamesentenceminer-2.12.6}/GameSentenceMiner.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|