GameSentenceMiner 2.14.4__py3-none-any.whl → 2.14.6__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.
@@ -1,4 +1,5 @@
1
1
  import asyncio
2
+ from ctypes.util import test
2
3
  import datetime
3
4
  import json
4
5
  import os
@@ -354,6 +355,35 @@ def translate_line():
354
355
  line_to_translate.set_TL(translation)
355
356
  return jsonify({'TL': translation}), 200
356
357
 
358
+ @app.route('/translate-multiple', methods=['POST'])
359
+ def translate_multiple():
360
+ data = request.get_json()
361
+ event_ids = data.get('ids', [])
362
+ if not event_ids:
363
+ return jsonify({'error': 'Missing ids'}), 400
364
+
365
+ lines = [get_line_by_id(event_id) for event_id in event_ids if get_line_by_id(event_id) is not None]
366
+
367
+ text = "\n".join(line.text for line in lines)
368
+
369
+ translate_multiple_lines_prompt = f"""
370
+ **Professional Game Localization Task**
371
+ Translate the following lines of game dialogue into natural-sounding, context-aware {get_config().general.get_native_language_name()}:
372
+
373
+ **Output Requirements**
374
+ - Maintain the original tone and style of the dialogue.
375
+ - Ensure that the translation is contextually appropriate for the game.
376
+ - Pay attention to character names and any specific terminology used in the game.
377
+ - Maintain Formatting and newline structure of the given lines. It should be very human readable as a dialogue.
378
+ - Do not include any notes, alternatives, explanations, or any other surrounding text. Absolutely nothing but the translated lines.
379
+
380
+ **Lines to Translate:**
381
+ """
382
+
383
+ translation = get_ai_prompt_result(get_all_lines(), text,
384
+ lines[0], get_current_game(), custom_prompt=translate_multiple_lines_prompt)
385
+
386
+ return translation, 200
357
387
 
358
388
  @app.route('/get_status', methods=['GET'])
359
389
  def get_status():
