GameSentenceMiner 2.9.9__py3-none-any.whl → 2.9.10__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
@@ -41,13 +41,13 @@ def update_anki_card(last_note: AnkiCard, note=None, audio_path='', video_path='
41
41
  audio_in_anki = store_media_file(audio_path)
42
42
  if update_picture:
43
43
  logger.info("Getting Screenshot...")
44
- screenshot = ffmpeg.get_screenshot(video_path, ss_time)
44
+ screenshot = ffmpeg.get_screenshot(video_path, ss_time, try_selector=get_config().screenshot.use_screenshot_selector)
45
45
  wait_for_stable_file(screenshot)
46
46
  screenshot_in_anki = store_media_file(screenshot)
47
47
  if get_config().paths.remove_screenshot:
48
48
  os.remove(screenshot)
49
49
  if get_config().anki.previous_image_field and game_line.prev:
50
- prev_screenshot = ffmpeg.get_screenshot_for_line(video_path, selected_lines[0].prev if selected_lines else game_line.prev)
50
+ prev_screenshot = ffmpeg.get_screenshot_for_line(video_path, selected_lines[0].prev if selected_lines else game_line.prev, try_selector=get_config().screenshot.use_screenshot_selector)
51
51
  wait_for_stable_file(prev_screenshot)
52
52
  prev_screenshot_in_anki = store_media_file(prev_screenshot)
53
53
  if get_config().paths.remove_screenshot:
@@ -184,10 +184,11 @@ class ConfigApp:
184
184
  extension=self.screenshot_extension.get(),
185
185
  custom_ffmpeg_settings=self.screenshot_custom_ffmpeg_settings.get(),
186
186
  screenshot_hotkey_updates_anki=self.screenshot_hotkey_update_anki.get(),
187
- seconds_after_line = self.seconds_after_line.get(),
187
+ seconds_after_line = float(self.seconds_after_line.get()) if self.seconds_after_line.get() else 0.0,
188
188
  # use_beginning_of_line_as_screenshot=self.use_beginning_of_line_as_screenshot.get(),
189
189
  # use_new_screenshot_logic=self.use_new_screenshot_logic.get(),
190
- screenshot_timing_setting=self.screenshot_timing.get()
190
+ screenshot_timing_setting=self.screenshot_timing.get(),
191
+ use_screenshot_selector=self.use_screenshot_selector.get(),
191
192
  ),
