GameSentenceMiner 2.18.4__tar.gz → 2.18.5__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.
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/obs.py +52 -26
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/PKG-INFO +1 -1
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/PKG-INFO +1 -1
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/pyproject.toml +1 -1
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ai/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ai/ai_prompting.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/anki.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/icon.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/icon128.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/icon256.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/icon32.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/icon512.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/icon64.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/assets/pickaxe.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/gametext.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/gsm.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/locales/en_us.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/locales/ja_jp.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/locales/zh_cn.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/gsm_ocr_config.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/ocrconfig.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/owocr_area_selector.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/owocr_helper.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/ss_picker.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/__main__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/config.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/lens_betterproto.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/ocr.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/run.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/audio_offset_selector.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/furigana_filter_preview.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/ss_selector.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/window_transparency.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ui/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ui/anki_confirmation.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ui/config_gui.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ui/screenshot_selector.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/communication/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/communication/send.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/communication/websocket.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/configuration.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/db.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/downloader/Untitled_json.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/downloader/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/downloader/download_tools.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/downloader/oneocr_dl.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/electron_config.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/ffmpeg.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/get_overlay_coords.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/gsm_utils.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/model.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/notification.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/text_log.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/win10toast/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/win10toast/__main__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/vad.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/database_api.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/events.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/gsm_websocket.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/service.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/__init__.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/apple-touch-icon.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/dashboard-shared.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/kanji-grid.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/overview.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/popups-shared.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/search.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/shared.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/stats.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/favicon-96x96.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/favicon.ico +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/favicon.svg +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/anki_stats.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/database.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/goals.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/kanji-grid.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/overview.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/search.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/shared.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/stats.js +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/site.webmanifest +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/style.css +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/web-app-manifest-192x192.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/web-app-manifest-512x512.png +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/stats.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/anki_stats.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/basic_kanji_book_bkb_v1_v2.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/duolingo_kanji.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/grade.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/hk_primary_learning.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/hkscs2016.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/hsk_levels.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/humanum_frequency_list.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/jis_levels.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/jlpt_level.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/jpdb_kanji_frequency_list.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/jpdbv2_kanji_frequency_list.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/jun_das_modern_chinese_character_frequency_list.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/kanji_in_context_revised_edition.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/kanji_kentei_level.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/mainland_china_elementary_textbook_characters.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/moe_way_quiz.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/official_kanji.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/remembering_the_kanji.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/standard_form_of_national_characters.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/table_of_general_standard_chinese_characters.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/the_kodansha_kanji_learners_course_klc.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/thousand_character_classic.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/wanikani_levels.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/kanji_grid/words_hk_frequency_list.json +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/navigation.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/components/theme-styles.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/database.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/goals.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/index.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/overview.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/search.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/stats.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/utility.html +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/texthooking_page.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/wip/__init___.py +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/SOURCES.txt +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/dependency_links.txt +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/entry_points.txt +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/requires.txt +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/top_level.txt +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/LICENSE +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/README.md +0 -0
- {gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/setup.cfg +0 -0
|
@@ -132,11 +132,14 @@ class OBSConnectionManager(threading.Thread):
|
|
|
132
132
|
|
|
133
133
|
def check_replay_buffer_enabled(self):
|
|
134
134
|
if not self.should_check_output:
|
|
135
|
-
return
|
|
136
|
-
|
|
137
|
-
if not
|
|
138
|
-
|
|
139
|
-
|
|
135
|
+
return 300, ""
|
|
136
|
+
buffer_seconds = get_replay_buffer_max_time_seconds()
|
|
137
|
+
if not buffer_seconds:
|
|
138
|
+
replay_output = get_replay_buffer_output()
|
|
139
|
+
if not replay_output:
|
|
140
|
+
return 0, "Replay Buffer output not found in OBS. Please enable Replay Buffer In OBS Settings -> Output -> Replay Buffer. I recommend 300 seconds (5 minutes) or higher."
|
|
141
|
+
return 300, ""
|
|
142
|
+
return buffer_seconds, ""
|
|
140
143
|
|
|
141
144
|
def _manage_replay_buffer_and_utils(self):
|
|
142
145
|
errors = []
|
|
@@ -150,11 +153,13 @@ class OBSConnectionManager(threading.Thread):
|
|
|
150
153
|
errors.append("Automatic Replay Buffer management is disabled in GSM settings.")
|
|
151
154
|
return errors
|
|
152
155
|
|
|
153
|
-
|
|
156
|
+
buffer_seconds, error_message = self.check_replay_buffer_enabled()
|
|
154
157
|
|
|
155
|
-
if not
|
|
158
|
+
if not buffer_seconds:
|
|
156
159
|
errors.append(error_message)
|
|
157
160
|
return errors
|
|
161
|
+
|
|
162
|
+
self.NO_OUTPUT_SHUTDOWN_SECONDS = max(300, buffer_seconds * 1.10) # At least 5 minutes or 10% more than buffer
|
|
158
163
|
|
|
159
164
|
current_status = get_replay_buffer_status()
|
|
160
165
|
|
|
@@ -167,10 +172,10 @@ class OBSConnectionManager(threading.Thread):
|
|
|
167
172
|
self.no_output_timestamp = None
|
|
168
173
|
return errors
|
|
169
174
|
|
|
170
|
-
img = get_screenshot_PIL(compression=
|
|
171
|
-
|
|
175
|
+
img = get_screenshot_PIL(compression=75, img_format='jpg', width=1280, height=720)
|
|
176
|
+
is_empty = self.is_image_empty(img) if img else True
|
|
172
177
|
|
|
173
|
-
if not
|
|
178
|
+
if not is_empty:
|
|
174
179
|
self.no_output_timestamp = None
|
|
175
180
|
if not current_status:
|
|
176
181
|
start_replay_buffer()
|
|
@@ -184,20 +189,18 @@ class OBSConnectionManager(threading.Thread):
|
|
|
184
189
|
self.last_replay_buffer_status = False
|
|
185
190
|
self.no_output_timestamp = None
|
|
186
191
|
|
|
187
|
-
def
|
|
188
|
-
if self.previous_image is None:
|
|
189
|
-
self.previous_image = np.array(img)
|
|
190
|
-
return True
|
|
192
|
+
def is_image_empty(self, img):
|
|
191
193
|
try:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
extrema = img.getextrema()
|
|
195
|
+
if isinstance(extrema[0], tuple):
|
|
196
|
+
is_empty = all(e[0] == e[1] for e in extrema)
|
|
197
|
+
else:
|
|
198
|
+
is_empty = extrema[0] == extrema[1]
|
|
199
|
+
return is_empty
|
|
195
200
|
except Exception:
|
|
196
|
-
logger.warning("Failed to
|
|
201
|
+
logger.warning("Failed to check image extrema for emptiness.")
|
|
197
202
|
return False
|
|
198
203
|
|
|
199
|
-
return (img1_np.shape == img2_np.shape) and np.array_equal(img1_np, img2_np)
|
|
200
|
-
|
|
201
204
|
def run(self):
|
|
202
205
|
time.sleep(5) # Initial delay to allow OBS to start
|
|
203
206
|
while self.running:
|
|
@@ -566,7 +569,7 @@ def get_replay_buffer_max_time_seconds():
|
|
|
566
569
|
logger.warning(f"get_output_settings for replay_buffer failed: {response.status}")
|
|
567
570
|
return 0
|
|
568
571
|
except Exception as e:
|
|
569
|
-
logger.error(f"Exception while fetching replay buffer settings: {e}")
|
|
572
|
+
# logger.error(f"Exception while fetching replay buffer settings: {e}")
|
|
570
573
|
return 0
|
|
571
574
|
|
|
572
575
|
def enable_replay_buffer():
|
|
@@ -805,7 +808,24 @@ def set_fit_to_screen_for_scene_items(scene_name: str):
|
|
|
805
808
|
except obs.error.OBSSDKError as e:
|
|
806
809
|
logger.error(f"An OBS error occurred: {e}")
|
|
807
810
|
except Exception as e:
|
|
808
|
-
logger.error(f"An unexpected error occurred: {e}")
|
|
811
|
+
logger.error(f"An unexpected error occurred: {e}")
|
|
812
|
+
|
|
813
|
+
def get_current_source_input_settings():
|
|
814
|
+
with connection_pool.get_client() as client:
|
|
815
|
+
client: obs.ReqClient
|
|
816
|
+
current_scene = get_current_scene()
|
|
817
|
+
if not current_scene:
|
|
818
|
+
return None
|
|
819
|
+
scene_items_response = client.get_scene_item_list(name=current_scene)
|
|
820
|
+
items = scene_items_response.scene_items if scene_items_response and scene_items_response.scene_items else []
|
|
821
|
+
if not items:
|
|
822
|
+
return None
|
|
823
|
+
first_item = items[0]
|
|
824
|
+
source_name = first_item.get('sourceName')
|
|
825
|
+
if not source_name:
|
|
826
|
+
return None
|
|
827
|
+
input_settings_response = client.get_input_settings(name=source_name)
|
|
828
|
+
return input_settings_response.input_settings if input_settings_response else None
|
|
809
829
|
|
|
810
830
|
|
|
811
831
|
def main():
|
|
@@ -867,17 +887,23 @@ if __name__ == '__main__':
|
|
|
867
887
|
logging.basicConfig(level=logging.INFO)
|
|
868
888
|
connect_to_obs_sync()
|
|
869
889
|
|
|
870
|
-
|
|
890
|
+
# outputs = get_output_list()
|
|
891
|
+
# print(outputs)
|
|
892
|
+
|
|
893
|
+
# output = get_replay_buffer_output()
|
|
894
|
+
# print(output)
|
|
895
|
+
|
|
896
|
+
# save_replay_buffer()
|
|
871
897
|
# img = get_screenshot_PIL(source_name='Display Capture 2', compression=100, img_format='jpg', width=2560, height=1440)
|
|
872
898
|
# img.show()
|
|
873
|
-
#
|
|
874
|
-
# print(
|
|
899
|
+
# source = get_current_source_input_settings()
|
|
900
|
+
# print(source)
|
|
875
901
|
|
|
876
902
|
# response = enable_replay_buffer()
|
|
877
903
|
# print(response)
|
|
878
904
|
|
|
879
905
|
# response = get_replay_buffer_max_time_seconds()
|
|
880
|
-
#
|
|
906
|
+
# response is dataclass with attributes, print attributes
|
|
881
907
|
# print(response)
|
|
882
908
|
|
|
883
909
|
# response = enable_replay_buffer()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/gsm_ocr_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ocr/owocr_area_selector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/__init__.py
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/__main__.py
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/owocr/owocr/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/ss_selector.py
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/tools/window_transparency.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ui/anki_confirmation.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/ui/screenshot_selector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/communication/send.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/configuration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/downloader/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/downloader/oneocr_dl.py
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/electron_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/get_overlay_coords.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/notification.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/win10toast/__init__.py
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/util/win10toast/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/gsm_websocket.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/overview.css
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/search.css
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/shared.css
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/css/stats.css
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/favicon-96x96.png
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/favicon.ico
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/favicon.svg
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/anki_stats.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/database.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/goals.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/kanji-grid.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/overview.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/search.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/shared.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/js/stats.js
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/site.webmanifest
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/static/style.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/database.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/goals.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/index.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/overview.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/search.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/stats.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/templates/utility.html
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner/web/texthooking_page.py
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/requires.txt
RENAMED
|
File without changes
|
{gamesentenceminer-2.18.4 → gamesentenceminer-2.18.5}/GameSentenceMiner.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|