GameSentenceMiner 2.12.0.dev1__tar.gz → 2.12.0.dev2__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 (77) hide show
  1. gamesentenceminer-2.12.0.dev2/GameSentenceMiner/wip/get_overlay_coords.py +95 -0
  2. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  3. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner.egg-info/SOURCES.txt +2 -1
  4. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/PKG-INFO +1 -1
  5. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/pyproject.toml +2 -2
  6. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/__init__.py +0 -0
  7. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ai/__init__.py +0 -0
  8. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ai/ai_prompting.py +0 -0
  9. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/anki.py +0 -0
  10. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/__init__.py +0 -0
  11. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/icon.png +0 -0
  12. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/icon128.png +0 -0
  13. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/icon256.png +0 -0
  14. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/icon32.png +0 -0
  15. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/icon512.png +0 -0
  16. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/icon64.png +0 -0
  17. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/assets/pickaxe.png +0 -0
  18. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/config_gui.py +0 -0
  19. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/gametext.py +0 -0
  20. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/gsm.py +0 -0
  21. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/obs.py +0 -0
  22. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ocr/__init__.py +0 -0
  23. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  24. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  25. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  26. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  27. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/ocr/ss_picker.py +0 -0
  28. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  29. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  30. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  31. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  32. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
  33. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  34. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  35. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/__init__.py +0 -0
  36. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/audio_offset_selector.py +0 -0
  37. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/communication/__init__.py +0 -0
  38. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/communication/send.py +0 -0
  39. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/communication/websocket.py +0 -0
  40. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/configuration.py +0 -0
  41. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
  42. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/downloader/__init__.py +0 -0
  43. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
  44. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
  45. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/electron_config.py +0 -0
  46. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/ffmpeg.py +0 -0
  47. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/gsm_utils.py +0 -0
  48. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/model.py +0 -0
  49. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/notification.py +0 -0
  50. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/package.py +0 -0
  51. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/ss_selector.py +0 -0
  52. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/text_log.py +0 -0
  53. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/util/window_transparency.py +0 -0
  54. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/vad.py +0 -0
  55. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/__init__.py +0 -0
  56. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/service.py +0 -0
  57. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/__init__.py +0 -0
  58. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  59. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  60. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/favicon.ico +0 -0
  61. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/favicon.svg +0 -0
  62. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  63. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/style.css +0 -0
  64. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  65. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  66. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/templates/__init__.py +0 -0
  67. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/templates/index.html +0 -0
  68. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/templates/text_replacements.html +0 -0
  69. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/templates/utility.html +0 -0
  70. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner/web/texthooking_page.py +0 -0
  71. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  72. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  73. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner.egg-info/requires.txt +0 -0
  74. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  75. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/LICENSE +0 -0
  76. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/README.md +0 -0
  77. {gamesentenceminer-2.12.0.dev1 → gamesentenceminer-2.12.0.dev2}/setup.cfg +0 -0
