GameSentenceMiner 2.8.1__tar.gz → 2.8.3__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 (63) hide show
  1. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/util.py +2 -2
  2. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/utility.html +5 -2
  3. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/texthooking_page.py +0 -5
  4. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
  5. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/PKG-INFO +1 -1
  6. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/pyproject.toml +1 -1
  7. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/__init__.py +0 -0
  8. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ai/__init__.py +0 -0
  9. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ai/gemini.py +0 -0
  10. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/anki.py +0 -0
  11. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/communication/__init__.py +0 -0
  12. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/communication/send.py +0 -0
  13. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/communication/websocket.py +0 -0
  14. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/config_gui.py +0 -0
  15. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/configuration.py +0 -0
  16. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/downloader/Untitled_json.py +0 -0
  17. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/downloader/__init__.py +0 -0
  18. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/downloader/download_tools.py +0 -0
  19. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/downloader/oneocr_dl.py +0 -0
  20. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/electron_config.py +0 -0
  21. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ffmpeg.py +0 -0
  22. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/gametext.py +0 -0
  23. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/gsm.py +0 -0
  24. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/model.py +0 -0
  25. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/notification.py +0 -0
  26. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/obs.py +0 -0
  27. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ocr/__init__.py +0 -0
  28. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
  29. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
  30. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
  31. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
  32. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
  33. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
  34. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/config.py +0 -0
  35. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
  36. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
  37. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/run.py +0 -0
  38. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
  39. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/package.py +0 -0
  40. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/text_log.py +0 -0
  41. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/vad/__init__.py +0 -0
  42. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/vad/silero_trim.py +0 -0
  43. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/vad/vosk_helper.py +0 -0
  44. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/vad/whisper_helper.py +0 -0
  45. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/__init__.py +0 -0
  46. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/__init__.py +0 -0
  47. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
  48. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
  49. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/favicon.ico +0 -0
  50. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/favicon.svg +0 -0
  51. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/site.webmanifest +0 -0
  52. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/style.css +0 -0
  53. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/text_replacements.html +0 -0
  54. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
  55. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
  56. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
  57. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
  58. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
  59. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner.egg-info/requires.txt +0 -0
  60. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/GameSentenceMiner.egg-info/top_level.txt +0 -0
  61. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/LICENSE +0 -0
  62. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/README.md +0 -0
  63. {gamesentenceminer-2.8.1 → gamesentenceminer-2.8.3}/setup.cfg +0 -0
@@ -255,12 +255,12 @@ os.makedirs(os.path.dirname(TEXT_REPLACEMENTS_FILE), exist_ok=True)
255
255
 
256
256
  import urllib.request
257
257
 
258
- if not os.path.exists(TEXT_REPLACEMENTS_FILE):
258
+ if not os.path.exists(OCR_REPLACEMENTS_FILE):
259
259
  url = "https://raw.githubusercontent.com/bpwhelan/GameSentenceMiner/refs/heads/main/electron-src/assets/ocr_replacements.json"
260
260
  try:
261
261
  with urllib.request.urlopen(url) as response:
262
262
  data = response.read().decode('utf-8')
263
- with open(TEXT_REPLACEMENTS_FILE, 'w', encoding='utf-8') as f:
263
+ with open(OCR_REPLACEMENTS_FILE, 'w', encoding='utf-8') as f:
264
264
  f.write(data)
265
265
  except Exception as e:
266
266
  logger.error(f"Failed to fetch JSON from {url}: {e}")
@@ -131,6 +131,7 @@
131
131
  let newCheckboxState = false;
132
132
  let hoveredCheckboxes = new Set();
133
133
  let checkboxes = []; // Will hold all checkbox elements
134
+ let checkboxes_being_updated = new Set();
134
135
 
135
136
  // Shift click selection variable
136
137
  let lastChecked = null;
@@ -152,8 +153,8 @@
152
153
  addNewEvent(ev)
153
154
  }
154
155
  const checkbox = document.querySelector(`[data-event-id="${ev.id}"]`);
155
- if (checkbox) {
156
- checkbox.checked = ev.checked; // Update the checkbox state
156
+ if (checkbox && !checkboxes_being_updated.has(ev.id)) {
157
+ checkbox.checked = ev.checked;
157
158
  }
158
159
  });
159
160
  checkboxes = Array.from(document.querySelectorAll('#session-events input[type="checkbox"]')); // Update checkboxes array after new events
@@ -215,11 +216,13 @@
215
216
 
216
217
  async function toggleCheckbox(id, checked) {
217
218
  try {
219
+ checkboxes_being_updated.add(id);
218
220
  const res = await fetch('/update', {
219
221
  method: 'POST',
220
222
  headers: { 'Content-Type': 'application/json' },
221
223
  body: JSON.stringify({ id, checked })
222
224
  });
225
+ checkboxes_being_updated.delete(id);
223
226
  if (!res.ok) {
224
227
  throw new Error(`HTTP error! Status: ${res.status}`);
225
228
  }
@@ -148,14 +148,9 @@ def update_event():
148
148
  event_id = data.get('id')
149
149
  checked = data.get('checked')
150
150
 
151
- logger.info(event_id)
152
- logger.info(checked)
153
-
154
151
  if event_id is None or checked is None:
155
152
  return jsonify({'error': 'Missing id or checked status'}), 400
156
153
 
157
- logger.info(event_manager.get(event_id))
158
-
159
154
  event_manager.get(event_id).checked = checked
160
155
 
161
156
  return jsonify({'error': 'Event not found'}), 404
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.8.1
3
+ Version: 2.8.3
4
4
  Summary: A tool for mining sentences from games. Update: Multi-Line Mining! Fixed!
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.8.1
3
+ Version: 2.8.3
4
4
  Summary: A tool for mining sentences from games. Update: Multi-Line Mining! Fixed!
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.8.1"
10
+ version = "2.8.3"
11
11
  description = "A tool for mining sentences from games. Update: Multi-Line Mining! Fixed!"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.10"