@@ -0,0 +1,169 @@
1
+ Metadata-Version: 2.4
2
+ Name: GameSentenceMiner
3
+ Version: 2.14.6
4
+ Summary: A tool for mining sentences from games. Update: Overlay?
5
+ Author-email: Beangate <bpwhelan95@gmail.com>
6
+ License: MIT License
7
+ Project-URL: Homepage, https://github.com/bpwhelan/GameSentenceMiner
8
+ Project-URL: Repository, https://github.com/bpwhelan/GameSentenceMiner
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: requests~=2.32.3
16
+ Requires-Dist: watchdog~=5.0.2
17
+ Requires-Dist: DateTime~=5.5
18
+ Requires-Dist: pyperclip~=1.9.0
19
+ Requires-Dist: soundfile~=0.12.1
20
+ Requires-Dist: toml~=0.10.2
21
+ Requires-Dist: psutil~=6.0.0
22
+ Requires-Dist: rapidfuzz~=3.9.7
23
+ Requires-Dist: plyer~=2.1.0
24
+ Requires-Dist: keyboard~=0.13.5
25
+ Requires-Dist: websockets~=15.0.1
26
+ Requires-Dist: openai-whisper==20240930; sys_platform == "win32"
27
+ Requires-Dist: openai-whisper; sys_platform != "win32"
28
+ Requires-Dist: stable-ts-whisperless
29
+ Requires-Dist: silero-vad~=5.1.2
30
+ Requires-Dist: ttkbootstrap~=1.10.1
31
+ Requires-Dist: dataclasses_json~=0.6.7
32
+ Requires-Dist: win10toast; sys_platform == "win32"
33
+ Requires-Dist: numpy==2.2.6
34
+ Requires-Dist: pystray
35
+ Requires-Dist: pywin32; sys_platform == "win32"
36
+ Requires-Dist: pygetwindow; sys_platform == "win32"
37
+ Requires-Dist: flask
38
+ Requires-Dist: groq
39
+ Requires-Dist: matplotlib
40
+ Requires-Dist: sounddevice
41
+ Requires-Dist: google-genai
42
+ Requires-Dist: owocr
43
+ Requires-Dist: oneocr
44
+ Requires-Dist: openai
45
+ Requires-Dist: scikit-image
46
+ Requires-Dist: opencv-python
47
+ Requires-Dist: betterproto==2.0.0b7
48
+ Requires-Dist: obsws-python~=1.7.2
49
+ Requires-Dist: numpy==2.2.6
50
+ Requires-Dist: regex
51
+ Dynamic: license-file
52
+
53
+ # GSM - An Immersion toolkit for Games.
54
+
55
+ ### English | [日本語](../docs/ja/README.md) | [简体中文](../docs/zh/README.md).
56
+
57
+ An application designed to assist with language learning through games.
58
+
59
+ Short Demo (Watch this first): https://www.youtube.com/watch?v=FeFBL7py6HY
60
+
61
+ Installation: https://youtu.be/h5ksXallc-o
62
+
63
+ Discord: https://discord.gg/yP8Qse6bb8
64
+
65
+ ## Features
66
+
67
+ ### Anki Card Enhancement
68
+
69
+ GSM significantly enhances your Anki cards with rich contextual information:
70
+
71
+ * **Automated Audio Capture**: Automatically records the voice line associated with the text.
72
+
73
+ * **Automatic Trim**: Some simple math around the time that the text event came in, in combination with a "Voice Activation Detection" (VAD) library gives us neatly cut audio.
74
+ * **Manual Trim**: If Automatic voiceline trim is not perfect, it's possible to [open the audio in an external program](https://youtu.be/LKFQFy2Qm64) for trimming.
75
+
76
+ * **Screenshot**: Captures a screenshot of the game at the moment the voice line is spoken.
77
+
78
+ * **Multi-Line**: It's possible to capture multiple lines at once with sentence audio with GSM's very own Texthooker.
79
+
80
+ * **AI Translation**: Integrates AI to provide quick translations of the captured sentence. Custom Prompts also supported. (Optional, Bring your own Key)
81
+
82
+
83
+ #### Game Example (Has Audio)
84
+
85
+ https://github.com/user-attachments/assets/df6bc38e-d74d-423e-b270-8a82eec2394c
86
+
87
+ ---
88
+
89
+ #### VN Example (Has Audio)
90
+
91
+ https://github.com/user-attachments/assets/ee670fda-1a8b-4dec-b9e6-072264155c6e
92
+
93
+ ### OCR
94
+
95
+ GSM runs a fork of [OwOCR](https://github.com/AuroraWright/owocr/) to provide accurate text capture from games that do not have a hook. Here are some improvements GSM makes on stock OwOCR:
96
+
97
+ * **Easier Setup**: With GSM's managed Python install, setup is only a matter of clicking a few buttons.
98
+
99
+ * **Exclusion Zones**: Instead of choosing an area to OCR, you can choose an area to exclude from OCR. Useful if you have a static interface in your game and text appears randomly throughout.
100
+
101
+ * **Two-Pass OCR**: To cut down on API calls and keep output clean, GSM features a "Two-Pass" OCR System. A Local OCR will be constantly running, and when the text on screen stabilizes, it will run a second, more accurate scan that gets sent to clipboard/WebSocket.
102
+
103
+ * **Consistent Audio Timing**: With the two-pass system, we can still get accurate audio recorded and into Anki without the use of crazy offsets or hacks.
104
+
105
+ * **More Language Support**: Stock OwOCR is hard-coded to Japanese, while in GSM you can use a variety of languages.
106
+
107
+
108
+ https://github.com/user-attachments/assets/07240472-831a-40e6-be22-c64b880b0d66
109
+
110
+
111
+
112
+ ### Game Launcher Capabilities (WIP)
113
+
114
+ This is probably the feature I care least about, but if you are lazy like me, you may find this helpful.
115
+
116
+ * **Launch**: GSM can launch your games directly, simplifying the setup process.
117
+
118
+ * **Hook**: Streamlines the process of hooking your games (Agent).
119
+
120
+ This feature simplifies the process of launching games and (potentially) hooking them, making the entire workflow more efficient.
121
+
122
+ <img width="2560" height="1392" alt="GameSentenceMiner_1zuov0R9xK" src="https://github.com/user-attachments/assets/205769bb-3dd2-493b-9383-2d6e2ca05c2d" />
123
+
124
+ ## Basic Requirements
125
+
126
+ * **Anki card creation tool**: [Yomitan](https://github.com/yomidevs/yomitan), [JL](https://github.com/rampaa/JL), etc.
127
+
128
+ * **A method of getting text from the game**: [Agent](https://github.com/0xDC00/agent), [Textractor](https://github.com/Artikash/Textractor), [LunaTranslator](https://github.com/HIllya51/LunaTranslator), GSM's OCR, etc.
129
+
130
+ * **A game :)**
131
+
132
+ ## Documentation
133
+
134
+ For help with installation, setup, and other information, please visit the project's [Wiki](https://github.com/bpwhelan/GameSentenceMiner/wiki).
135
+
136
+ ## FAQ
137
+
138
+ ### How Does It Work?
139
+
140
+ This is a common question, and understanding this process will help clarify any issues you might encounter while using GSM.
141
+
142
+ 1. The beginning of the voice line is marked by a text event. This usually comes from Textractor, Agent, or another texthooker. GSM can listen for a clipboard copy and/or a WebSocket server (configurable in GSM).
143
+
144
+ 2. The end of the voice line is detected using a Voice Activity Detection (VAD) library running locally. ([Example](https://github.com/snakers4/silero-vad))
145
+
146
+ In essence, GSM relies on accurately timed text events to capture the corresponding audio.
147
+
148
+ GSM provides settings to accommodate less-than-ideal hooks. However, if you experience significant audio inconsistencies, they likely stem from a poorly timed hook, loud background music, or other external factors, rather than GSM itself. The core audio trimming logic has been stable and effective for many users across various games.
149
+
150
+ ## Contact
151
+
152
+ If you encounter issues, please ask for help in my [Discord](https://discord.gg/yP8Qse6bb8) or create an issue here.
153
+
154
+ ## Acknowledgements
155
+
156
+ * [OwOCR](https://github.com/AuroraWright/owocr) for their outstanding OCR implementation, which I've integrated into GSM.
157
+
158
+ * [chaiNNer](https://github.com/chaiNNer-org/chaiNNer) for the idea of installing Python within an Electron app.
159
+
160
+ * [OBS](https://obsproject.com/) and [FFMPEG](https://ffmpeg.org/), without which GSM would not be possible.
161
+
162
+ * [Renji's Texthooker](https://github.com/Renji-XD/texthooker-ui)
163
+
164
+ * https://github.com/Saplling/transparent-texthooker-overlay
165
+
166
+ ## Donations
167
+
168
+ If you've found this or any of my other projects helpful, please consider supporting my work through [GitHub Sponsors](https://github.com/sponsors/bpwhelan), or [Ko-fi](https://ko-fi.com/beangate).
169
+
@@ -1,12 +1,12 @@
1
1
  GameSentenceMiner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- GameSentenceMiner/anki.py,sha256=mNUU0AYwsDezVug-ZXDpR71R9GGUBsmc9Gu8ftfnpf4,23078
3
- GameSentenceMiner/config_gui.py,sha256=dFN-2mD9JTcRhjFIjaj4bFcEmMAdjudYk_A5x9rp3_U,134126
2
+ GameSentenceMiner/anki.py,sha256=xTXCACDM_u9natCFnbqdxEX24F9bTsdoI7PoskWbdkk,23012
3
+ GameSentenceMiner/config_gui.py,sha256=dTYBe3ZI9tsOiOtT2WEMnodj3q5-U4Kj5l1l1qutlsw,137549
4
4
  GameSentenceMiner/gametext.py,sha256=fgBgLchezpauWELE9Y5G3kVCLfAneD0X4lJFoI3FYbs,10351
5
5
  GameSentenceMiner/gsm.py,sha256=GdqegZnKrTMVRvp43bK7oNlWj5OxLx2PNdVWyHL9Gc4,28282
6
- GameSentenceMiner/obs.py,sha256=LfczcmAF1G2-L7HxFAJJ-0rlCMy29WN2YUuDbeATP1g,18845
6
+ GameSentenceMiner/obs.py,sha256=f1hSG7tHCJPBjY_eq6fbQnEiLtboik77Sd2YzDFD2cg,20662
7
7
  GameSentenceMiner/vad.py,sha256=zFReBMvNEEaQ_YEozCTCaMdV-o40FwtlxYRb17cYZio,19125
8
8
  GameSentenceMiner/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- GameSentenceMiner/ai/ai_prompting.py,sha256=_pnL8I3L5riRJEsDxI8SYPZHlLybCug-E6Kr5vRrDfM,23496
9
+ GameSentenceMiner/ai/ai_prompting.py,sha256=D1KyHER_sj4jYvOKGRbp8FkKZSKWzAaXHbpmZLLFctg,23998
10
10
  GameSentenceMiner/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  GameSentenceMiner/assets/icon.png,sha256=9GRL8uXUAgkUSlvbm9Pv9o2poFVRGdW6s2ub_DeUD9M,937624
12
12
  GameSentenceMiner/assets/icon128.png,sha256=l90j7biwdz5ahwOd5wZ-406ryEV9Pan93dquJQ3e1CI,18395
@@ -15,32 +15,32 @@ GameSentenceMiner/assets/icon32.png,sha256=Kww0hU_qke9_22wBuO_Nq0Dv2SfnOLwMhCyGg
15
15
  GameSentenceMiner/assets/icon512.png,sha256=HxUj2GHjyQsk8NV433256UxU9phPhtjCY-YB_7W4sqs,192487
16
16
  GameSentenceMiner/assets/icon64.png,sha256=N8xgdZXvhqVQP9QUK3wX5iqxX9LxHljD7c-Bmgim6tM,9301
17
17
  GameSentenceMiner/assets/pickaxe.png,sha256=VfIGyXyIZdzEnVcc4PmG3wszPMO1W4KCT7Q_nFK6eSE,1403829
18
- GameSentenceMiner/locales/en_us.json,sha256=MYcOLgjOIpzWwC0WCPvsbIvGQ9qRIhLCZ1DlHcGQfko,25942
18
+ GameSentenceMiner/locales/en_us.json,sha256=B3CF3VvJ1PVLP_2Xv34ZFNUVAF8SQ8qDlOD20EOOJmE,25948
19
19
  GameSentenceMiner/locales/ja_jp.json,sha256=2I-aSs6KIbjJ7uNRA-dx_5oRP9JLTWWUIrMMZOkenlE,27520
20
20
  GameSentenceMiner/locales/zh_cn.json,sha256=tx9Szm6KEMn_YaYDWS1ph4pGALYR3iguVru2Dfj7S3o,24047
21
21
  GameSentenceMiner/ocr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- GameSentenceMiner/ocr/gsm_ocr_config.py,sha256=1cuFYT2LN_A2WjCqm2FsiHqM93EG2zIbB4ZWxps829Y,5791
22
+ GameSentenceMiner/ocr/gsm_ocr_config.py,sha256=QyBarjb6Wjt-oyor1sIT9hG-KrGdi6wODLyCrHXun6E,6008
23
23
  GameSentenceMiner/ocr/ocrconfig.py,sha256=_tY8mjnzHMJrLS8E5pHqYXZjMuLoGKYgJwdhYgN-ny4,6466
24
24
  GameSentenceMiner/ocr/owocr_area_selector.py,sha256=Rm1_nuZotJhfOfoJ_3mesh9udtOBjYqKhnAvSief6fo,29181
25
- GameSentenceMiner/ocr/owocr_helper.py,sha256=SkiAcyVDTQYo9Jvr0g1iy7L_xbqEL4oiovQJfz0hWnI,27874
25
+ GameSentenceMiner/ocr/owocr_helper.py,sha256=Ls_M-m3_4e561g72H0k6bQQi2H-9_NkmUQb6c2C-yrE,28261
26
26
  GameSentenceMiner/ocr/ss_picker.py,sha256=0IhxUdaKruFpZyBL-8SpxWg7bPrlGpy3lhTcMMZ5rwo,5224
27
27
  GameSentenceMiner/owocr/owocr/__init__.py,sha256=87hfN5u_PbL_onLfMACbc0F5j4KyIK9lKnRCj6oZgR0,49
28
28
  GameSentenceMiner/owocr/owocr/__main__.py,sha256=XQaqZY99EKoCpU-gWQjNbTs7Kg17HvBVE7JY8LqIE0o,157
29
29
  GameSentenceMiner/owocr/owocr/config.py,sha256=qM7kISHdUhuygGXOxmgU6Ef2nwBShrZtdqu4InDCViE,8103
30
30
  GameSentenceMiner/owocr/owocr/lens_betterproto.py,sha256=oNoISsPilVVRBBPVDtb4-roJtAhp8ZAuFTci3TGXtMc,39141
31
- GameSentenceMiner/owocr/owocr/ocr.py,sha256=besWaJanvUk_fHOn-y8jN9dw8IZEPvfL9oiTX9sDzek,69134
32
- GameSentenceMiner/owocr/owocr/run.py,sha256=TSSZnHO_sPoTtUCsDol-v4TWPPzz_Nbf24TeBUea5I4,68498
31
+ GameSentenceMiner/owocr/owocr/ocr.py,sha256=oLySYDJz-OUCJTHDl6xe1BQ2NMDjaKgHc_SIHJ1Eca4,70607
32
+ GameSentenceMiner/owocr/owocr/run.py,sha256=-aRSIcwc-qIn2s-JVaAMGvzJHjvqw4LsLQKLtswEfcE,75570
33
33
  GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py,sha256=Na6XStbQBtpQUSdbN3QhEswtKuU1JjReFk_K8t5ezQE,3395
34
34
  GameSentenceMiner/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  GameSentenceMiner/tools/audio_offset_selector.py,sha256=8Stk3BP-XVIuzRv9nl9Eqd2D-1yD3JrgU-CamBywJmY,8542
36
36
  GameSentenceMiner/tools/ss_selector.py,sha256=cbjMxiKOCuOfbRvLR_PCRlykBrGtm1LXd6u5czPqkmc,4793
37
37
  GameSentenceMiner/tools/window_transparency.py,sha256=GtbxbmZg0-UYPXhfHff-7IKZyY2DKe4B9GdyovfmpeM,8166
38
38
  GameSentenceMiner/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- GameSentenceMiner/util/configuration.py,sha256=SODstU9nrRRAmbPrubYHJuGzzuKXURNUEQQPrfa9_1o,39739
39
+ GameSentenceMiner/util/configuration.py,sha256=p595-YJUbmg5EwjYQlNYpjQ0m7iMIyxPSjMPEpvPfFg,40009
40
40
  GameSentenceMiner/util/db.py,sha256=2bO0rD4i8A1hhsRBER-wgZy9IK17ibRbI8DHxdKvYsI,16598
41
- GameSentenceMiner/util/electron_config.py,sha256=9CA27nzEFlxezzDqOPHxeD4BdJ093AnSJ9DJTcwWPsM,8762
41
+ GameSentenceMiner/util/electron_config.py,sha256=KfeJToeFFVw0IR5MKa-gBzpzaGrU-lyJbR9z-sDEHYU,8767
42
42
  GameSentenceMiner/util/ffmpeg.py,sha256=iqsdp3TbBv6KMACJxkUF3e5VWak3jHPZdIEMrUdKFtE,23073
43
- GameSentenceMiner/util/get_overlay_coords.py,sha256=h4ofCy16bWqs7omgPqqFi7EeYMkDO8gvePULoWTGiZE,13237
43
+ GameSentenceMiner/util/get_overlay_coords.py,sha256=VtrT25DOjqMgo-eRFRMovuq6LUnoY8GrpbkfDsvgSjM,13855
44
44
  GameSentenceMiner/util/gsm_utils.py,sha256=Piwv88Q9av2LBeN7M6QDi0Mp0_R2lNbkcI6ekK5hd2o,11851
45
45
  GameSentenceMiner/util/model.py,sha256=R-_RYTYLSDNgBoVTPuPBcIHeOznIqi_vBzQ7VQ20WYk,6727
46
46
  GameSentenceMiner/util/notification.py,sha256=-qk3kTKEERzmMxx5XMh084HCyFmbfqz0XjY1hTKhCeQ,4202
@@ -54,7 +54,7 @@ GameSentenceMiner/util/downloader/download_tools.py,sha256=zR-aEHiFVkyo-9oPoSx6n
54
54
  GameSentenceMiner/util/downloader/oneocr_dl.py,sha256=l3s9Z-x1b57GX048o5h-MVv0UTZo4H-Q-zb-JREkMLI,10439
55
55
  GameSentenceMiner/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  GameSentenceMiner/web/service.py,sha256=YZchmScTn7AX_GkwV1ULEK6qjdOnJcpc3qfMwDf7cUE,5363
57
- GameSentenceMiner/web/texthooking_page.py,sha256=EBdP6v_CCEr-7MCRAkBSBf5Y59E4JBkneifQ1Pgq76I,17923
57
+ GameSentenceMiner/web/texthooking_page.py,sha256=JhuApKUeQGwqGUO_92Z6yMY0_-kqHQceT4FGzhbGlGE,19269
58
58
  GameSentenceMiner/web/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
59
  GameSentenceMiner/web/static/apple-touch-icon.png,sha256=OcMI8af_68DA_tweOsQ5LytTyMwm7-hPW07IfrOVgEs,46132
60
60
  GameSentenceMiner/web/static/favicon-96x96.png,sha256=lOePzjiKl1JY2J1kT_PMdyEnrlJmi5GWbmXJunM12B4,16502
@@ -65,13 +65,13 @@ GameSentenceMiner/web/static/style.css,sha256=bPZK0NVMuyRl5NNDuT7ZTzVLKlvSsdmeVH
65
65
  GameSentenceMiner/web/static/web-app-manifest-192x192.png,sha256=EfSNnBmsSaLfESbkGfYwbKzcjKOdzuWo18ABADfN974,51117
66
66
  GameSentenceMiner/web/static/web-app-manifest-512x512.png,sha256=wyqgCWCrLEUxSRXmaA3iJEESd-vM-ZmlTtZFBY4V8Pk,230819
67
67
  GameSentenceMiner/web/templates/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- GameSentenceMiner/web/templates/index.html,sha256=Gv3CJvNnhAzIVV_QxhNq4OD-pXDt1vKCu9k6WdHSXuA,215343
68
+ GameSentenceMiner/web/templates/index.html,sha256=VrhrkQKcOAPuoWRcilFLDXjvNf6WTOY8s_Cjj3vYdWY,216505
69
69
  GameSentenceMiner/web/templates/text_replacements.html,sha256=tV5c8mCaWSt_vKuUpbdbLAzXZ3ATZeDvQ9PnnAfqY0M,8598
70
70
  GameSentenceMiner/web/templates/utility.html,sha256=3flZinKNqUJ7pvrZk6xu__v67z44rXnaK7UTZ303R-8,16946
71
71
  GameSentenceMiner/wip/__init___.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- gamesentenceminer-2.14.4.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
73
- gamesentenceminer-2.14.4.dist-info/METADATA,sha256=Vid-_Q_V7pwU3alwIjmzsi4uYuTY1ydqx5V_w4XjOt8,1564
74
- gamesentenceminer-2.14.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
- gamesentenceminer-2.14.4.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
76
- gamesentenceminer-2.14.4.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
77
- gamesentenceminer-2.14.4.dist-info/RECORD,,
72
+ gamesentenceminer-2.14.6.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
73
+ gamesentenceminer-2.14.6.dist-info/METADATA,sha256=CwW-bxgvQQbSJIEDlddSbN6HTZPrhdeh4HeSGLvmNL4,7330
74
+ gamesentenceminer-2.14.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
75
+ gamesentenceminer-2.14.6.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
76
+ gamesentenceminer-2.14.6.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
77
+ gamesentenceminer-2.14.6.dist-info/RECORD,,
@@ -1,46 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: GameSentenceMiner
3
- Version: 2.14.4
4
- Summary: A tool for mining sentences from games. Update: Overlay?
5
- Author-email: Beangate <bpwhelan95@gmail.com>
6
- License: MIT License
7
- Project-URL: Homepage, https://github.com/bpwhelan/GameSentenceMiner
8
- Project-URL: Repository, https://github.com/bpwhelan/GameSentenceMiner
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.10
13
- Description-Content-Type: text/markdown
14
- License-File: LICENSE
15
- Requires-Dist: requests~=2.32.3
16
- Requires-Dist: watchdog~=5.0.2
17
- Requires-Dist: DateTime~=5.5
18
- Requires-Dist: pyperclip~=1.9.0
19
- Requires-Dist: soundfile~=0.12.1
20
- Requires-Dist: toml~=0.10.2
21
- Requires-Dist: psutil~=6.0.0
22
- Requires-Dist: rapidfuzz~=3.9.7
23
- Requires-Dist: plyer~=2.1.0
24
- Requires-Dist: keyboard~=0.13.5
25
- Requires-Dist: websockets~=15.0.1
26
- Requires-Dist: openai-whisper
27
- Requires-Dist: stable-ts-whisperless
28
- Requires-Dist: silero-vad~=5.1.2
29
- Requires-Dist: ttkbootstrap~=1.10.1
30
- Requires-Dist: dataclasses_json~=0.6.7
31
- Requires-Dist: win10toast; sys_platform == "win32"
32
- Requires-Dist: numpy==2.2.6
33
- Requires-Dist: pystray
34
- Requires-Dist: pywin32; sys_platform == "win32"
35
- Requires-Dist: pygetwindow; sys_platform == "win32"
36
- Requires-Dist: flask
37
- Requires-Dist: groq
38
- Requires-Dist: obsws-python~=1.7.2
39
- Requires-Dist: matplotlib
40
- Requires-Dist: sounddevice
41
- Requires-Dist: google-genai
42
- Requires-Dist: owocr
43
- Requires-Dist: betterproto==2.0.0b7
44
- Requires-Dist: oneocr
45
- Requires-Dist: openai
46
- Dynamic: license-file