GameSentenceMiner 2.15.0__tar.gz → 2.15.2__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.
Files changed (85) hide show
  1. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/config_gui.py +1 -1
  2. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/obs.py +41 -4
  3. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  4. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/PKG-INFO +1 -1
  5. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/pyproject.toml +1 -1
  6. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/__init__.py +0 -0
  7. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ai/__init__.py +0 -0
  8. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  9. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/anki.py +0 -0
  10. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/__init__.py +0 -0
  11. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/icon.png +0 -0
  12. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/icon128.png +0 -0
  13. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/icon256.png +0 -0
  14. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/icon32.png +0 -0
  15. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/icon512.png +0 -0
  16. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/icon64.png +0 -0
  17. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/assets/pickaxe.png +0 -0
  18. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/gametext.py +0 -0
  19. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/gsm.py +0 -0
  20. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/locales/en_us.json +0 -0
  21. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/locales/ja_jp.json +0 -0
  22. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/locales/zh_cn.json +0 -0
  23. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ocr/__init__.py +0 -0
  24. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  25. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  26. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  27. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  28. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  29. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  30. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  31. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  32. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  33. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
  34. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  35. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  36. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/tools/__init__.py +0 -0
  37. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
  38. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/tools/furigana_filter_preview.py +0 -0
  39. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/tools/ss_selector.py +0 -0
  40. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/tools/window_transparency.py +0 -0
  41. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/__init__.py +0 -0
  42. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/communication/__init__.py +0 -0
  43. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/communication/send.py +0 -0
  44. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/communication/websocket.py +0 -0
  45. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/configuration.py +0 -0
  46. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/db.py +0 -0
  47. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  48. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  49. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  50. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  51. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/electron_config.py +0 -0
  52. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/ffmpeg.py +0 -0
  53. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/get_overlay_coords.py +0 -0
  54. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/gsm_utils.py +0 -0
  55. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/model.py +0 -0
  56. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/notification.py +0 -0
  57. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/text_log.py +0 -0
  58. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/win10toast/__init__.py +0 -0
  59. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/util/win10toast/__main__.py +0 -0
  60. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/vad.py +0 -0
  61. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/__init__.py +0 -0
  62. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/service.py +0 -0
  63. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/__init__.py +0 -0
  64. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  65. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  66. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/favicon.ico +0 -0
  67. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/favicon.svg +0 -0
  68. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  69. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/style.css +0 -0
  70. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  71. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  72. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/templates/__init__.py +0 -0
  73. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/templates/index.html +0 -0
  74. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  75. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/templates/utility.html +0 -0
  76. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/web/texthooking_page.py +0 -0
  77. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner/wip/__init___.py +0 -0
  78. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  79. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  80. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  81. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner.egg-info/requires.txt +0 -0
  82. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  83. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/LICENSE +0 -0
  84. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/README.md +0 -0
  85. {gamesentenceminer-2.15.0 → gamesentenceminer-2.15.2}/setup.cfg +0 -0
@@ -2193,7 +2193,7 @@ class ConfigApp:
2193
2193
  self.overlay_monitor = ttk.Combobox(overlay_frame, values=self.monitors, state="readonly")
2194
2194
  self.overlay_monitor.grid(row=self.current_row, column=1, sticky='EW', pady=2)
2195
2195
  # disable selection for now, default to value 1
2196
- self.overlay_monitor.current(1)
2196
+ self.overlay_monitor.current(0)
2197
2197
  self.overlay_monitor.config(state="disabled")
2198
2198
  self.current_row += 1
2199
2199
 
@@ -506,6 +506,39 @@ def set_fit_to_screen_for_scene_items(scene_name: str):
506
506
 
507
507
  source_width = scene_item_transform.get('sourceWidth', None)
508
508
  source_height = scene_item_transform.get('sourceHeight', None)
509
+
510
+ aspect_ratio_different = False
511
+ already_cropped = any([
512
+ scene_item_transform.get('cropLeft', 0) != 0,
513
+ scene_item_transform.get('cropRight', 0) != 0,
514
+ scene_item_transform.get('cropTop', 0) != 0,
515
+ scene_item_transform.get('cropBottom', 0) != 0,
516
+ ])
517
+
518
+ if source_width and source_height and not already_cropped:
519
+ source_aspect_ratio = source_width / source_height
520
+ canvas_aspect_ratio = canvas_width / canvas_height
521
+ # Check if aspect ratio is different and if it's a standard aspect ratio
522
+ aspect_ratio_different = abs(source_aspect_ratio - canvas_aspect_ratio) > 0.01
523
+
524
+ # List of standard aspect ratios
525
+ standard_ratios = [
526
+ 4 / 3,
527
+ 16 / 9,
528
+ 16 / 10,
529
+ 21 / 9,
530
+ 32 / 9,
531
+ 5 / 4,
532
+ 3 / 2,
533
+ ]
534
+
535
+ def is_standard_ratio(ratio):
536
+ return any(abs(ratio - std) < 0.02 for std in standard_ratios)
537
+
538
+ # Only crop if both source and canvas are standard aspect ratios
539
+ if aspect_ratio_different:
540
+ if not (is_standard_ratio(source_aspect_ratio) and is_standard_ratio(canvas_aspect_ratio)):
541
+ aspect_ratio_different = False
509
542
 
510
543
  # This transform object is the equivalent of "Fit to Screen"
511
544
  fit_to_screen_transform = {
@@ -515,11 +548,15 @@ def set_fit_to_screen_for_scene_items(scene_name: str):
515
548
  'boundsHeight': canvas_height,
516
549
  'positionX': 0,
517
550
  'positionY': 0,
518
- 'cropLeft': 0 if canvas_width >= source_width else (source_width - canvas_width) // 2,
519
- 'cropRight': 0 if canvas_width >= source_width else (source_width - canvas_width) // 2,
520
- 'cropTop': 0 if canvas_height >= source_height else (source_height - canvas_height) // 2,
521
- 'cropBottom': 0 if canvas_height >= source_height else (source_height - canvas_height) // 2,
522
551
  }
552
+
553
+ if not already_cropped:
554
+ fit_to_screen_transform.update({
555
+ 'cropLeft': 0 if not aspect_ratio_different or canvas_width > source_width else (source_width - canvas_width) // 2,
556
+ 'cropRight': 0 if not aspect_ratio_different or canvas_width > source_width else (source_width - canvas_width) // 2,
557
+ 'cropTop': 0 if not aspect_ratio_different or canvas_height > source_height else (source_height - canvas_height) // 2,
558
+ 'cropBottom': 0 if not aspect_ratio_different or canvas_height > source_height else (source_height - canvas_height) // 2,
559
+ })
523
560
 
524
561
  try:
525
562
  client.set_scene_item_transform(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.15.0
3
+ Version: 2.15.2
4
4
  Summary: A tool for mining sentences from games. Update: Overlay?
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.15.0
3
+ Version: 2.15.2
4
4
  Summary: A tool for mining sentences from games. Update: Overlay?
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "GameSentenceMiner"
10
- version = "2.15.0"
10
+ version = "2.15.2"
11
11
  description = "A tool for mining sentences from games. Update: Overlay?"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"