GameSentenceMiner 2.9.29__tar.gz → 2.10.0__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.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/anki.py +9 -9
- gamesentenceminer-2.10.0/GameSentenceMiner/config_gui.py +1539 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/gametext.py +5 -2
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/gsm.py +10 -10
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ocr/gsm_ocr_config.py +16 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ocr/owocr_area_selector.py +2 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ocr/owocr_helper.py +18 -33
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ocr/ss_picker.py +17 -1
- gamesentenceminer-2.10.0/GameSentenceMiner/util/audio_offset_selector.py +205 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/configuration.py +45 -16
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/ffmpeg.py +23 -95
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/gsm_utils.py +56 -1
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/text_log.py +2 -2
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/vad.py +3 -14
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/texthooking_page.py +2 -2
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner.egg-info/PKG-INFO +4 -2
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner.egg-info/SOURCES.txt +1 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner.egg-info/requires.txt +2 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/PKG-INFO +4 -2
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/pyproject.toml +5 -3
- gamesentenceminer-2.9.29/GameSentenceMiner/config_gui.py +0 -1341
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ai/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ai/ai_prompting.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/icon.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/icon128.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/icon256.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/icon32.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/icon512.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/icon64.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/assets/pickaxe.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/obs.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ocr/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/config.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/run.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/communication/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/communication/send.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/communication/websocket.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/downloader/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/electron_config.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/model.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/notification.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/package.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/util/ss_selector.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/service.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/favicon.ico +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/favicon.svg +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/site.webmanifest +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/style.css +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/templates/__init__.py +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/templates/index.html +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner/web/templates/utility.html +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/GameSentenceMiner.egg-info/top_level.txt +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/LICENSE +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/README.md +0 -0
- {gamesentenceminer-2.9.29 → gamesentenceminer-2.10.0}/setup.cfg +0 -0
@@ -86,10 +86,6 @@ def update_anki_card(last_note: AnkiCard, note=None, audio_path='', video_path='
|
|
86
86
|
if prev_screenshot_in_anki and get_config().anki.previous_image_field != get_config().anki.picture_field:
|
87
87
|
note['fields'][get_config().anki.previous_image_field] = prev_screenshot_html
|
88
88
|
|
89
|
-
if get_config().anki.anki_custom_fields:
|
90
|
-
for key, value in get_config().anki.anki_custom_fields.items():
|
91
|
-
note['fields'][key] = str(value)
|
92
|
-
|
93
89
|
|
94
90
|
tags = []
|
95
91
|
if get_config().anki.custom_tags:
|
@@ -100,6 +96,8 @@ def update_anki_card(last_note: AnkiCard, note=None, audio_path='', video_path='
|
|
100
96
|
tag_string = " ".join(tags)
|
101
97
|
invoke("addTags", tags=tag_string, notes=[last_note.noteId])
|
102
98
|
|
99
|
+
|
100
|
+
logger.info(f"Adding {game_line.id} to Anki Results Dict...")
|
103
101
|
if not reuse_audio:
|
104
102
|
anki_results[game_line.id] = AnkiUpdateResult(
|
105
103
|
success=True,
|
@@ -298,18 +296,20 @@ def update_new_card():
|
|
298
296
|
if not last_card or not check_tags_for_should_update(last_card):
|
299
297
|
return
|
300
298
|
gsm_status.add_word_being_processed(last_card.get_field(get_config().anki.word_field))
|
301
|
-
use_prev_audio = sentence_is_same_as_previous(last_card)
|
302
299
|
logger.debug(f"last mined line: {gsm_state.last_mined_line}, current sentence: {get_sentence(last_card)}")
|
300
|
+
lines = texthooking_page.get_selected_lines()
|
301
|
+
game_line = get_mined_line(last_card, lines)
|
302
|
+
use_prev_audio = sentence_is_same_as_previous(last_card, lines) or game_line.id in anki_results
|
303
303
|
logger.info(f"New card using previous audio: {use_prev_audio}")
|
304
304
|
if get_config().obs.get_game_from_scene:
|
305
305
|
obs.update_current_game()
|
306
306
|
if use_prev_audio:
|
307
|
-
lines = texthooking_page.get_selected_lines()
|
308
307
|
run_new_thread(lambda: update_card_from_same_sentence(last_card, lines=lines, game_line=get_mined_line(last_card, lines)))
|
309
308
|
texthooking_page.reset_checked_lines()
|
310
309
|
else:
|
311
310
|
logger.info("New card(s) detected! Added to Processing Queue!")
|
312
|
-
card_queue.append((last_card, datetime.now()))
|
311
|
+
card_queue.append((last_card, datetime.now(), lines))
|
312
|
+
texthooking_page.reset_checked_lines()
|
313
313
|
try:
|
314
314
|
obs.save_replay_buffer()
|
315
315
|
except Exception as e:
|
@@ -329,10 +329,10 @@ def update_card_from_same_sentence(last_card, lines, game_line):
|
|
329
329
|
notification.send_error_no_anki_update()
|
330
330
|
|
331
331
|
|
332
|
-
def sentence_is_same_as_previous(last_card):
|
332
|
+
def sentence_is_same_as_previous(last_card, lines=None):
|
333
333
|
if not gsm_state.last_mined_line:
|
334
334
|
return False
|
335
|
-
return gsm_state.last_mined_line.id == get_mined_line(last_card).id
|
335
|
+
return gsm_state.last_mined_line.id == get_mined_line(last_card, lines).id
|
336
336
|
|
337
337
|
def get_sentence(card):
|
338
338
|
return card.get_field(get_config().anki.sentence_field)
|