@@ -0,0 +1,95 @@
1
+ import asyncio
2
+ import io
3
+ import base64
4
+ from PIL import Image
5
+ import obsws_python as obs
6
+
7
+ from GameSentenceMiner.owocr.owocr.ocr import GoogleLens, OneOCR
8
+ from GameSentenceMiner.obs import *
9
+
10
+ # OBS WebSocket settings
11
+ OBS_HOST = 'localhost'
12
+ OBS_PORT = 7274
13
+ OBS_PASSWORD = 'your_obs_websocket_password' # Set your OBS WebSocket password here, if any
14
+
15
+ WINDOW_NAME = "Nier:Automata"
16
+ WIDTH = 2560
17
+ HEIGHT = 1440
18
+ oneocr = OneOCR()
19
+ lens = GoogleLens()
20
+
21
+ async def get_full_screenshot() -> Image.Image | None:
22
+ # print(f"Attempting to connect to OBS WebSocket at ws://{OBS_HOST}:{OBS_PORT}")
23
+ # try:
24
+ # client = obs.ReqClient(host=OBS_HOST, port=OBS_PORT, password=OBS_PASSWORD, timeout=30)
25
+ # print("Connected to OBS WebSocket.")
26
+ # except Exception as e:
27
+ # print(f"Failed to connect to OBS: {e}")
28
+ # return None
29
+ #
30
+ # try:
31
+ # response = client.get_source_screenshot(
32
+ # name=WINDOW_NAME,
33
+ # img_format='png',
34
+ # quality=75,
35
+ # width=WIDTH,
36
+ # height=HEIGHT,
37
+ # )
38
+ #
39
+ # if not response.image_data:
40
+ # print("Failed to get screenshot data from OBS.")
41
+ # return None
42
+
43
+ print("Getting Screenshot from OBS")
44
+ try:
45
+ update_current_game()
46
+ start_time = time.time()
47
+ image_data = get_screenshot_base64(compression=75, width=1280, height=720)
48
+ image_data = base64.b64decode(image_data)
49
+ img = Image.open(io.BytesIO(image_data)).convert("RGBA").resize((WIDTH, HEIGHT), Image.Resampling.LANCZOS)
50
+ # img.show()
51
+ print(f"Screenshot captured in {time.time() - start_time:.2f} seconds.")
52
+
53
+ return img
54
+
55
+ except Exception as e:
56
+ print(f"An unexpected error occurred during screenshot capture: {e}")
57
+ return None
58
+
59
+ async def find_box_for_sentence(sentence_to_check):
60
+ # connect_to_obs_sync(5)
61
+ print("in find_box")
62
+ # await asyncio.sleep(.5)
63
+ print("after_initial_sleep")
64
+ full_screenshot_image = await get_full_screenshot()
65
+ if full_screenshot_image:
66
+ print("Full screenshot captured successfully. Now performing local OCR...")
67
+ ocr_results = lens(full_screenshot_image, return_coords=True)
68
+ # ocr_results = oneocr(full_screenshot_image, sentence_to_check=sentence_to_check)
69
+ print("\n--- OCR Results ---")
70
+ print(ocr_results)
71
+
72
+ return ocr_results[2], 48
73
+ # from PIL import ImageDraw
74
+ # draw = ImageDraw.Draw(full_screenshot_image)
75
+ # draw.rectangle([x1, y1, x2, y2], outline="red", width=3)
76
+ # full_screenshot_image.save("full_screenshot_with_ocr.png")
77
+ # full_screenshot_image.show()
78
+ #
79
+ # print(ocr_results)
80
+ # if ocr_results:
81
+ # for i, result in enumerate(ocr_results):
82
+ # print(f"Result {i + 1}:\n{result}\n")
83
+ # else:
84
+ # print("No OCR results found.")
85
+ else:
86
+ print("Failed to get full screenshot for OCR.")
87
+
88
+ async def main():
89
+ await find_box_for_sentence("はじめから")
90
+
91
+ if __name__ == '__main__':
92
+ try:
93
+ asyncio.run(main())
94
+ except KeyboardInterrupt:
95
+ print("Script terminated by user.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.12.0.dev1
3
+ Version: 2.12.0.dev2
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
@@ -71,4 +71,5 @@ GameSentenceMiner/web/static/web-app-manifest-512x512.png
71
71
  GameSentenceMiner/web/templates/__init__.py
72
72
  GameSentenceMiner/web/templates/index.html
73
73
  GameSentenceMiner/web/templates/text_replacements.html
74
- GameSentenceMiner/web/templates/utility.html
74
+ GameSentenceMiner/web/templates/utility.html
75
+ GameSentenceMiner/wip/get_overlay_coords.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.12.0.dev1
3
+ Version: 2.12.0.dev2
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.12.0-dev1"
10
+ version = "2.12.0-dev2"
11
11
  description = "A tool for mining sentences from games. Update: Overlay?"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"
@@ -58,7 +58,7 @@ dependencies = [
58
58
  gamesentenceminer = "GameSentenceMiner.gsm:main"
59
59
 
60
60
  [tool.setuptools]
61
- packages = ["GameSentenceMiner", "GameSentenceMiner.util", 'GameSentenceMiner.util.downloader', "GameSentenceMiner.util.communication", "GameSentenceMiner.ai", "GameSentenceMiner.ocr", "GameSentenceMiner.owocr.owocr", "GameSentenceMiner.web", "GameSentenceMiner.web.static", "GameSentenceMiner.web.templates"]
61
+ packages = ["GameSentenceMiner", "GameSentenceMiner.util", 'GameSentenceMiner.util.downloader', "GameSentenceMiner.util.communication", "GameSentenceMiner.ai", "GameSentenceMiner.ocr", "GameSentenceMiner.owocr.owocr", "GameSentenceMiner.web", "GameSentenceMiner.web.static", "GameSentenceMiner.web.templates", "GameSentenceMiner.wip"]
62
62
 
63
63
  [tool.setuptools.package-data]
64
64
  "GameSentenceMiner.web" = ["static/*", "templates/*"]