GameSentenceMiner 2.17.7__py3-none-any.whl → 2.18.0__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/ai/ai_prompting.py +6 -6
- GameSentenceMiner/anki.py +236 -152
- GameSentenceMiner/gametext.py +7 -4
- GameSentenceMiner/gsm.py +49 -10
- GameSentenceMiner/locales/en_us.json +7 -3
- GameSentenceMiner/locales/ja_jp.json +8 -4
- GameSentenceMiner/locales/zh_cn.json +8 -4
- GameSentenceMiner/obs.py +238 -59
- GameSentenceMiner/ocr/owocr_helper.py +1 -1
- GameSentenceMiner/tools/ss_selector.py +7 -8
- GameSentenceMiner/ui/__init__.py +0 -0
- GameSentenceMiner/ui/anki_confirmation.py +187 -0
- GameSentenceMiner/{config_gui.py → ui/config_gui.py} +100 -35
- GameSentenceMiner/ui/screenshot_selector.py +215 -0
- GameSentenceMiner/util/configuration.py +124 -22
- GameSentenceMiner/util/db.py +22 -13
- GameSentenceMiner/util/downloader/download_tools.py +2 -2
- GameSentenceMiner/util/ffmpeg.py +24 -30
- GameSentenceMiner/util/get_overlay_coords.py +34 -34
- GameSentenceMiner/util/gsm_utils.py +31 -1
- GameSentenceMiner/util/text_log.py +11 -9
- GameSentenceMiner/vad.py +31 -12
- GameSentenceMiner/web/database_api.py +742 -123
- GameSentenceMiner/web/static/css/dashboard-shared.css +241 -0
- GameSentenceMiner/web/static/css/kanji-grid.css +94 -2
- GameSentenceMiner/web/static/css/overview.css +850 -0
- GameSentenceMiner/web/static/css/popups-shared.css +126 -0
- GameSentenceMiner/web/static/css/shared.css +97 -0
- GameSentenceMiner/web/static/css/stats.css +192 -597
- GameSentenceMiner/web/static/js/anki_stats.js +6 -4
- GameSentenceMiner/web/static/js/database.js +209 -5
- GameSentenceMiner/web/static/js/goals.js +610 -0
- GameSentenceMiner/web/static/js/kanji-grid.js +267 -4
- GameSentenceMiner/web/static/js/overview.js +1176 -0
- GameSentenceMiner/web/static/js/shared.js +25 -0
- GameSentenceMiner/web/static/js/stats.js +154 -1459
- GameSentenceMiner/web/stats.py +2 -2
- GameSentenceMiner/web/templates/anki_stats.html +5 -0
- GameSentenceMiner/web/templates/components/navigation.html +3 -1
- GameSentenceMiner/web/templates/database.html +73 -1
- GameSentenceMiner/web/templates/goals.html +376 -0
- GameSentenceMiner/web/templates/index.html +13 -11
- GameSentenceMiner/web/templates/overview.html +416 -0
- GameSentenceMiner/web/templates/stats.html +46 -251
- GameSentenceMiner/web/texthooking_page.py +18 -0
- {gamesentenceminer-2.17.7.dist-info → gamesentenceminer-2.18.0.dist-info}/METADATA +5 -1
- {gamesentenceminer-2.17.7.dist-info → gamesentenceminer-2.18.0.dist-info}/RECORD +51 -41
- {gamesentenceminer-2.17.7.dist-info → gamesentenceminer-2.18.0.dist-info}/WHEEL +0 -0
- {gamesentenceminer-2.17.7.dist-info → gamesentenceminer-2.18.0.dist-info}/entry_points.txt +0 -0
- {gamesentenceminer-2.17.7.dist-info → gamesentenceminer-2.18.0.dist-info}/licenses/LICENSE +0 -0
- {gamesentenceminer-2.17.7.dist-info → gamesentenceminer-2.18.0.dist-info}/top_level.txt +0 -0
|
@@ -16,6 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
<!-- Include shared CSS -->
|
|
18
18
|
<link rel="stylesheet" href="/static/css/shared.css">
|
|
19
|
+
|
|
20
|
+
<!-- Include shared dashboard and popup CSS -->
|
|
21
|
+
<link rel="stylesheet" href="/static/css/dashboard-shared.css">
|
|
22
|
+
<link rel="stylesheet" href="/static/css/popups-shared.css">
|
|
19
23
|
|
|
20
24
|
<!-- Include stats-specific CSS -->
|
|
21
25
|
<link rel="stylesheet" href="/static/css/stats.css">
|
|
@@ -31,7 +35,6 @@
|
|
|
31
35
|
|
|
32
36
|
<!-- Include shared navigation -->
|
|
33
37
|
{% include 'components/navigation.html' %}
|
|
34
|
-
|
|
35
38
|
<div class="dashboard-card date-range">
|
|
36
39
|
<div class="dashboard-card-header">
|
|
37
40
|
<h3 class="dashboard-card-title">
|
|
@@ -39,7 +42,6 @@
|
|
|
39
42
|
Date Range
|
|
40
43
|
</h3>
|
|
41
44
|
</div>
|
|
42
|
-
|
|
43
45
|
<div class="dashboard-date-range">
|
|
44
46
|
<div class="dashboard-date-item tooltip" data-tooltip="Select the start date for your stats">
|
|
45
47
|
<label for="fromDate">From</label>
|
|
@@ -51,7 +53,6 @@
|
|
|
51
53
|
</div>
|
|
52
54
|
</div>
|
|
53
55
|
</div>
|
|
54
|
-
|
|
55
56
|
<div id="dateErrorPopup" class="dashboard-popup hidden">
|
|
56
57
|
<div class="dashboard-popup-content">
|
|
57
58
|
<div class="dashboard-popup-icon">⚠️</div>
|
|
@@ -59,7 +60,6 @@
|
|
|
59
60
|
<button id="closePopupBtn" class="dashboard-popup-btn">OK</button>
|
|
60
61
|
</div>
|
|
61
62
|
</div>
|
|
62
|
-
|
|
63
63
|
<div id="noDataPopup" class="no-data-popup hidden">
|
|
64
64
|
<div class="no-data-content">
|
|
65
65
|
<p>No data found for the selected range.</p>
|
|
@@ -67,253 +67,6 @@
|
|
|
67
67
|
</div>
|
|
68
68
|
</div>
|
|
69
69
|
|
|
70
|
-
<!-- Dashboard Statistics Sections -->
|
|
71
|
-
<div class="dashboard-container">
|
|
72
|
-
<!-- Current Game Statistics Panel -->
|
|
73
|
-
<div class="dashboard-card current-game" id="currentGameCard">
|
|
74
|
-
<div class="dashboard-card-header">
|
|
75
|
-
<div>
|
|
76
|
-
<h3 class="dashboard-card-title">
|
|
77
|
-
<span class="dashboard-card-icon">🎮</span>
|
|
78
|
-
Current Game Statistics
|
|
79
|
-
</h3>
|
|
80
|
-
<p class="dashboard-card-subtitle" id="currentGameName">Loading...</p>
|
|
81
|
-
</div>
|
|
82
|
-
<div class="dashboard-streak-indicator" id="currentGameStreak" style="display: none;">
|
|
83
|
-
<span id="currentStreakValue">0</span> day streak
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
<div class="dashboard-stats-grid" id="currentGameStats">
|
|
88
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total characters read in this game">
|
|
89
|
-
<span class="dashboard-stat-value" id="currentTotalChars">-</span>
|
|
90
|
-
<span class="dashboard-stat-label">Characters</span>
|
|
91
|
-
</div>
|
|
92
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total time spent reading this game">
|
|
93
|
-
<span class="dashboard-stat-value" id="currentTotalTime">-</span>
|
|
94
|
-
<span class="dashboard-stat-label">Time Spent</span>
|
|
95
|
-
</div>
|
|
96
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Average reading speed for this game">
|
|
97
|
-
<span class="dashboard-stat-value" id="currentReadingSpeed">-</span>
|
|
98
|
-
<span class="dashboard-stat-label">Chars/Hour</span>
|
|
99
|
-
</div>
|
|
100
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Number of reading sessions for this game">
|
|
101
|
-
<span class="dashboard-stat-value" id="currentSessions">-</span>
|
|
102
|
-
<span class="dashboard-stat-label">Sessions</span>
|
|
103
|
-
</div>
|
|
104
|
-
</div>
|
|
105
|
-
|
|
106
|
-
<div class="dashboard-progress-section">
|
|
107
|
-
<div class="dashboard-progress-title">Recent Progress</div>
|
|
108
|
-
<div class="dashboard-progress-items">
|
|
109
|
-
<div class="dashboard-progress-item">
|
|
110
|
-
<div class="dashboard-progress-value positive" id="currentMonthlyChars">-</div>
|
|
111
|
-
<div class="dashboard-progress-label">Monthly Characters</div>
|
|
112
|
-
</div>
|
|
113
|
-
<div class="dashboard-progress-item">
|
|
114
|
-
<div class="dashboard-progress-value neutral" id="currentFirstDate">-</div>
|
|
115
|
-
<div class="dashboard-progress-label">Started</div>
|
|
116
|
-
</div>
|
|
117
|
-
<div class="dashboard-progress-item">
|
|
118
|
-
<div class="dashboard-progress-value neutral" id="currentLastDate">-</div>
|
|
119
|
-
<div class="dashboard-progress-label">Last Activity</div>
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
122
|
-
</div>
|
|
123
|
-
</div>
|
|
124
|
-
|
|
125
|
-
<!-- All Games Historical Overview -->
|
|
126
|
-
<div class="dashboard-card all-games" id="allGamesCard">
|
|
127
|
-
<div class="dashboard-card-header">
|
|
128
|
-
<div>
|
|
129
|
-
<h3 class="dashboard-card-title">
|
|
130
|
-
<span class="dashboard-card-icon">📚</span>
|
|
131
|
-
All Games Overview
|
|
132
|
-
</h3>
|
|
133
|
-
<p class="dashboard-card-subtitle" id="totalGamesCount">Loading...</p>
|
|
134
|
-
</div>
|
|
135
|
-
<div class="dashboard-streak-indicator" id="allGamesStreak" style="display: none;">
|
|
136
|
-
<span id="allStreakValue">0</span> day streak
|
|
137
|
-
</div>
|
|
138
|
-
</div>
|
|
139
|
-
|
|
140
|
-
<div class="dashboard-stats-grid" id="allGamesStats">
|
|
141
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total characters read across all games">
|
|
142
|
-
<span class="dashboard-stat-value" id="allTotalChars">-</span>
|
|
143
|
-
<span class="dashboard-stat-label">Characters</span>
|
|
144
|
-
</div>
|
|
145
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total time spent reading across all games">
|
|
146
|
-
<span class="dashboard-stat-value" id="allTotalTime">-</span>
|
|
147
|
-
<span class="dashboard-stat-label">Time Spent</span>
|
|
148
|
-
</div>
|
|
149
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Overall average reading speed">
|
|
150
|
-
<span class="dashboard-stat-value" id="allReadingSpeed">-</span>
|
|
151
|
-
<span class="dashboard-stat-label">Chars/Hour</span>
|
|
152
|
-
</div>
|
|
153
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total number of reading sessions">
|
|
154
|
-
<span class="dashboard-stat-value" id="allSessions">-</span>
|
|
155
|
-
<span class="dashboard-stat-label">Sessions</span>
|
|
156
|
-
</div>
|
|
157
|
-
</div>
|
|
158
|
-
|
|
159
|
-
<div class="dashboard-progress-section">
|
|
160
|
-
<div class="dashboard-progress-title">Overall Progress</div>
|
|
161
|
-
<div class="dashboard-progress-items">
|
|
162
|
-
<div class="dashboard-progress-item">
|
|
163
|
-
<div class="dashboard-progress-value positive" id="allMonthlyChars">-</div>
|
|
164
|
-
<div class="dashboard-progress-label">Monthly Characters</div>
|
|
165
|
-
</div>
|
|
166
|
-
<div class="dashboard-progress-item">
|
|
167
|
-
<div class="dashboard-progress-value neutral" id="allUniqueGames">-</div>
|
|
168
|
-
<div class="dashboard-progress-label">Games Played</div>
|
|
169
|
-
</div>
|
|
170
|
-
<div class="dashboard-progress-item">
|
|
171
|
-
<div class="dashboard-progress-value neutral" id="allTotalSentences">-</div>
|
|
172
|
-
<div class="dashboard-progress-label">Total Sentences</div>
|
|
173
|
-
</div>
|
|
174
|
-
</div>
|
|
175
|
-
</div>
|
|
176
|
-
</div>
|
|
177
|
-
</div>
|
|
178
|
-
|
|
179
|
-
<!-- Loading/Error states for dashboard -->
|
|
180
|
-
<div class="dashboard-loading" id="dashboardLoading" style="display: none;">
|
|
181
|
-
<div class="spinner"></div>
|
|
182
|
-
<span>Loading dashboard statistics...</span>
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<div class="dashboard-error" id="dashboardError" style="display: none;">
|
|
186
|
-
<div class="dashboard-error-icon">⚠️</div>
|
|
187
|
-
<div class="dashboard-error-message">Failed to load dashboard statistics</div>
|
|
188
|
-
<button class="dashboard-retry-btn" data-action="loadDashboardData">Retry</button>
|
|
189
|
-
</div>
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
<!-- Today's Overview Card -->
|
|
193
|
-
<div class="dashboard-card today-overview" id="todayOverviewCard" style="margin-bottom: 24px;">
|
|
194
|
-
<div class="dashboard-card-header">
|
|
195
|
-
<h3 class="dashboard-card-title">
|
|
196
|
-
<span class="dashboard-card-icon">📅</span>
|
|
197
|
-
Today's Overview
|
|
198
|
-
</h3>
|
|
199
|
-
<p class="dashboard-card-subtitle" id="todayDate">Loading...</p>
|
|
200
|
-
</div>
|
|
201
|
-
<div class="dashboard-stats-grid" id="todayStats">
|
|
202
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total hours spent reading today">
|
|
203
|
-
<span class="dashboard-stat-value" id="todayTotalHours">-</span>
|
|
204
|
-
<span class="dashboard-stat-label">Hours Spent</span>
|
|
205
|
-
</div>
|
|
206
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Total characters read today">
|
|
207
|
-
<span class="dashboard-stat-value" id="todayTotalChars">-</span>
|
|
208
|
-
<span class="dashboard-stat-label">Characters</span>
|
|
209
|
-
</div>
|
|
210
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Number of reading sessions today">
|
|
211
|
-
<span class="dashboard-stat-value" id="todaySessions">-</span>
|
|
212
|
-
<span class="dashboard-stat-label">Sessions</span>
|
|
213
|
-
</div>
|
|
214
|
-
<div class="dashboard-stat-item tooltip" data-tooltip="Average reading speed today">
|
|
215
|
-
<span class="dashboard-stat-value" id="todayCharsPerHour">-</span>
|
|
216
|
-
<span class="dashboard-stat-label">Chars/Hour</span>
|
|
217
|
-
</div>
|
|
218
|
-
</div>
|
|
219
|
-
</div>
|
|
220
|
-
|
|
221
|
-
<!-- Goal Progress Chart -->
|
|
222
|
-
<div class="dashboard-card goal-progress-chart" id="goalProgressChart" style="margin-bottom: 30px;">
|
|
223
|
-
<div class="dashboard-card-header">
|
|
224
|
-
<h3 class="dashboard-card-title">
|
|
225
|
-
<span class="dashboard-card-icon">🎯</span>
|
|
226
|
-
Goal Progress Chart
|
|
227
|
-
</h3>
|
|
228
|
-
<p class="dashboard-card-subtitle">Track your reading goals and projected completion dates</p>
|
|
229
|
-
</div>
|
|
230
|
-
|
|
231
|
-
<div class="goal-progress-grid">
|
|
232
|
-
<!-- Reading Hours Goal -->
|
|
233
|
-
<div class="goal-progress-item">
|
|
234
|
-
<div class="goal-progress-header">
|
|
235
|
-
<div class="goal-progress-label">
|
|
236
|
-
<span class="goal-icon">⏱️</span>
|
|
237
|
-
Reading Hours
|
|
238
|
-
</div>
|
|
239
|
-
<div class="goal-progress-values">
|
|
240
|
-
<span class="goal-current" id="goalHoursCurrent">-</span>
|
|
241
|
-
<span class="goal-separator">/</span>
|
|
242
|
-
<span class="goal-target" id="goalHoursTarget">-</span>
|
|
243
|
-
</div>
|
|
244
|
-
</div>
|
|
245
|
-
<div class="goal-progress-bar">
|
|
246
|
-
<div class="goal-progress-fill" id="goalHoursProgress" data-percentage="0"></div>
|
|
247
|
-
</div>
|
|
248
|
-
<div class="goal-progress-info">
|
|
249
|
-
<span class="goal-percentage" id="goalHoursPercentage">0%</span>
|
|
250
|
-
<span class="goal-projection" id="goalHoursProjection">-</span>
|
|
251
|
-
</div>
|
|
252
|
-
</div>
|
|
253
|
-
|
|
254
|
-
<!-- Character Count Goal -->
|
|
255
|
-
<div class="goal-progress-item">
|
|
256
|
-
<div class="goal-progress-header">
|
|
257
|
-
<div class="goal-progress-label">
|
|
258
|
-
<span class="goal-icon">📖</span>
|
|
259
|
-
Characters Read
|
|
260
|
-
</div>
|
|
261
|
-
<div class="goal-progress-values">
|
|
262
|
-
<span class="goal-current" id="goalCharsCurrent">-</span>
|
|
263
|
-
<span class="goal-separator">/</span>
|
|
264
|
-
<span class="goal-target" id="goalCharsTarget">-</span>
|
|
265
|
-
</div>
|
|
266
|
-
</div>
|
|
267
|
-
<div class="goal-progress-bar">
|
|
268
|
-
<div class="goal-progress-fill" id="goalCharsProgress" data-percentage="0"></div>
|
|
269
|
-
</div>
|
|
270
|
-
<div class="goal-progress-info">
|
|
271
|
-
<span class="goal-percentage" id="goalCharsPercentage">0%</span>
|
|
272
|
-
<span class="goal-projection" id="goalCharsProjection">-</span>
|
|
273
|
-
</div>
|
|
274
|
-
</div>
|
|
275
|
-
|
|
276
|
-
<!-- Games Goal -->
|
|
277
|
-
<div class="goal-progress-item">
|
|
278
|
-
<div class="goal-progress-header">
|
|
279
|
-
<div class="goal-progress-label">
|
|
280
|
-
<span class="goal-icon">🎮</span>
|
|
281
|
-
Games
|
|
282
|
-
</div>
|
|
283
|
-
<div class="goal-progress-values">
|
|
284
|
-
<span class="goal-current" id="goalGamesCurrent">-</span>
|
|
285
|
-
<span class="goal-separator">/</span>
|
|
286
|
-
<span class="goal-target" id="goalGamesTarget">-</span>
|
|
287
|
-
</div>
|
|
288
|
-
</div>
|
|
289
|
-
<div class="goal-progress-bar">
|
|
290
|
-
<div class="goal-progress-fill" id="goalGamesProgress" data-percentage="0"></div>
|
|
291
|
-
</div>
|
|
292
|
-
<div class="goal-progress-info">
|
|
293
|
-
<span class="goal-percentage" id="goalGamesPercentage">0%</span>
|
|
294
|
-
<span class="goal-projection" id="goalGamesProjection">-</span>
|
|
295
|
-
</div>
|
|
296
|
-
</div>
|
|
297
|
-
</div>
|
|
298
|
-
|
|
299
|
-
<!-- Loading/Error states -->
|
|
300
|
-
<div class="goal-progress-loading" id="goalProgressLoading" style="display: none;">
|
|
301
|
-
<div class="spinner"></div>
|
|
302
|
-
<span>Loading goal progress...</span>
|
|
303
|
-
</div>
|
|
304
|
-
|
|
305
|
-
<div class="goal-progress-error" id="goalProgressError" style="display: none;">
|
|
306
|
-
<div class="goal-progress-error-icon">⚠️</div>
|
|
307
|
-
<div class="goal-progress-error-message">Failed to load goal progress</div>
|
|
308
|
-
<button class="retry-btn" onclick="loadGoalProgress()">Retry</button>
|
|
309
|
-
</div>
|
|
310
|
-
</div>
|
|
311
|
-
|
|
312
|
-
<div class="chart-container">
|
|
313
|
-
<h2>Activity Heatmap</h2>
|
|
314
|
-
<div id="heatmapContainer"></div>
|
|
315
|
-
</div>
|
|
316
|
-
|
|
317
70
|
<div class="chart-container">
|
|
318
71
|
<h2>Lines Received Over Time</h2>
|
|
319
72
|
<canvas id="linesChart"></canvas>
|
|
@@ -474,6 +227,34 @@
|
|
|
474
227
|
</small>
|
|
475
228
|
</div>
|
|
476
229
|
|
|
230
|
+
<div style="margin-bottom: 15px;">
|
|
231
|
+
<label for="readingHoursTargetDate"
|
|
232
|
+
style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
|
233
|
+
Reading Hours Target Date
|
|
234
|
+
</label>
|
|
235
|
+
<input type="date" id="readingHoursTargetDate" name="reading_hours_target_date"
|
|
236
|
+
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;"
|
|
237
|
+
data-date-format="yyyy-mm-dd">
|
|
238
|
+
<small
|
|
239
|
+
style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
|
240
|
+
Target date to achieve your reading hours goal
|
|
241
|
+
</small>
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
<div style="margin-bottom: 15px;">
|
|
245
|
+
<label for="characterCountTargetDate"
|
|
246
|
+
style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
|
247
|
+
Character Count Target Date
|
|
248
|
+
</label>
|
|
249
|
+
<input type="date" id="characterCountTargetDate" name="character_count_target_date"
|
|
250
|
+
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;"
|
|
251
|
+
data-date-format="yyyy-mm-dd">
|
|
252
|
+
<small
|
|
253
|
+
style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
|
254
|
+
Target date to achieve your character count goal
|
|
255
|
+
</small>
|
|
256
|
+
</div>
|
|
257
|
+
|
|
477
258
|
<div style="margin-bottom: 15px;">
|
|
478
259
|
<label for="gamesTarget"
|
|
479
260
|
style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
|
@@ -488,6 +269,20 @@
|
|
|
488
269
|
standards
|
|
489
270
|
</small>
|
|
490
271
|
</div>
|
|
272
|
+
|
|
273
|
+
<div style="margin-bottom: 15px;">
|
|
274
|
+
<label for="gamesTargetDate"
|
|
275
|
+
style="display: block; font-weight: 600; margin-bottom: 8px; color: var(--text-primary);">
|
|
276
|
+
Games/Visual Novels Target Date
|
|
277
|
+
</label>
|
|
278
|
+
<input type="date" id="gamesTargetDate" name="games_target_date"
|
|
279
|
+
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;"
|
|
280
|
+
data-date-format="yyyy-mm-dd">
|
|
281
|
+
<small
|
|
282
|
+
style="color: var(--text-tertiary); font-size: 12px; margin-top: 4px; display: block;">
|
|
283
|
+
Target date to achieve your games goal
|
|
284
|
+
</small>
|
|
285
|
+
</div>
|
|
491
286
|
</div>
|
|
492
287
|
|
|
493
288
|
<!-- Import ExStatic Lines Section -->
|
|
@@ -260,6 +260,15 @@ def datetimeformat(value, format='%Y-%m-%d %H:%M:%S'):
|
|
|
260
260
|
return datetime.datetime.fromtimestamp(float(value)).strftime(format)
|
|
261
261
|
|
|
262
262
|
|
|
263
|
+
@app.route('/overview')
|
|
264
|
+
def overview():
|
|
265
|
+
"""Renders the overview page."""
|
|
266
|
+
from GameSentenceMiner.util.configuration import get_master_config, get_stats_config
|
|
267
|
+
return render_template('overview.html',
|
|
268
|
+
config=get_config(),
|
|
269
|
+
master_config=get_master_config(),
|
|
270
|
+
stats_config=get_stats_config())
|
|
271
|
+
|
|
263
272
|
@app.route('/stats')
|
|
264
273
|
def stats():
|
|
265
274
|
"""Renders the stats page."""
|
|
@@ -269,6 +278,15 @@ def stats():
|
|
|
269
278
|
master_config=get_master_config(),
|
|
270
279
|
stats_config=get_stats_config())
|
|
271
280
|
|
|
281
|
+
@app.route('/goals')
|
|
282
|
+
def goals():
|
|
283
|
+
"""Renders the goals page."""
|
|
284
|
+
from GameSentenceMiner.util.configuration import get_master_config, get_stats_config
|
|
285
|
+
return render_template('goals.html',
|
|
286
|
+
config=get_config(),
|
|
287
|
+
master_config=get_master_config(),
|
|
288
|
+
stats_config=get_stats_config())
|
|
289
|
+
|
|
272
290
|
@app.route('/api/anki_earliest_date')
|
|
273
291
|
def anki_earliest_date():
|
|
274
292
|
"""Returns the timestamp of earliest available card in anki collection."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: GameSentenceMiner
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.18.0
|
|
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
|
|
@@ -163,6 +163,10 @@ If you encounter issues, please ask for help in my [Discord](https://discord.gg/
|
|
|
163
163
|
|
|
164
164
|
* https://github.com/Saplling/transparent-texthooker-overlay
|
|
165
165
|
|
|
166
|
+
* [exSTATic](https://github.com/KamWithK/exSTATic) for inspiration for GSM's Stats.
|
|
167
|
+
|
|
168
|
+
* [Kanji Grid](https://github.com/Kuuuube/kanjigrid)
|
|
169
|
+
|
|
166
170
|
## Donations
|
|
167
171
|
|
|
168
172
|
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).
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
GameSentenceMiner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
GameSentenceMiner/anki.py,sha256=
|
|
3
|
-
GameSentenceMiner/
|
|
4
|
-
GameSentenceMiner/
|
|
5
|
-
GameSentenceMiner/
|
|
6
|
-
GameSentenceMiner/
|
|
7
|
-
GameSentenceMiner/vad.py,sha256=cujto_lzAuljldBBnve4JuK54tInWVGSp7NGg-xkaCY,19830
|
|
2
|
+
GameSentenceMiner/anki.py,sha256=TgLJIGZq6qPfmXV378BzG_SEnL6KvHK74u4ztTggzbM,31139
|
|
3
|
+
GameSentenceMiner/gametext.py,sha256=FBL3kgJ71hCg5Nczuo9dAEi_sLGdVIGgvc62bT5KhCc,10691
|
|
4
|
+
GameSentenceMiner/gsm.py,sha256=0hEpEBDbI9FtiKtHeyrSLKV1nys-mKTKfxLY0Dk7mOQ,36387
|
|
5
|
+
GameSentenceMiner/obs.py,sha256=R2Rsq2rMnWIoIb4tArTY7oAFIsyxfp1Nf-XnX_E95io,35858
|
|
6
|
+
GameSentenceMiner/vad.py,sha256=dhZpbTsVI4scqXZ0M701BenUur0EzYM96tnyGXo8iI0,21021
|
|
8
7
|
GameSentenceMiner/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
GameSentenceMiner/ai/ai_prompting.py,sha256=
|
|
8
|
+
GameSentenceMiner/ai/ai_prompting.py,sha256=mq9Odv_FpohXagU-OoSZbLWttdrEl1M1NiqnodeUpD8,29126
|
|
10
9
|
GameSentenceMiner/assets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
10
|
GameSentenceMiner/assets/icon.png,sha256=9GRL8uXUAgkUSlvbm9Pv9o2poFVRGdW6s2ub_DeUD9M,937624
|
|
12
11
|
GameSentenceMiner/assets/icon128.png,sha256=l90j7biwdz5ahwOd5wZ-406ryEV9Pan93dquJQ3e1CI,18395
|
|
@@ -15,14 +14,14 @@ GameSentenceMiner/assets/icon32.png,sha256=Kww0hU_qke9_22wBuO_Nq0Dv2SfnOLwMhCyGg
|
|
|
15
14
|
GameSentenceMiner/assets/icon512.png,sha256=HxUj2GHjyQsk8NV433256UxU9phPhtjCY-YB_7W4sqs,192487
|
|
16
15
|
GameSentenceMiner/assets/icon64.png,sha256=N8xgdZXvhqVQP9QUK3wX5iqxX9LxHljD7c-Bmgim6tM,9301
|
|
17
16
|
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=
|
|
17
|
+
GameSentenceMiner/locales/en_us.json,sha256=FMoG9Nggx3G48ydy9bXgEBwQv9lxb4UZI7WzXatdBtY,28202
|
|
18
|
+
GameSentenceMiner/locales/ja_jp.json,sha256=ilCa04D4MbtCc2dlnij_a5qpZ_ity4CLtmSrRJ2h_7M,30172
|
|
19
|
+
GameSentenceMiner/locales/zh_cn.json,sha256=tFhxETRemkhFOcNIF_1R4TiFDdKHrSqq8BoIbZ5KoHc,26190
|
|
21
20
|
GameSentenceMiner/ocr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
21
|
GameSentenceMiner/ocr/gsm_ocr_config.py,sha256=Ov04c-nKzh3sADxO-5JyZWVe4DlrHM9edM9tc7-97Jo,5970
|
|
23
22
|
GameSentenceMiner/ocr/ocrconfig.py,sha256=_tY8mjnzHMJrLS8E5pHqYXZjMuLoGKYgJwdhYgN-ny4,6466
|
|
24
23
|
GameSentenceMiner/ocr/owocr_area_selector.py,sha256=4MjItlaZ78Smxa3uxMxbjU0n2z_IBTG-iBpDB9COSL8,29270
|
|
25
|
-
GameSentenceMiner/ocr/owocr_helper.py,sha256=
|
|
24
|
+
GameSentenceMiner/ocr/owocr_helper.py,sha256=GL16SZa48LwmVQ7xKYRtEgbj8V-7JwOfAHUw-CPwfp4,32370
|
|
26
25
|
GameSentenceMiner/ocr/ss_picker.py,sha256=0IhxUdaKruFpZyBL-8SpxWg7bPrlGpy3lhTcMMZ5rwo,5224
|
|
27
26
|
GameSentenceMiner/owocr/owocr/__init__.py,sha256=87hfN5u_PbL_onLfMACbc0F5j4KyIK9lKnRCj6oZgR0,49
|
|
28
27
|
GameSentenceMiner/owocr/owocr/__main__.py,sha256=XQaqZY99EKoCpU-gWQjNbTs7Kg17HvBVE7JY8LqIE0o,157
|
|
@@ -34,34 +33,38 @@ GameSentenceMiner/owocr/owocr/screen_coordinate_picker.py,sha256=Na6XStbQBtpQUSd
|
|
|
34
33
|
GameSentenceMiner/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
34
|
GameSentenceMiner/tools/audio_offset_selector.py,sha256=8Stk3BP-XVIuzRv9nl9Eqd2D-1yD3JrgU-CamBywJmY,8542
|
|
36
35
|
GameSentenceMiner/tools/furigana_filter_preview.py,sha256=BXv7FChPEJW_VeG5XYt6suAsMKVArsjr3cEduE9KhYg,13642
|
|
37
|
-
GameSentenceMiner/tools/ss_selector.py,sha256=
|
|
36
|
+
GameSentenceMiner/tools/ss_selector.py,sha256=ob2oJdiYreDMMau7CvsglpnhZ1CDnJqop3lV54-PjRo,4782
|
|
38
37
|
GameSentenceMiner/tools/window_transparency.py,sha256=GtbxbmZg0-UYPXhfHff-7IKZyY2DKe4B9GdyovfmpeM,8166
|
|
38
|
+
GameSentenceMiner/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
+
GameSentenceMiner/ui/anki_confirmation.py,sha256=m27IcWbUwb6o6Klh3NwXBc2FtMX9Da3vbLc2Bdht1G8,8593
|
|
40
|
+
GameSentenceMiner/ui/config_gui.py,sha256=Nt6uuJrinOrSpDdrw92zdd1GvyQNjOoGvkZQdGWA9ds,151913
|
|
41
|
+
GameSentenceMiner/ui/screenshot_selector.py,sha256=AKML87MpgYQeSuj1F10GngpNrn9qp06zLLzNRwrQWM8,8900
|
|
39
42
|
GameSentenceMiner/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
GameSentenceMiner/util/configuration.py,sha256=
|
|
41
|
-
GameSentenceMiner/util/db.py,sha256=
|
|
43
|
+
GameSentenceMiner/util/configuration.py,sha256=K3NIcqwMtAgB_ZytucTgBgDqV1243yrWM5mp5qj2WlE,46577
|
|
44
|
+
GameSentenceMiner/util/db.py,sha256=3Fs75pGJyf8-3y3k6Zfpgp8z9tYL9-ZvQUk_FgDc9Vw,28664
|
|
42
45
|
GameSentenceMiner/util/electron_config.py,sha256=KfeJToeFFVw0IR5MKa-gBzpzaGrU-lyJbR9z-sDEHYU,8767
|
|
43
|
-
GameSentenceMiner/util/ffmpeg.py,sha256=
|
|
44
|
-
GameSentenceMiner/util/get_overlay_coords.py,sha256=
|
|
45
|
-
GameSentenceMiner/util/gsm_utils.py,sha256=
|
|
46
|
+
GameSentenceMiner/util/ffmpeg.py,sha256=cAzztfY36Xf2WvsJDjavoiMOvA9ac2GVdCrSB4LzHk4,29007
|
|
47
|
+
GameSentenceMiner/util/get_overlay_coords.py,sha256=aYmSxJzyCeIRLNEwL2V8GxMVIsj8qvUv4ysE4YxpWNM,22144
|
|
48
|
+
GameSentenceMiner/util/gsm_utils.py,sha256=mASECTmN10c2yPL4NEfLg0Y0YWwFso1i6r_hhJPR3MY,10974
|
|
46
49
|
GameSentenceMiner/util/model.py,sha256=R-_RYTYLSDNgBoVTPuPBcIHeOznIqi_vBzQ7VQ20WYk,6727
|
|
47
50
|
GameSentenceMiner/util/notification.py,sha256=YBhf_mSo_i3cjBz-pmeTPx3wchKiG9BK2VBdZSa2prQ,4597
|
|
48
|
-
GameSentenceMiner/util/text_log.py,sha256=
|
|
51
|
+
GameSentenceMiner/util/text_log.py,sha256=ZR98XFiOx9OWbZz5DzviHLjbg-j01OnPtIj6MnSfFU4,6877
|
|
49
52
|
GameSentenceMiner/util/communication/__init__.py,sha256=xh__yn2MhzXi9eLi89PeZWlJPn-cbBSjskhi1BRraXg,643
|
|
50
53
|
GameSentenceMiner/util/communication/send.py,sha256=Wki9qIY2CgYnuHbmnyKVIYkcKAN_oYS4up93XMikBaI,222
|
|
51
54
|
GameSentenceMiner/util/communication/websocket.py,sha256=Zpnqsy8RUeYxMFNGVUaPrWrlbAHjuNxCsn908iWL_kU,3344
|
|
52
55
|
GameSentenceMiner/util/downloader/Untitled_json.py,sha256=RUUl2bbbCpUDUUS0fP0tdvf5FngZ7ILdA_J5TFYAXUQ,15272
|
|
53
56
|
GameSentenceMiner/util/downloader/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
-
GameSentenceMiner/util/downloader/download_tools.py,sha256=
|
|
57
|
+
GameSentenceMiner/util/downloader/download_tools.py,sha256=pcT-lQDAwEgEVIK1smwfysXGNWWMGnRT-Xu93Km_A6o,11529
|
|
55
58
|
GameSentenceMiner/util/downloader/oneocr_dl.py,sha256=l3s9Z-x1b57GX048o5h-MVv0UTZo4H-Q-zb-JREkMLI,10439
|
|
56
59
|
GameSentenceMiner/util/win10toast/__init__.py,sha256=6TL2w6rzNmpJEp6_v2cAJP_7ExA3UsKzwdM08pNcVfE,5341
|
|
57
60
|
GameSentenceMiner/util/win10toast/__main__.py,sha256=5MYnBcFj8y_6Dyc1kiPd0_FsUuh4yl1cv5wsleU6V4w,668
|
|
58
61
|
GameSentenceMiner/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
-
GameSentenceMiner/web/database_api.py,sha256=
|
|
62
|
+
GameSentenceMiner/web/database_api.py,sha256=pY1j8b1H5VdkDv5aaZjBnpx4tSNfJhfsuukyty6jbi0,84812
|
|
60
63
|
GameSentenceMiner/web/events.py,sha256=6Vyz5c9MdpMIa7Zqljqhap2XFQnAVYJ0CdQV64TSZsA,5119
|
|
61
64
|
GameSentenceMiner/web/gsm_websocket.py,sha256=B0VKpxmsRu0WRh5nFWlpDPBQ6-K2ed7TEIa0O6YWeoo,4166
|
|
62
65
|
GameSentenceMiner/web/service.py,sha256=YZchmScTn7AX_GkwV1ULEK6qjdOnJcpc3qfMwDf7cUE,5363
|
|
63
|
-
GameSentenceMiner/web/stats.py,sha256=
|
|
64
|
-
GameSentenceMiner/web/texthooking_page.py,sha256=
|
|
66
|
+
GameSentenceMiner/web/stats.py,sha256=zIK0ZzyInvvlJh87KhAKYl2CCuMJWW6Wyv7UssURFbE,22366
|
|
67
|
+
GameSentenceMiner/web/texthooking_page.py,sha256=f_-oqyb4NoU4ZrveDkPhGbHR4REdYiceceohKDq2e_I,15253
|
|
65
68
|
GameSentenceMiner/web/static/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
69
|
GameSentenceMiner/web/static/apple-touch-icon.png,sha256=OcMI8af_68DA_tweOsQ5LytTyMwm7-hPW07IfrOVgEs,46132
|
|
67
70
|
GameSentenceMiner/web/static/favicon-96x96.png,sha256=lOePzjiKl1JY2J1kT_PMdyEnrlJmi5GWbmXJunM12B4,16502
|
|
@@ -71,28 +74,35 @@ GameSentenceMiner/web/static/site.webmanifest,sha256=kaeNT-FjFt-T7JGzOhXH7YSqsrD
|
|
|
71
74
|
GameSentenceMiner/web/static/style.css,sha256=bPZK0NVMuyRl5NNDuT7ZTzVLKlvSsdmeVHmAW4y5FM0,7001
|
|
72
75
|
GameSentenceMiner/web/static/web-app-manifest-192x192.png,sha256=EfSNnBmsSaLfESbkGfYwbKzcjKOdzuWo18ABADfN974,51117
|
|
73
76
|
GameSentenceMiner/web/static/web-app-manifest-512x512.png,sha256=wyqgCWCrLEUxSRXmaA3iJEESd-vM-ZmlTtZFBY4V8Pk,230819
|
|
74
|
-
GameSentenceMiner/web/static/css/
|
|
77
|
+
GameSentenceMiner/web/static/css/dashboard-shared.css,sha256=qWE6OXcMyVJrCd-UO2jQEq-6sPkJJDA4rJsrpfeodMU,5392
|
|
78
|
+
GameSentenceMiner/web/static/css/kanji-grid.css,sha256=NzJg0Y85mMn4y0Ri5PPm7ATyIgfwGhTHDETQGogzeFM,4328
|
|
79
|
+
GameSentenceMiner/web/static/css/overview.css,sha256=FW1ZKLbMRvCm2do0Z5dfzA4sYLQkCTJuLO77aUiJIYU,16313
|
|
80
|
+
GameSentenceMiner/web/static/css/popups-shared.css,sha256=OMbDk6rF5spkFp2Zk3CkkE84Sl4RP4H4h-AhA8lCjhM,2393
|
|
75
81
|
GameSentenceMiner/web/static/css/search.css,sha256=x06xsErfThUpE1NAG4CA2sCPSZ-ofNWEI_ekV2Ok5hY,253
|
|
76
|
-
GameSentenceMiner/web/static/css/shared.css,sha256=
|
|
77
|
-
GameSentenceMiner/web/static/css/stats.css,sha256=
|
|
78
|
-
GameSentenceMiner/web/static/js/anki_stats.js,sha256=
|
|
79
|
-
GameSentenceMiner/web/static/js/database.js,sha256
|
|
80
|
-
GameSentenceMiner/web/static/js/
|
|
82
|
+
GameSentenceMiner/web/static/css/shared.css,sha256=qIah6fFXr7ckRxnHSMfT79qu_tJ67fN-fCcDpU4exHA,19589
|
|
83
|
+
GameSentenceMiner/web/static/css/stats.css,sha256=MJTzhC0gjRa9szN5ZpZSOwiXAuwr5nGoA2AplYGhw68,16670
|
|
84
|
+
GameSentenceMiner/web/static/js/anki_stats.js,sha256=ZZqvqvePan9w17Nry7ui1ozR0SM0lAjfvZNI4XDPSzU,6871
|
|
85
|
+
GameSentenceMiner/web/static/js/database.js,sha256=Yz72C0u2KbL8w9mkenNzeBi_v8mZrMyM3dEsxps7r5E,31133
|
|
86
|
+
GameSentenceMiner/web/static/js/goals.js,sha256=PaJNS1jR1pIpBxYrI8Gog6XFQNPrnbaNWZ1QX7JVlAo,30938
|
|
87
|
+
GameSentenceMiner/web/static/js/kanji-grid.js,sha256=k9y25X4TvFYi2CEO7cusrcFVSQRBFWAT1LQ3zJhewYc,16365
|
|
88
|
+
GameSentenceMiner/web/static/js/overview.js,sha256=V9doaiu8axN5xl6cA0d7lAjc4R56W66XP7pnIFI0gr0,51858
|
|
81
89
|
GameSentenceMiner/web/static/js/search.js,sha256=QrjsVXf90c1LzD09TPaK93RbIN9yEiXF8IKAKrDY4hw,10482
|
|
82
|
-
GameSentenceMiner/web/static/js/shared.js,sha256=
|
|
83
|
-
GameSentenceMiner/web/static/js/stats.js,sha256=
|
|
84
|
-
GameSentenceMiner/web/templates/anki_stats.html,sha256=
|
|
85
|
-
GameSentenceMiner/web/templates/database.html,sha256=
|
|
86
|
-
GameSentenceMiner/web/templates/
|
|
90
|
+
GameSentenceMiner/web/static/js/shared.js,sha256=ZNibQkJxdypg93uMhmr_NEgoT5hJfxikzF6RKGz5Wy0,20416
|
|
91
|
+
GameSentenceMiner/web/static/js/stats.js,sha256=kfJ756a9JPK8l9S8YUldxXuICAGMIHMGaDoJCKpjfEs,35604
|
|
92
|
+
GameSentenceMiner/web/templates/anki_stats.html,sha256=0Y5lT-wGlliqgWHx9bgRZyiT_y2p-kqZcBA-ufwzR48,12715
|
|
93
|
+
GameSentenceMiner/web/templates/database.html,sha256=fwqNfS4yX_LOXAMCSL3ieuuvzWz8KuwXizFplPFyzSs,17972
|
|
94
|
+
GameSentenceMiner/web/templates/goals.html,sha256=kYUIteYzIArDWyZguuNzJScwMrrezWjFXxreU-LzzRk,21755
|
|
95
|
+
GameSentenceMiner/web/templates/index.html,sha256=y1mrlcKWRdwmfBP8B06p1CBk1avAJOr32388nX8YX4A,229074
|
|
96
|
+
GameSentenceMiner/web/templates/overview.html,sha256=mSlASGqiRO4oUsUDIhZhaPhFF396_xjE5sMJKtLmhqQ,23924
|
|
87
97
|
GameSentenceMiner/web/templates/search.html,sha256=nao3M_hAbm5ftzThi91NtQ3ZiINMPUNx4ngFmqLnLQ4,4060
|
|
88
|
-
GameSentenceMiner/web/templates/stats.html,sha256=
|
|
98
|
+
GameSentenceMiner/web/templates/stats.html,sha256=IOOFK3DXa3UVSrTLR_kLLNl6iy3ei-_C4EGqdbvZCos,22811
|
|
89
99
|
GameSentenceMiner/web/templates/utility.html,sha256=KtqnZUMAYs5XsEdC9Tlsd40NKAVic0mu6sh-ReMDJpU,16940
|
|
90
|
-
GameSentenceMiner/web/templates/components/navigation.html,sha256=
|
|
100
|
+
GameSentenceMiner/web/templates/components/navigation.html,sha256=7FGv59-4QocYy3b_BolkPXsp2drwwLjHraL5GUM27b4,1165
|
|
91
101
|
GameSentenceMiner/web/templates/components/theme-styles.html,sha256=hiq3zdJljpRjQO1iUA7gfFKwXebltG-IWW-gnKS4GHA,3439
|
|
92
102
|
GameSentenceMiner/wip/__init___.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
gamesentenceminer-2.
|
|
94
|
-
gamesentenceminer-2.
|
|
95
|
-
gamesentenceminer-2.
|
|
96
|
-
gamesentenceminer-2.
|
|
97
|
-
gamesentenceminer-2.
|
|
98
|
-
gamesentenceminer-2.
|
|
103
|
+
gamesentenceminer-2.18.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
104
|
+
gamesentenceminer-2.18.0.dist-info/METADATA,sha256=O4oqrmEnz5k4p6I1H8etRvYGRE8XBkG0T95KEZ3o_Us,7487
|
|
105
|
+
gamesentenceminer-2.18.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
106
|
+
gamesentenceminer-2.18.0.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
|
|
107
|
+
gamesentenceminer-2.18.0.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
|
|
108
|
+
gamesentenceminer-2.18.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|