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 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)