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