GameSentenceMiner 2.9.29__py3-none-any.whl → 2.10.0__py3-none-any.whl
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/anki.py +9 -9
- GameSentenceMiner/config_gui.py +826 -628
- GameSentenceMiner/gametext.py +5 -2
- GameSentenceMiner/gsm.py +10 -10
- GameSentenceMiner/ocr/gsm_ocr_config.py +16 -0
- GameSentenceMiner/ocr/owocr_area_selector.py +2 -0
- GameSentenceMiner/ocr/owocr_helper.py +18 -33
- GameSentenceMiner/ocr/ss_picker.py +17 -1
- GameSentenceMiner/util/audio_offset_selector.py +205 -0
- GameSentenceMiner/util/configuration.py +45 -16
- GameSentenceMiner/util/ffmpeg.py +23 -95
- GameSentenceMiner/util/gsm_utils.py +56 -1
- GameSentenceMiner/util/text_log.py +2 -2
- GameSentenceMiner/vad.py +3 -14
- GameSentenceMiner/web/texthooking_page.py +2 -2
- {gamesentenceminer-2.9.29.dist-info → gamesentenceminer-2.10.0.dist-info}/METADATA +4 -2
- {gamesentenceminer-2.9.29.dist-info → gamesentenceminer-2.10.0.dist-info}/RECORD +21 -20
- {gamesentenceminer-2.9.29.dist-info → gamesentenceminer-2.10.0.dist-info}/WHEEL +0 -0
- {gamesentenceminer-2.9.29.dist-info → gamesentenceminer-2.10.0.dist-info}/entry_points.txt +0 -0
- {gamesentenceminer-2.9.29.dist-info → gamesentenceminer-2.10.0.dist-info}/licenses/LICENSE +0 -0
- {gamesentenceminer-2.9.29.dist-info → gamesentenceminer-2.10.0.dist-info}/top_level.txt +0 -0
GameSentenceMiner/anki.py
CHANGED
@@ -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)
|