192
193
  audio=Audio(
193
194
  enabled=self.audio_enabled.get(),
@@ -847,6 +848,12 @@ class ConfigApp:
847
848
  self.add_label_and_increment_row(screenshot_frame, "Time in seconds to offset the screenshot based on the Timing setting above (should almost always be positive, can be negative if you use \"middle\")", row=self.current_row,
848
849
  column=2)
849
850
 
851
+ ttk.Label(screenshot_frame, text="Use Screenshot Selector for every card:").grid(row=self.current_row, column=0, sticky='W')
852
+ self.use_screenshot_selector = tk.BooleanVar(value=self.settings.screenshot.use_screenshot_selector)
853
+ ttk.Checkbutton(screenshot_frame, variable=self.use_screenshot_selector).grid(row=self.current_row, column=1, sticky='W')
854
+ self.add_label_and_increment_row(screenshot_frame, "Enable to use the screenshot selector to choose the screenshot point on every card.", row=self.current_row,
855
+ column=2)
856
+
850
857
  # ttk.Label(screenshot_frame, text="Use Beginning of Line as Screenshot:").grid(row=self.current_row, column=0, sticky='W')
851
858
  # self.use_beginning_of_line_as_screenshot = tk.BooleanVar(value=self.settings.screenshot.use_beginning_of_line_as_screenshot)
852
859
  # ttk.Checkbutton(screenshot_frame, variable=self.use_beginning_of_line_as_screenshot).grid(row=self.current_row, column=1, sticky='W')
@@ -145,6 +145,7 @@ class Screenshot:
145
145
  use_beginning_of_line_as_screenshot: bool = True
146
146
  use_new_screenshot_logic: bool = False
147
147
  screenshot_timing_setting: str = '' # 'middle', 'end'
148
+ use_screenshot_selector: bool = False
148
149
 
149
150
  def __post_init__(self):
150
151
  if not self.screenshot_timing_setting and self.use_beginning_of_line_as_screenshot:
@@ -34,7 +34,10 @@ def open_browser_window(note_id, query=None):
34
34
  try:
35
35
  response = requests.post(url, json=data, headers=headers)
36
36
  if response.status_code == 200:
37
- logger.info(f"Opened Anki note with ID {note_id}")
37
+ if query:
38
+ logger.info(f"Opened Anki browser with query: {query}")
39
+ else:
40
+ logger.info(f"Opened Anki note in browser with ID {note_id}")
38
41
  else:
39
42
  logger.error(f"Failed to open Anki note with ID {note_id}")
40
43
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.9.9
3
+ Version: 2.9.10
4
4
  Summary: A tool for mining sentences from games.
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  GameSentenceMiner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- GameSentenceMiner/anki.py,sha256=OPamV4p5mSEkfrUdflauzDJ4Uh2rLYtHq9F7D1aMyhY,15077
3
- GameSentenceMiner/config_gui.py,sha256=r-ASCXVNS4Io6Ej3svwC8aJEWc9Rc7u-pzfsAwD4ru8,82079
2
+ GameSentenceMiner/anki.py,sha256=pUvu66s6TFM7432bEl0mL4JoPUJiyPUxc1NAEoQngYM,15201
3
+ GameSentenceMiner/config_gui.py,sha256=OZJqsU2v03C_MSpw-S6fYQEOXJ_AUvOUCFeT-3aex8Y,82800
4
4
  GameSentenceMiner/gametext.py,sha256=mM-gw1d7c2EEvMUznaAevTQFLswNZavCuxMXhA9pV4g,6251
5
5
  GameSentenceMiner/gsm.py,sha256=fSMVLyglpqNy8h5NsznWYap-Bu41tVUPwApWUpvSadY,29105
6
6
  GameSentenceMiner/obs.py,sha256=O9NYOGu7kwp4flq8LLXp8YJQg0JTZ8qBqiQNQ6u4ku4,14724
@@ -28,12 +28,12 @@ GameSentenceMiner/owocr/owocr/ocr.py,sha256=y8RHHaJw8M4BG4CbbtIw0DrV8KP9RjbJNJxj
28
28
  GameSentenceMiner/owocr/owocr/run.py,sha256=jFN7gYYriHgfqORJiBTz8mPkQsDJ6ZugA0_ATWUxk-U,54750
29
29
  GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py,sha256=Na6XStbQBtpQUSdbN3QhEswtKuU1JjReFk_K8t5ezQE,3395
30
30
  GameSentenceMiner/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- GameSentenceMiner/util/configuration.py,sha256=VCIDRjulbWu-xgU2B_k2i8POVrP-Lw5dN3ghatDcxGs,25901
31
+ GameSentenceMiner/util/configuration.py,sha256=gahWrXj4P0DqlbDEuhR2XFfhpqJvh4ndLDA18bnOwBA,25943
32
32
  GameSentenceMiner/util/electron_config.py,sha256=ZZf54QifdNHbII-JDsMZmdT8nTyrq-7gVvalyLRecfw,9792
33
33
  GameSentenceMiner/util/ffmpeg.py,sha256=qaCXkfK2fd-1NRqbm7burrdBYgnGx07kBuyenee8Mtk,18697
34
34
  GameSentenceMiner/util/gsm_utils.py,sha256=RoOTvWCVpmfYA7fLDdIPcgH1c6TZK4jDZq98BectPhg,8272
35
35
  GameSentenceMiner/util/model.py,sha256=iDtLTfR6D-ZC0gCiDqYno6-gA6Z07PZTM4B5MAA6xZI,5704
36
- GameSentenceMiner/util/notification.py,sha256=euTnnNDJm0izr0Z5AhZGV2wrrioCASeKUtm5aZFO5zU,3462
36
+ GameSentenceMiner/util/notification.py,sha256=ViqasUgn9TGqYyaEucb8aatb_6L8kA58EPsMAUYiWUU,3589
37
37
  GameSentenceMiner/util/package.py,sha256=u1ym5z869lw5EHvIviC9h9uH97bzUXSXXA8KIn8rUvk,1157
38
38
  GameSentenceMiner/util/ss_selector.py,sha256=oCzmDbpEGvVselF-oDPIrBcQktGIZT0Zt16uDLDAHMQ,4493
39
39
  GameSentenceMiner/util/text_log.py,sha256=JQS0JpcdaTvcdKgfKs3lWskG4dk6NPjqjMJpm2--37I,5310
@@ -59,9 +59,9 @@ GameSentenceMiner/web/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
59
59
  GameSentenceMiner/web/templates/index.html,sha256=HZKiIjiGJV8PGQ9T2aLDUNSfJn71qOwbYCjbRuSIjpY,213583
60
60
  GameSentenceMiner/web/templates/text_replacements.html,sha256=tV5c8mCaWSt_vKuUpbdbLAzXZ3ATZeDvQ9PnnAfqY0M,8598
61
61
  GameSentenceMiner/web/templates/utility.html,sha256=3flZinKNqUJ7pvrZk6xu__v67z44rXnaK7UTZ303R-8,16946
62
- gamesentenceminer-2.9.9.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
63
- gamesentenceminer-2.9.9.dist-info/METADATA,sha256=nThHRsiJF7JUpr6q0Y51JndWC6p1zLGwGnxkLtLRhvM,7250
64
- gamesentenceminer-2.9.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
65
- gamesentenceminer-2.9.9.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
66
- gamesentenceminer-2.9.9.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
67
- gamesentenceminer-2.9.9.dist-info/RECORD,,
62
+ gamesentenceminer-2.9.10.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
63
+ gamesentenceminer-2.9.10.dist-info/METADATA,sha256=WvTTFa-wwzkn21R-ede66gtXCHFCNZCcCNlWi99s6Uw,7251
64
+ gamesentenceminer-2.9.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
65
+ gamesentenceminer-2.9.10.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
66
+ gamesentenceminer-2.9.10.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
67
+ gamesentenceminer-2.9.10.dist-info/RECORD,,