GameSentenceMiner 2.14.6__tar.gz → 2.14.8__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 (82) hide show
  1. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/obs.py +1 -1
  2. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ocr/owocr_helper.py +12 -4
  3. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/ocr.py +4 -5
  4. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/configuration.py +1 -1
  5. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  6. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/PKG-INFO +1 -1
  7. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/pyproject.toml +1 -1
  8. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/__init__.py +0 -0
  9. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ai/__init__.py +0 -0
  10. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  11. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/anki.py +0 -0
  12. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/__init__.py +0 -0
  13. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/icon.png +0 -0
  14. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/icon128.png +0 -0
  15. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/icon256.png +0 -0
  16. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/icon32.png +0 -0
  17. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/icon512.png +0 -0
  18. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/icon64.png +0 -0
  19. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/assets/pickaxe.png +0 -0
  20. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/config_gui.py +0 -0
  21. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/gametext.py +0 -0
  22. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/gsm.py +0 -0
  23. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/locales/en_us.json +0 -0
  24. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/locales/ja_jp.json +0 -0
  25. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/locales/zh_cn.json +0 -0
  26. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ocr/__init__.py +0 -0
  27. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  28. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  29. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  30. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  31. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  32. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  33. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  34. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  35. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  36. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  37. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/tools/__init__.py +0 -0
  38. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
  39. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/tools/ss_selector.py +0 -0
  40. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/tools/window_transparency.py +0 -0
  41. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/__init__.py +0 -0
  42. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/communication/__init__.py +0 -0
  43. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/communication/send.py +0 -0
  44. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/communication/websocket.py +0 -0
  45. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/db.py +0 -0
  46. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  47. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  48. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  49. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  50. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/electron_config.py +0 -0
  51. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/ffmpeg.py +0 -0
  52. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/get_overlay_coords.py +0 -0
  53. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/gsm_utils.py +0 -0
  54. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/model.py +0 -0
  55. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/notification.py +0 -0
  56. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/util/text_log.py +0 -0
  57. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/vad.py +0 -0
  58. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/__init__.py +0 -0
  59. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/service.py +0 -0
  60. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/__init__.py +0 -0
  61. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  62. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  63. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/favicon.ico +0 -0
  64. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/favicon.svg +0 -0
  65. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  66. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/style.css +0 -0
  67. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  68. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  69. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/templates/__init__.py +0 -0
  70. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/templates/index.html +0 -0
  71. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  72. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/templates/utility.html +0 -0
  73. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/web/texthooking_page.py +0 -0
  74. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner/wip/__init___.py +0 -0
  75. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  76. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  77. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  78. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner.egg-info/requires.txt +0 -0
  79. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  80. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/LICENSE +0 -0
  81. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/README.md +0 -0
  82. {gamesentenceminer-2.14.6 → gamesentenceminer-2.14.8}/setup.cfg +0 -0
@@ -62,7 +62,7 @@ class OBSConnectionManager(threading.Thread):
62
62
  else:
63
63
  is_empty = extrema[0] == extrema[1]
64
64
  if is_empty:
65
- logger.info("Image is totally empty (all pixels the same), sleeping.")
65
+ return
66
66
  else:
67
67
  root = tk.Tk()
68
68
  root.attributes('-topmost', True)
@@ -476,8 +476,6 @@ def add_ss_hotkey(ss_hotkey="ctrl+shift+g"):
476
476
  img = run.apply_ocr_config_to_image(img, ocr_config, is_secondary=True)
477
477
  do_second_ocr("", datetime.now(), img, TextFiltering(lang=get_ocr_language()), ignore_furigana_filter=True, ignore_previous_result=True)
478
478
 
479
- if not manual:
480
- keyboard.add_hotkey(get_ocr_manual_ocr_hotkey().lower(), ocr_secondary_rectangles)
481
479
  secret_ss_hotkey = "F14"
482
480
  filtering = TextFiltering(lang=get_ocr_language())
483
481
  cropper = ScreenCropper()
@@ -495,19 +493,29 @@ def add_ss_hotkey(ss_hotkey="ctrl+shift+g"):
495
493
  hotkey_reg = None
496
494
  try:
497
495
  hotkey_reg = keyboard.add_hotkey(ss_hotkey, capture)
