GameSentenceMiner 2.16.5__py3-none-any.whl → 2.16.7__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.
- GameSentenceMiner/anki.py +7 -2
- GameSentenceMiner/config_gui.py +8 -0
- GameSentenceMiner/locales/en_us.json +5 -1
- GameSentenceMiner/locales/ja_jp.json +4 -0
- GameSentenceMiner/locales/zh_cn.json +4 -0
- GameSentenceMiner/util/configuration.py +35 -0
- GameSentenceMiner/web/database_api.py +207 -93
- GameSentenceMiner/web/static/css/stats.css +243 -0
- GameSentenceMiner/web/static/js/search.js +46 -22
- GameSentenceMiner/web/static/js/shared.js +60 -12
- GameSentenceMiner/web/static/js/stats.js +363 -20
- GameSentenceMiner/web/stats.py +3 -3
- GameSentenceMiner/web/templates/search.html +6 -1
- GameSentenceMiner/web/templates/stats.html +163 -12
- GameSentenceMiner/web/texthooking_page.py +1 -1
- {gamesentenceminer-2.16.5.dist-info → gamesentenceminer-2.16.7.dist-info}/METADATA +1 -1
- {gamesentenceminer-2.16.5.dist-info → gamesentenceminer-2.16.7.dist-info}/RECORD +22 -22
- /GameSentenceMiner/web/{websockets.py → gsm_websocket.py} +0 -0
- {gamesentenceminer-2.16.5.dist-info → gamesentenceminer-2.16.7.dist-info}/WHEEL +0 -0
- {gamesentenceminer-2.16.5.dist-info → gamesentenceminer-2.16.7.dist-info}/entry_points.txt +0 -0
- {gamesentenceminer-2.16.5.dist-info → gamesentenceminer-2.16.7.dist-info}/licenses/LICENSE +0 -0
- {gamesentenceminer-2.16.5.dist-info → gamesentenceminer-2.16.7.dist-info}/top_level.txt +0 -0
@@ -181,8 +181,99 @@
|
|
181
181
|
</div>
|
182
182
|
</div>
|
183
183
|
|
184
|
+
<!-- Goal Progress Chart -->
|
185
|
+
<div class="dashboard-card goal-progress-chart" id="goalProgressChart" style="margin-bottom: 30px;">
|
186
|
+
<div class="dashboard-card-header">
|
187
|
+
<h3 class="dashboard-card-title">
|
188
|
+
<span class="dashboard-card-icon">🎯</span>
|
189
|
+
Goal Progress Chart
|
190
|
+
</h3>
|
191
|
+
<p class="dashboard-card-subtitle">Track your reading goals and projected completion dates</p>
|
192
|
+
</div>
|
193
|
+
|
194
|
+
<div class="goal-progress-grid">
|
195
|
+
<!-- Reading Hours Goal -->
|
196
|
+
<div class="goal-progress-item">
|
197
|
+
<div class="goal-progress-header">
|
198
|
+
<div class="goal-progress-label">
|
199
|
+
<span class="goal-icon">⏱️</span>
|
200
|
+
Reading Hours
|
201
|
+
</div>
|
202
|
+
<div class="goal-progress-values">
|
203
|
+
<span class="goal-current" id="goalHoursCurrent">-</span>
|
204
|
+
<span class="goal-separator">/</span>
|
205
|
+
<span class="goal-target" id="goalHoursTarget">-</span>
|
206
|
+
</div>
|
207
|
+
</div>
|
208
|
+
<div class="goal-progress-bar">
|
209
|
+
<div class="goal-progress-fill" id="goalHoursProgress" data-percentage="0"></div>
|
210
|
+
</div>
|
211
|
+
<div class="goal-progress-info">
|
212
|
+
<span class="goal-percentage" id="goalHoursPercentage">0%</span>
|
213
|
+
<span class="goal-projection" id="goalHoursProjection">-</span>
|
214
|
+
</div>
|
215
|
+
</div>
|
216
|
+
|
217
|
+
<!-- Character Count Goal -->
|
218
|
+
<div class="goal-progress-item">
|
219
|
+
<div class="goal-progress-header">
|
220
|
+
<div class="goal-progress-label">
|
221
|
+
<span class="goal-icon">📖</span>
|
222
|
+
Characters Read
|
223
|
+
</div>
|
224
|
+
<div class="goal-progress-values">
|
225
|
+
<span class="goal-current" id="goalCharsCurrent">-</span>
|
226
|
+
<span class="goal-separator">/</span>
|
227
|
+
<span class="goal-target" id="goalCharsTarget">-</span>
|
228
|
+
</div>
|
229
|
+
</div>
|
230
|
+
<div class="goal-progress-bar">
|
231
|
+
<div class="goal-progress-fill" id="goalCharsProgress" data-percentage="0"></div>
|
232
|
+
</div>
|
233
|
+
<div class="goal-progress-info">
|
234
|
+
<span class="goal-percentage" id="goalCharsPercentage">0%</span>
|
235
|
+
<span class="goal-projection" id="goalCharsProjection">-</span>
|
236
|
+
</div>
|
237
|
+
</div>
|
238
|
+
|
239
|
+
<!-- Games Goal -->
|
240
|
+
<div class="goal-progress-item">
|
241
|
+
<div class="goal-progress-header">
|
242
|
+
<div class="goal-progress-label">
|
243
|
+
<span class="goal-icon">🎮</span>
|
244
|
+
Games
|
245
|
+
</div>
|
246
|
+
<div class="goal-progress-values">
|
247
|
+
<span class="goal-current" id="goalGamesCurrent">-</span>
|
248
|
+
<span class="goal-separator">/</span>
|
249
|
+
<span class="goal-target" id="goalGamesTarget">-</span>
|
250
|
+
</div>
|
251
|
+
</div>
|
252
|
+
<div class="goal-progress-bar">
|
253
|
+
<div class="goal-progress-fill" id="goalGamesProgress" data-percentage="0"></div>
|
254
|
+
</div>
|
255
|
+
<div class="goal-progress-info">
|
256
|
+
<span class="goal-percentage" id="goalGamesPercentage">0%</span>
|
257
|
+
<span class="goal-projection" id="goalGamesProjection">-</span>
|
258
|
+
</div>
|
259
|
+
</div>
|
260
|
+
</div>
|
261
|
+
|
262
|
+
<!-- Loading/Error states -->
|
263
|
+
<div class="goal-progress-loading" id="goalProgressLoading" style="display: none;">
|
264
|
+
<div class="spinner"></div>
|
265
|
+
<span>Loading goal progress...</span>
|
266
|
+
</div>
|
267
|
+
|
268
|
+
<div class="goal-progress-error" id="goalProgressError" style="display: none;">
|
269
|
+
<div class="goal-progress-error-icon">⚠️</div>
|
270
|
+
<div class="goal-progress-error-message">Failed to load goal progress</div>
|
271
|
+
<button class="retry-btn" onclick="loadGoalProgress()">Retry</button>
|
272
|
+
</div>
|
273
|
+
</div>
|
274
|
+
|
184
275
|
<div class="chart-container">
|
185
|
-
<h2>
|
276
|
+
<h2>Activity Heatmap</h2>
|
186
277
|
<div id="heatmapContainer"></div>
|
187
278
|
</div>
|
188
279
|
|
@@ -251,13 +342,11 @@
|
|
251
342
|
type="number"
|
252
343
|
id="afkTimer"
|
253
344
|
name="afk_timer_seconds"
|
254
|
-
|
255
|
-
max="600"
|
256
|
-
style="width: 100%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
345
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
257
346
|
placeholder="120"
|
258
347
|
>
|
259
348
|
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
260
|
-
Maximum time between activities that still counts as active reading
|
349
|
+
Maximum time between activities that still counts as active reading
|
261
350
|
</small>
|
262
351
|
</div>
|
263
352
|
|
@@ -269,13 +358,11 @@
|
|
269
358
|
type="number"
|
270
359
|
id="sessionGap"
|
271
360
|
name="session_gap_seconds"
|
272
|
-
|
273
|
-
max="7200"
|
274
|
-
style="width: 100%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
361
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
275
362
|
placeholder="3600"
|
276
363
|
>
|
277
364
|
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
278
|
-
Time gap that triggers a new reading session
|
365
|
+
Time gap that triggers a new reading session
|
279
366
|
</small>
|
280
367
|
</div>
|
281
368
|
|
@@ -306,7 +393,7 @@
|
|
306
393
|
min="0.01"
|
307
394
|
max="24"
|
308
395
|
step="0.01"
|
309
|
-
style="width:
|
396
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
310
397
|
placeholder="1.0"
|
311
398
|
>
|
312
399
|
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
@@ -314,6 +401,70 @@
|
|
314
401
|
</small>
|
315
402
|
</div>
|
316
403
|
|
404
|
+
<!-- Reading Goals Section -->
|
405
|
+
<div style="margin-bottom: 20px; padding-top: 20px; border-top: 1px solid var(--border-color);">
|
406
|
+
<label style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
407
|
+
Reading Goals Configuration
|
408
|
+
</label>
|
409
|
+
<p style="color: var(--text-secondary); margin-bottom: 20px; font-size: 14px;">
|
410
|
+
Set your long-term reading targets for tracking progress and projections.
|
411
|
+
</p>
|
412
|
+
|
413
|
+
<div style="margin-bottom: 15px;">
|
414
|
+
<label for="readingHoursTarget" style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
415
|
+
Reading Hours Target
|
416
|
+
</label>
|
417
|
+
<input
|
418
|
+
type="number"
|
419
|
+
id="readingHoursTarget"
|
420
|
+
name="reading_hours_target"
|
421
|
+
min="1"
|
422
|
+
max="10000"
|
423
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
424
|
+
placeholder="1500"
|
425
|
+
>
|
426
|
+
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
427
|
+
Total reading hours goal (1-10,000 hours) - Default: 1500 hours based on TMW N1 achievement
|
428
|
+
</small>
|
429
|
+
</div>
|
430
|
+
|
431
|
+
<div style="margin-bottom: 15px;">
|
432
|
+
<label for="characterCountTarget" style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
433
|
+
Character Count Target
|
434
|
+
</label>
|
435
|
+
<input
|
436
|
+
type="number"
|
437
|
+
id="characterCountTarget"
|
438
|
+
name="character_count_target"
|
439
|
+
min="1000"
|
440
|
+
max="1000000000"
|
441
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
442
|
+
placeholder="25000000"
|
443
|
+
>
|
444
|
+
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
445
|
+
Total characters read goal (1,000-1,000,000,000) - Default: 25 million characters
|
446
|
+
</small>
|
447
|
+
</div>
|
448
|
+
|
449
|
+
<div style="margin-bottom: 15px;">
|
450
|
+
<label for="gamesTarget" style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
451
|
+
Games/Visual Novels Target
|
452
|
+
</label>
|
453
|
+
<input
|
454
|
+
type="number"
|
455
|
+
id="gamesTarget"
|
456
|
+
name="games_target"
|
457
|
+
min="1"
|
458
|
+
max="1000"
|
459
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
460
|
+
placeholder="100"
|
461
|
+
>
|
462
|
+
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
463
|
+
Number of games/visual novels to complete (1-1,000) - Default: 100 based on Refold standards
|
464
|
+
</small>
|
465
|
+
</div>
|
466
|
+
</div>
|
467
|
+
|
317
468
|
<!-- Import ExStatic Lines Section -->
|
318
469
|
<div style="margin-bottom: 20px; padding-top: 20px; border-top: 1px solid var(--border-color);">
|
319
470
|
<label style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
@@ -324,7 +475,7 @@
|
|
324
475
|
type="file"
|
325
476
|
id="exstaticFile"
|
326
477
|
accept=".csv"
|
327
|
-
style="width:
|
478
|
+
style="width: 90%; padding: 10px; border: 1px solid var(--border-color); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-primary); font-size: 14px;"
|
328
479
|
>
|
329
480
|
<small style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
330
481
|
Select an ExStatic CSV file to import reading data into GSM
|
@@ -333,7 +484,7 @@
|
|
333
484
|
<button
|
334
485
|
type="button"
|
335
486
|
id="importExstaticBtn"
|
336
|
-
style="width:
|
487
|
+
style="width: 90%; padding: 10px; background: #666; color: white; border: none; border-radius: 5px; font-size: 14px; cursor: not-allowed; margin-bottom: 10px;"
|
337
488
|
disabled
|
338
489
|
>
|
339
490
|
Import ExStatic Lines
|
@@ -27,7 +27,7 @@ from GameSentenceMiner.web.stats import (
|
|
27
27
|
calculate_actual_reading_time, calculate_daily_reading_time, calculate_time_based_streak,
|
28
28
|
format_time_human_readable, calculate_current_game_stats, calculate_all_games_stats
|
29
29
|
)
|
30
|
-
from GameSentenceMiner.web.
|
30
|
+
from GameSentenceMiner.web.gsm_websocket import (
|
31
31
|
WebsocketServerThread, websocket_queue, paused, websocket_server_thread,
|
32
32
|
plaintext_websocket_server_thread, overlay_server_thread, websocket_server_threads,
|
33
33
|
handle_exit_signal
|
@@ -1,6 +1,6 @@
|
|
1
1
|
GameSentenceMiner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
GameSentenceMiner/anki.py,sha256=
|
3
|
-
GameSentenceMiner/config_gui.py,sha256=
|
2
|
+
GameSentenceMiner/anki.py,sha256=Qq03nxYCA0bXS8IR1vnEB9cv2vxo6Ruy-UuiojC4ad0,26518
|
3
|
+
GameSentenceMiner/config_gui.py,sha256=GnRlD07wGL6aQOWUxo3frki5GzLuu3yQssmNP2hYaNg,142530
|
4
4
|
GameSentenceMiner/gametext.py,sha256=fgBgLchezpauWELE9Y5G3kVCLfAneD0X4lJFoI3FYbs,10351
|
5
5
|
GameSentenceMiner/gsm.py,sha256=CcXGZI8K7cYB9FJfCRaOujlWDk08sQGQXhTiMewMhFg,31889
|
6
6
|
GameSentenceMiner/obs.py,sha256=EyAYhaLvMjoeC-3j7fuvkqZN5logFFanPfb8Wn1C6m0,27296
|
@@ -15,9 +15,9 @@ 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=
|
19
|
-
GameSentenceMiner/locales/ja_jp.json,sha256=
|
20
|
-
GameSentenceMiner/locales/zh_cn.json,sha256=
|
18
|
+
GameSentenceMiner/locales/en_us.json,sha256=VZ2RblOdRLUaTyofcJtc-urmW88vFL1G7DMG7wKbw9k,27184
|
19
|
+
GameSentenceMiner/locales/ja_jp.json,sha256=X00lVjbxEhH3NVBxFMqqWMMh388DDGUvDECXGyf8T0k,29014
|
20
|
+
GameSentenceMiner/locales/zh_cn.json,sha256=EYbNwLffCyrBw9AEiIObo6mZw9G_nsEkRDiN1QrFhoc,25259
|
21
21
|
GameSentenceMiner/ocr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
22
|
GameSentenceMiner/ocr/gsm_ocr_config.py,sha256=Ov04c-nKzh3sADxO-5JyZWVe4DlrHM9edM9tc7-97Jo,5970
|
23
23
|
GameSentenceMiner/ocr/ocrconfig.py,sha256=_tY8mjnzHMJrLS8E5pHqYXZjMuLoGKYgJwdhYgN-ny4,6466
|
@@ -37,7 +37,7 @@ GameSentenceMiner/tools/furigana_filter_preview.py,sha256=BXv7FChPEJW_VeG5XYt6su
|
|
37
37
|
GameSentenceMiner/tools/ss_selector.py,sha256=cbjMxiKOCuOfbRvLR_PCRlykBrGtm1LXd6u5czPqkmc,4793
|
38
38
|
GameSentenceMiner/tools/window_transparency.py,sha256=GtbxbmZg0-UYPXhfHff-7IKZyY2DKe4B9GdyovfmpeM,8166
|
39
39
|
GameSentenceMiner/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
-
GameSentenceMiner/util/configuration.py,sha256
|
40
|
+
GameSentenceMiner/util/configuration.py,sha256=-1I7fn-IWEb2SKyJzL5-9Ydgawt4msrb-Tr90DZbiT0,42247
|
41
41
|
GameSentenceMiner/util/db.py,sha256=p_oRoj7p_vRlZq1srtZUxpHPlaJcWOhNLC7z9Dclo7A,18052
|
42
42
|
GameSentenceMiner/util/electron_config.py,sha256=KfeJToeFFVw0IR5MKa-gBzpzaGrU-lyJbR9z-sDEHYU,8767
|
43
43
|
GameSentenceMiner/util/ffmpeg.py,sha256=FEGr2eD_dR9HDMJW9s8KQ1nY1TSrp0ExhM5Yh98gDQ0,28784
|
@@ -56,12 +56,12 @@ GameSentenceMiner/util/downloader/oneocr_dl.py,sha256=l3s9Z-x1b57GX048o5h-MVv0UT
|
|
56
56
|
GameSentenceMiner/util/win10toast/__init__.py,sha256=6TL2w6rzNmpJEp6_v2cAJP_7ExA3UsKzwdM08pNcVfE,5341
|
57
57
|
GameSentenceMiner/util/win10toast/__main__.py,sha256=5MYnBcFj8y_6Dyc1kiPd0_FsUuh4yl1cv5wsleU6V4w,668
|
58
58
|
GameSentenceMiner/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
59
|
-
GameSentenceMiner/web/database_api.py,sha256=
|
59
|
+
GameSentenceMiner/web/database_api.py,sha256=yz06Y3DZGGsfeMQzCOUalTqj-expK_hMr6oZhplOUeM,50937
|
60
60
|
GameSentenceMiner/web/events.py,sha256=6Vyz5c9MdpMIa7Zqljqhap2XFQnAVYJ0CdQV64TSZsA,5119
|
61
|
+
GameSentenceMiner/web/gsm_websocket.py,sha256=IwwQo6VtgPqeOuc-datgfJyLpX3LwB2MISDqA6EkiSA,4131
|
61
62
|
GameSentenceMiner/web/service.py,sha256=YZchmScTn7AX_GkwV1ULEK6qjdOnJcpc3qfMwDf7cUE,5363
|
62
|
-
GameSentenceMiner/web/stats.py,sha256=
|
63
|
-
GameSentenceMiner/web/texthooking_page.py,sha256=
|
64
|
-
GameSentenceMiner/web/websockets.py,sha256=IwwQo6VtgPqeOuc-datgfJyLpX3LwB2MISDqA6EkiSA,4131
|
63
|
+
GameSentenceMiner/web/stats.py,sha256=VM4PwQRVjuwDcFAz08_7yWC0T7fGAfmVUDuxYuyiswA,22078
|
64
|
+
GameSentenceMiner/web/texthooking_page.py,sha256=gB2i3X7DQ9kEML6ak4PFSKMi6zd6nPEa_ob-XG4guBo,13231
|
65
65
|
GameSentenceMiner/web/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
66
66
|
GameSentenceMiner/web/static/apple-touch-icon.png,sha256=OcMI8af_68DA_tweOsQ5LytTyMwm7-hPW07IfrOVgEs,46132
|
67
67
|
GameSentenceMiner/web/static/favicon-96x96.png,sha256=lOePzjiKl1JY2J1kT_PMdyEnrlJmi5GWbmXJunM12B4,16502
|
@@ -74,25 +74,25 @@ GameSentenceMiner/web/static/web-app-manifest-512x512.png,sha256=wyqgCWCrLEUxSRX
|
|
74
74
|
GameSentenceMiner/web/static/css/kanji-grid.css,sha256=FjgoZW77Uy8mTM6lHGO85tjzoNhkAS6cdXzLDcLLMh8,2449
|
75
75
|
GameSentenceMiner/web/static/css/search.css,sha256=x06xsErfThUpE1NAG4CA2sCPSZ-ofNWEI_ekV2Ok5hY,253
|
76
76
|
GameSentenceMiner/web/static/css/shared.css,sha256=66kQvgoyBhw3AFNUpGhTJDRvb7T3b7hO63lMealCqnk,17198
|
77
|
-
GameSentenceMiner/web/static/css/stats.css,sha256=
|
77
|
+
GameSentenceMiner/web/static/css/stats.css,sha256=Ybjm_XzEqo0A0tnQtdPvGgdfz9o8Gy2ghJSKzQ2a0TQ,14418
|
78
78
|
GameSentenceMiner/web/static/js/anki_stats.js,sha256=wZfr9vXGF--OTXOszjB3XX1pI2RrMBxGHoGwGvJ20xg,3171
|
79
79
|
GameSentenceMiner/web/static/js/database.js,sha256=-SjMmhXzU8a3QNGrwGtJCu55ZXXfkBxlYSkySEBdclU,22097
|
80
80
|
GameSentenceMiner/web/static/js/kanji-grid.js,sha256=rUa8_TGFm4Z8CtURoAlZjCN032PLe0YmHvN52S4_sE0,7181
|
81
|
-
GameSentenceMiner/web/static/js/search.js,sha256=
|
82
|
-
GameSentenceMiner/web/static/js/shared.js,sha256=
|
83
|
-
GameSentenceMiner/web/static/js/stats.js,sha256=
|
81
|
+
GameSentenceMiner/web/static/js/search.js,sha256=WG6gUOhK7ajMvqqpwYOrPAnpWw7-EhkJWYPsA5fimUE,10405
|
82
|
+
GameSentenceMiner/web/static/js/shared.js,sha256=UL7wDJ5FsqeIspkCcC4s_jOv6a93I2gxFi57gQT8Bn0,21001
|
83
|
+
GameSentenceMiner/web/static/js/stats.js,sha256=zwrddDtrmHABxrqpGz9Y-FBUCnMMI6z1wcE8o85yCCM,81640
|
84
84
|
GameSentenceMiner/web/templates/anki_stats.html,sha256=FdIMl-kY0-3as9Wn0i-wKIIkl1xXn4nWMbWPypN_1T0,10955
|
85
85
|
GameSentenceMiner/web/templates/database.html,sha256=Gd54rgZmfcV7ufoJ69COeMncs5Q5u-rSJcsIvROVCEo,13732
|
86
86
|
GameSentenceMiner/web/templates/index.html,sha256=7ChQ1j602MOiYU95wXAKP_Ezsh_JgdlGz2uXIzS2j0g,227894
|
87
|
-
GameSentenceMiner/web/templates/search.html,sha256=
|
88
|
-
GameSentenceMiner/web/templates/stats.html,sha256=
|
87
|
+
GameSentenceMiner/web/templates/search.html,sha256=nao3M_hAbm5ftzThi91NtQ3ZiINMPUNx4ngFmqLnLQ4,4060
|
88
|
+
GameSentenceMiner/web/templates/stats.html,sha256=1dS31wP6aAvsX3Ygz0luFrUDzACP7LD0-bIWYfg_NXQ,27783
|
89
89
|
GameSentenceMiner/web/templates/utility.html,sha256=KtqnZUMAYs5XsEdC9Tlsd40NKAVic0mu6sh-ReMDJpU,16940
|
90
90
|
GameSentenceMiner/web/templates/components/navigation.html,sha256=6y9PvM3nh8LY6JWrZb6zVOm0vqkBLDc6d3gB9X5lT_w,1055
|
91
91
|
GameSentenceMiner/web/templates/components/theme-styles.html,sha256=hiq3zdJljpRjQO1iUA7gfFKwXebltG-IWW-gnKS4GHA,3439
|
92
92
|
GameSentenceMiner/wip/__init___.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
|
-
gamesentenceminer-2.16.
|
94
|
-
gamesentenceminer-2.16.
|
95
|
-
gamesentenceminer-2.16.
|
96
|
-
gamesentenceminer-2.16.
|
97
|
-
gamesentenceminer-2.16.
|
98
|
-
gamesentenceminer-2.16.
|
93
|
+
gamesentenceminer-2.16.7.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
94
|
+
gamesentenceminer-2.16.7.dist-info/METADATA,sha256=YVoiDIvmBYF-EZikzbgl-84q2Q2hD-GZeCvBMvb4iWs,7348
|
95
|
+
gamesentenceminer-2.16.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
96
|
+
gamesentenceminer-2.16.7.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
|
97
|
+
gamesentenceminer-2.16.7.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
|
98
|
+
gamesentenceminer-2.16.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|