meeting-noter 1.3.0__py3-none-any.whl → 2.0.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.
Potentially problematic release.
This version of meeting-noter might be problematic. Click here for more details.
- meeting_noter/__init__.py +1 -1
- meeting_noter/cli.py +61 -0
- meeting_noter/daemon.py +38 -0
- meeting_noter/mic_monitor.py +29 -1
- meeting_noter/ui/__init__.py +5 -0
- meeting_noter/ui/app.py +68 -0
- meeting_noter/ui/screens/__init__.py +17 -0
- meeting_noter/ui/screens/logs.py +166 -0
- meeting_noter/ui/screens/main.py +346 -0
- meeting_noter/ui/screens/recordings.py +241 -0
- meeting_noter/ui/screens/search.py +191 -0
- meeting_noter/ui/screens/settings.py +184 -0
- meeting_noter/ui/screens/viewer.py +116 -0
- meeting_noter/ui/styles/app.tcss +257 -0
- meeting_noter/ui/widgets/__init__.py +1 -0
- {meeting_noter-1.3.0.dist-info → meeting_noter-2.0.0.dist-info}/METADATA +2 -1
- {meeting_noter-1.3.0.dist-info → meeting_noter-2.0.0.dist-info}/RECORD +20 -9
- {meeting_noter-1.3.0.dist-info → meeting_noter-2.0.0.dist-info}/WHEEL +0 -0
- {meeting_noter-1.3.0.dist-info → meeting_noter-2.0.0.dist-info}/entry_points.txt +0 -0
- {meeting_noter-1.3.0.dist-info → meeting_noter-2.0.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/* Meeting Noter TUI Styles */
|
|
2
|
+
|
|
3
|
+
/* Base container styles */
|
|
4
|
+
#main-container,
|
|
5
|
+
#recordings-container,
|
|
6
|
+
#search-container,
|
|
7
|
+
#settings-container,
|
|
8
|
+
#viewer-container,
|
|
9
|
+
#logs-container {
|
|
10
|
+
padding: 1 2;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Title styling */
|
|
14
|
+
.title {
|
|
15
|
+
text-align: center;
|
|
16
|
+
text-style: bold;
|
|
17
|
+
padding: 1 0;
|
|
18
|
+
color: $accent;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Section headers */
|
|
22
|
+
.section-header {
|
|
23
|
+
margin-top: 1;
|
|
24
|
+
margin-bottom: 0;
|
|
25
|
+
color: $text-muted;
|
|
26
|
+
text-align: center;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* Spacers */
|
|
30
|
+
.spacer {
|
|
31
|
+
height: 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.spacer-large {
|
|
35
|
+
height: 2;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/* Main content area */
|
|
39
|
+
.main-content {
|
|
40
|
+
align: center middle;
|
|
41
|
+
padding: 2;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Centered input section */
|
|
45
|
+
.input-section {
|
|
46
|
+
width: auto;
|
|
47
|
+
height: auto;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Centered input rows */
|
|
51
|
+
.centered-input-row {
|
|
52
|
+
height: 3;
|
|
53
|
+
width: auto;
|
|
54
|
+
align: center middle;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.centered-switch-row {
|
|
58
|
+
height: 3;
|
|
59
|
+
width: auto;
|
|
60
|
+
align: center middle;
|
|
61
|
+
margin-top: 1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.input-label {
|
|
65
|
+
width: 18;
|
|
66
|
+
text-align: right;
|
|
67
|
+
padding-right: 1;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.meeting-input {
|
|
71
|
+
width: 30;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Centered button rows */
|
|
75
|
+
.centered-button-row {
|
|
76
|
+
height: 3;
|
|
77
|
+
width: auto;
|
|
78
|
+
align: center middle;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.centered-button-row Button {
|
|
82
|
+
margin: 0 1;
|
|
83
|
+
min-width: 16;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Old input rows (for backwards compat) */
|
|
87
|
+
.input-row {
|
|
88
|
+
height: 3;
|
|
89
|
+
margin: 1 0;
|
|
90
|
+
align: center middle;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.input-row Label {
|
|
94
|
+
width: 16;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.input-row Input {
|
|
98
|
+
width: 40;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Switch rows */
|
|
102
|
+
.switch-row {
|
|
103
|
+
height: 3;
|
|
104
|
+
margin: 1 0;
|
|
105
|
+
align: center middle;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.switch-row Label {
|
|
109
|
+
width: 18;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* Button rows */
|
|
113
|
+
.button-row {
|
|
114
|
+
height: 3;
|
|
115
|
+
margin: 1 0;
|
|
116
|
+
align: center middle;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.button-row Button {
|
|
120
|
+
margin: 0 1;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Navigation row */
|
|
124
|
+
.nav-row {
|
|
125
|
+
height: 3;
|
|
126
|
+
margin: 1 0;
|
|
127
|
+
align: center middle;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.nav-row Button {
|
|
131
|
+
margin: 0 1;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* Search row */
|
|
135
|
+
.search-row {
|
|
136
|
+
height: 3;
|
|
137
|
+
margin: 1 0;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.search-row Input {
|
|
141
|
+
width: 1fr;
|
|
142
|
+
margin-right: 1;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* Options row */
|
|
146
|
+
.options-row {
|
|
147
|
+
height: 3;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Settings form */
|
|
151
|
+
.settings-form {
|
|
152
|
+
padding: 1 2;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.setting-row {
|
|
156
|
+
height: 3;
|
|
157
|
+
margin: 0 0 1 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.setting-label {
|
|
161
|
+
width: 22;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.setting-input {
|
|
165
|
+
width: 1fr;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* DataTable */
|
|
169
|
+
DataTable {
|
|
170
|
+
height: 1fr;
|
|
171
|
+
scrollbar-gutter: stable;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
DataTable > .datatable--cursor {
|
|
175
|
+
background: $accent 30%;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* ListView */
|
|
179
|
+
ListView {
|
|
180
|
+
height: 1fr;
|
|
181
|
+
border: solid $primary;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
ListView > ListItem {
|
|
185
|
+
padding: 0 1;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
ListView > ListItem.--highlight {
|
|
189
|
+
background: $accent 30%;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/* RichLog */
|
|
193
|
+
RichLog {
|
|
194
|
+
height: 1fr;
|
|
195
|
+
border: solid $primary;
|
|
196
|
+
scrollbar-gutter: stable;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* Live transcript display */
|
|
200
|
+
#live-transcript {
|
|
201
|
+
height: 10;
|
|
202
|
+
min-height: 6;
|
|
203
|
+
max-height: 15;
|
|
204
|
+
border: solid $primary;
|
|
205
|
+
margin: 0 2;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
#live-header {
|
|
209
|
+
margin-top: 1;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* TextArea */
|
|
213
|
+
TextArea {
|
|
214
|
+
height: 1fr;
|
|
215
|
+
border: solid $primary;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/* Status display */
|
|
219
|
+
#status {
|
|
220
|
+
border: solid $primary;
|
|
221
|
+
padding: 1 2;
|
|
222
|
+
margin: 1 4;
|
|
223
|
+
height: auto;
|
|
224
|
+
min-height: 5;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
/* Status label */
|
|
228
|
+
#status-label {
|
|
229
|
+
text-align: center;
|
|
230
|
+
margin-top: 1;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/* File info label */
|
|
234
|
+
#file-info {
|
|
235
|
+
text-align: center;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
/* Results header/footer */
|
|
239
|
+
#results-header,
|
|
240
|
+
#results-footer {
|
|
241
|
+
text-align: center;
|
|
242
|
+
margin: 1 0;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/* Select widget */
|
|
246
|
+
Select {
|
|
247
|
+
width: 30;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* Button styling - prevent text selection appearance */
|
|
251
|
+
Button {
|
|
252
|
+
text-style: bold;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
Button:focus {
|
|
256
|
+
text-style: bold;
|
|
257
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""UI Widgets for Meeting Noter."""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meeting-noter
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0
|
|
4
4
|
Summary: Offline meeting transcription for macOS with automatic meeting detection
|
|
5
5
|
Author: Victor
|
|
6
6
|
License: MIT
|
|
@@ -27,6 +27,7 @@ Requires-Dist: sounddevice>=0.4.6
|
|
|
27
27
|
Requires-Dist: numpy>=1.24
|
|
28
28
|
Requires-Dist: faster-whisper>=1.0.0
|
|
29
29
|
Requires-Dist: imageio-ffmpeg>=0.4.9
|
|
30
|
+
Requires-Dist: textual>=0.47.0
|
|
30
31
|
Requires-Dist: pyobjc-framework-Cocoa>=9.0; sys_platform == "darwin"
|
|
31
32
|
Requires-Dist: pyobjc-framework-Quartz>=9.0; sys_platform == "darwin"
|
|
32
33
|
Requires-Dist: pyobjc-framework-ScreenCaptureKit>=9.0; sys_platform == "darwin"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
meeting_noter/__init__.py,sha256=
|
|
1
|
+
meeting_noter/__init__.py,sha256=UpvJiLNpsDsoEbxhb6uqsVi1Sa0aUY4BvxWHfaYcBXg,103
|
|
2
2
|
meeting_noter/__main__.py,sha256=6sSOqH1o3jvgvkVzsVKmF6-xVGcUAbNVQkRl2CrygdE,120
|
|
3
|
-
meeting_noter/cli.py,sha256=
|
|
3
|
+
meeting_noter/cli.py,sha256=m9oHXqRLM8nilFRNaPcVgNOyflmBV9qQ6YHQZmGMG0I,36790
|
|
4
4
|
meeting_noter/config.py,sha256=vdnTh6W6-DUPJCj0ekFu1Q1m87O7gx0QD3E5DrRGpXk,7537
|
|
5
|
-
meeting_noter/daemon.py,sha256=
|
|
5
|
+
meeting_noter/daemon.py,sha256=i81IXgEnsoAoMewknySO5_ECa1nCGOsVLfXtJXJf0rw,21611
|
|
6
6
|
meeting_noter/meeting_detector.py,sha256=St0qoMkvUERP4BaxnXO1M6fZDJpWqBf9In7z2SgWcWg,10564
|
|
7
|
-
meeting_noter/mic_monitor.py,sha256=
|
|
7
|
+
meeting_noter/mic_monitor.py,sha256=SIsgb8X6uhYuA0CgsRhTjYi8aA-oSUm9vL0r_kQki3g,17239
|
|
8
8
|
meeting_noter/update_checker.py,sha256=sMmIiiZJL6K7wqLWE64Aj4hS8uspjUOirr6BG_IlL1I,1701
|
|
9
9
|
meeting_noter/audio/__init__.py,sha256=O7PU8CxHSHxMeHbc9Jdwt9kePLQzsPh81GQU7VHCtBY,44
|
|
10
10
|
meeting_noter/audio/capture.py,sha256=fDrT5oXfva8vdFlht9cv60NviKbksw2QeJ8eOtI19uE,6469
|
|
@@ -28,8 +28,19 @@ meeting_noter/resources/icon_64.png,sha256=TqG7Awx3kK8YdiX1e_z1odZonosZyQI2trlkN
|
|
|
28
28
|
meeting_noter/transcription/__init__.py,sha256=7GY9diP06DzFyoli41wddbrPv5bVDzH35bmnWlIJev4,29
|
|
29
29
|
meeting_noter/transcription/engine.py,sha256=G9NcSS6Q-UhW7PlQ0E85hQXn6BWao64nIvyw4NR2yxI,7208
|
|
30
30
|
meeting_noter/transcription/live_transcription.py,sha256=YfojFWv4h3Lp-pK5tjIauvimCWAmDhj6pj5gUmyBxr4,9539
|
|
31
|
-
meeting_noter
|
|
32
|
-
meeting_noter
|
|
33
|
-
meeting_noter
|
|
34
|
-
meeting_noter
|
|
35
|
-
meeting_noter
|
|
31
|
+
meeting_noter/ui/__init__.py,sha256=iK31upnYwlfQ4fB2laAlR2EqXLFTAgCxq0PU6AvfZ38,130
|
|
32
|
+
meeting_noter/ui/app.py,sha256=GSElpPMqYK8aJOgT5R4DX5N5yTzPD9iswnU2m8oOVcw,2272
|
|
33
|
+
meeting_noter/ui/screens/__init__.py,sha256=oiSNVk39W8zzvxleCIwApZWWV1CP1NKcaUhl801trVg,520
|
|
34
|
+
meeting_noter/ui/screens/logs.py,sha256=zO7TDcpzkU8DdKbHhhfvkI5WCc46dsiGcPe9n1Oix4g,5797
|
|
35
|
+
meeting_noter/ui/screens/main.py,sha256=wQO6mke2ox885ybekAun5fb1T5DbC9gET5cDiCqy54E,12501
|
|
36
|
+
meeting_noter/ui/screens/recordings.py,sha256=P-GDcklAEZPNaerrT5aNV73boJ2xwAUirnH-7phUTX0,7677
|
|
37
|
+
meeting_noter/ui/screens/search.py,sha256=seJUSFYzaFjJGiPRMz9FctdgovTjkOMl8KDGBRP-FX0,6590
|
|
38
|
+
meeting_noter/ui/screens/settings.py,sha256=Zb9-1rkPap1oUNcu4SJcOIemI8DmVC_5uqMd_MbLaCM,7247
|
|
39
|
+
meeting_noter/ui/screens/viewer.py,sha256=5LVhghDcpshlisCrygk9H3uwOh48vmonMd8d4NH77hU,3991
|
|
40
|
+
meeting_noter/ui/styles/app.tcss,sha256=-uE-1mE3oqKBZW1-pySmOZhK9oxjEQqcG7LDprwxBg4,3396
|
|
41
|
+
meeting_noter/ui/widgets/__init__.py,sha256=6aVXLDGFXL9PnX5bCnMAqRqOvsv4VuzK_T2UTySQlTg,36
|
|
42
|
+
meeting_noter-2.0.0.dist-info/METADATA,sha256=_t77Osf039ZI_VOKMgOsk-OGcBe0SX950SUpsHvVzmY,6970
|
|
43
|
+
meeting_noter-2.0.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
44
|
+
meeting_noter-2.0.0.dist-info/entry_points.txt,sha256=osZoOmm-UBPCJ4b6DGH6JOAm7mofM2fK06eK6blplmg,83
|
|
45
|
+
meeting_noter-2.0.0.dist-info/top_level.txt,sha256=9Tuq04_0SXM0OXOHVbOHkHkB5tG3fqkrMrfzCMpbLpY,14
|
|
46
|
+
meeting_noter-2.0.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|