496
+ if not manual:
497
+ secondary_hotkey_reg = keyboard.add_hotkey(get_ocr_manual_ocr_hotkey().lower(), ocr_secondary_rectangles)
498
498
  if "f13" in ss_hotkey.lower():
499
- keyboard.add_hotkey(secret_ss_hotkey, capture_main_monitor)
499
+ secret_hotkey_reg = keyboard.add_hotkey(secret_ss_hotkey, capture_main_monitor)
500
500
  print(f"Press {ss_hotkey} to take a screenshot.")
501
501
  except Exception as e:
502
502
  if hotkey_reg:
503
503
  keyboard.remove_hotkey(hotkey_reg)
504
+ if secondary_hotkey_reg:
505
+ keyboard.remove_hotkey(secondary_hotkey_reg)
506
+ if secret_hotkey_reg:
507
+ keyboard.remove_hotkey(secret_hotkey_reg)
504
508
  logger.error(f"Error setting up screenshot hotkey with keyboard, Attempting Backup: {e}")
505
509
  logger.debug(e)
506
510
  pynput_hotkey = ss_hotkey.replace("ctrl", "<ctrl>").replace("shift", "<shift>").replace("alt", "<alt>")
511
+ secret_ss_hotkey = secret_hotkey_reg.replace("ctrl", "<ctrl>").replace("shift", "<shift>").replace("alt", "<alt>")
512
+ secondary_ss_hotkey = secondary_hotkey_reg.replace("ctrl", "<ctrl>").replace("shift", "<shift>").replace("alt", "<alt>")
507
513
  try:
508
514
  from pynput import keyboard as pynput_keyboard
509
515
  listener = pynput_keyboard.GlobalHotKeys({
510
- pynput_hotkey: capture
516
+ pynput_hotkey: capture,
517
+ secondary_ss_hotkey: ocr_secondary_rectangles,
518
+ secret_ss_hotkey: capture_main_monitor
511
519
  })
512
520
  listener.start()
513
521
  print(f"Press {pynput_hotkey} to take a screenshot.")
@@ -1424,10 +1424,10 @@ class localLLMOCR:
1424
1424
  self.keep_warm = config.get('keep_warm', True)
1425
1425
  self.custom_prompt = config.get('prompt', None)
1426
1426
  self.available = True
1427
- if any(x in self.api_url for x in ['localhost', '127.0.0.1']):
1428
- if not self.check_connection(self.api_url):
1429
- logger.warning('Local LLM OCR API is not reachable')
1430
- return
1427
+ # if any(x in self.api_url for x in ['localhost', '127.0.0.1']):
1428
+ # if not self.check_connection(self.api_url):
1429
+ # logger.warning('Local LLM OCR API is not reachable')
1430
+ # return
1431
1431
  self.client = openai.OpenAI(
1432
1432
  base_url=self.api_url.replace('/v1/chat/completions', '/v1'),
1433
1433
  api_key=self.api_key
@@ -1442,7 +1442,6 @@ class localLLMOCR:
1442
1442
  logger.warning(f'Error initializing Local LLM OCR, Local LLM OCR will not work!')
1443
1443
 
1444
1444
  def check_connection(self, url, port=None):
1445
- # simple connectivity check with mega low timeout
1446
1445
  import http.client
1447
1446
  conn = http.client.HTTPConnection(url, port or 1234, timeout=0.1)
1448
1447
  try:
@@ -17,7 +17,6 @@ from dataclasses_json import dataclass_json
17
17
 
18
18
  from importlib import metadata
19
19
 
20
- import requests
21
20
 
22
21
 
23
22
  OFF = 'OFF'
@@ -361,6 +360,7 @@ def get_current_version():
361
360
 
362
361
  def get_latest_version():
363
362
  try:
363
+ import requests
364
364
  response = requests.get(f"https://pypi.org/pypi/{PACKAGE_NAME}/json")
365
365
  latest_version = response.json()["info"]["version"]
366
366
  return latest_version
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.14.6
3
+ Version: 2.14.8
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.14.6
3
+ Version: 2.14.8
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.14.6"
10
+ version = "2.14.8"
11
11
  description = "A tool for mining sentences from games. Update: Overlay?"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"