talklib 3.7.8__tar.gz → 3.7.10__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.
- {talklib-3.7.8/src/talklib.egg-info → talklib-3.7.10}/PKG-INFO +30 -8
- {talklib-3.7.8 → talklib-3.7.10}/README.md +27 -5
- {talklib-3.7.8 → talklib-3.7.10}/pyproject.toml +1 -1
- {talklib-3.7.8 → talklib-3.7.10}/requirements.txt +2 -2
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/pod.py +8 -10
- {talklib-3.7.8 → talklib-3.7.10/src/talklib.egg-info}/PKG-INFO +30 -8
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib.egg-info/requires.txt +2 -2
- {talklib-3.7.8 → talklib-3.7.10}/LICENSE.txt +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/setup.cfg +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/__init__.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/cli.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/ev.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/ffmpeg.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/notify.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/show.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib/utils.py +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib.egg-info/SOURCES.txt +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib.egg-info/dependency_links.txt +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib.egg-info/entry_points.txt +0 -0
- {talklib-3.7.8 → talklib-3.7.10}/src/talklib.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: talklib
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.10
|
|
4
4
|
Summary: A package to automate processing of shows/segments airing on the TL
|
|
5
5
|
Author-email: Ben Weddle <ben.weddle@gmail.com>
|
|
6
6
|
Maintainer-email: Ben Weddle <ben.weddle@gmail.com>
|
|
@@ -54,7 +54,7 @@ Requires-Dist: pycparser==2.22
|
|
|
54
54
|
Requires-Dist: pydantic==2.9.1
|
|
55
55
|
Requires-Dist: pydantic_core==2.23.3
|
|
56
56
|
Requires-Dist: Pygments==2.20.0
|
|
57
|
-
Requires-Dist: PyJWT==2.
|
|
57
|
+
Requires-Dist: PyJWT==2.15.1
|
|
58
58
|
Requires-Dist: PyNaCl==1.6.2
|
|
59
59
|
Requires-Dist: pyparsing==3.0.9
|
|
60
60
|
Requires-Dist: pyproject_hooks==1.0.0
|
|
@@ -73,7 +73,7 @@ Requires-Dist: tomli==2.0.1
|
|
|
73
73
|
Requires-Dist: twilio==9.0.2
|
|
74
74
|
Requires-Dist: twine==4.0.2
|
|
75
75
|
Requires-Dist: typing_extensions==4.15.0
|
|
76
|
-
Requires-Dist: urllib3==2.
|
|
76
|
+
Requires-Dist: urllib3==2.8.0
|
|
77
77
|
Requires-Dist: wrapt==1.16.0
|
|
78
78
|
Requires-Dist: yarl==1.22.0
|
|
79
79
|
Requires-Dist: zipp==3.23.0
|
|
@@ -108,7 +108,7 @@ This package automates two categories of things:
|
|
|
108
108
|
## Requirements<a id="requirements"></a>
|
|
109
109
|
|
|
110
110
|
### -[Python](https://www.python.org/downloads/)
|
|
111
|
-
Use Python 3.
|
|
111
|
+
Use Python 3.12 or higher.
|
|
112
112
|
|
|
113
113
|
Make sure to select "add to PATH" during installation.
|
|
114
114
|
|
|
@@ -249,7 +249,7 @@ required for all RSS or permalink shows
|
|
|
249
249
|
|
|
250
250
|
*required* for "local" shows
|
|
251
251
|
- tells the module whether this is a local show
|
|
252
|
-
-
|
|
252
|
+
- set to `True` if it is a local show (this needs to be deprecated!)
|
|
253
253
|
- default is `False`
|
|
254
254
|
|
|
255
255
|
`local_file`
|
|
@@ -274,7 +274,7 @@ required for "permalink" shows
|
|
|
274
274
|
|
|
275
275
|
optional
|
|
276
276
|
- whether or not you want to remove yesterday's files (if any exists)
|
|
277
|
-
- if set to `True`, it will delete any file matching the show_filename attribute you set.
|
|
277
|
+
- if set to `True`, it will delete any file matching the show_filename attribute you set. That is ANY file matching `<show_filename>*.wav`
|
|
278
278
|
- default is `False`.
|
|
279
279
|
|
|
280
280
|
`include_date`
|
|
@@ -283,7 +283,7 @@ optional
|
|
|
283
283
|
|
|
284
284
|
optional
|
|
285
285
|
- whether or not you want to include today's date in the filename
|
|
286
|
-
- if set to `True`, the date will be appended as such: `
|
|
286
|
+
- if set to `True`, the date will be appended as such: `WPMMDDYY.wav`
|
|
287
287
|
- if not set, or set to `False`, the resulting filename will be: `WP.wav`
|
|
288
288
|
- Generally, for TL programs, if it is a daily show, like the New York Times, etc., you need the date in the filename, as this is what WireReady will match.
|
|
289
289
|
- the default is `False`
|
|
@@ -349,6 +349,8 @@ optional
|
|
|
349
349
|
|
|
350
350
|
The minimum attributes you must set are `show`, `show_filename`, and `url`.
|
|
351
351
|
|
|
352
|
+
For RSS shows, the first `<item>` in the feed must have a `<pubDate>` containing today's date in `ddd, DD Mon YYYY` format (for example, `Wed, 07 Oct 2026`), using the date on the computer running the script. `TLShow` checks only the first item and retries the check up to three times. If that item is not dated today, processing stops without downloading audio or removing existing destination files, and an error notification is sent if notifications are enabled. The script does not search later items or fall back to an older episode.
|
|
353
|
+
|
|
352
354
|
Here is an example script:
|
|
353
355
|
|
|
354
356
|
````python
|
|
@@ -378,7 +380,7 @@ MWB = TLShow(
|
|
|
378
380
|
show = 'Magical World of Bees',
|
|
379
381
|
show_filename = 'MWB',
|
|
380
382
|
is_local = True,
|
|
381
|
-
local_file = 'D:Production\path\to\the\file.wav'
|
|
383
|
+
local_file = r'D:Production\path\to\the\file.wav'
|
|
382
384
|
)
|
|
383
385
|
|
|
384
386
|
MWB.run()
|
|
@@ -469,6 +471,19 @@ SD.run()
|
|
|
469
471
|
|
|
470
472
|
### Prerequisites
|
|
471
473
|
|
|
474
|
+
Podcast publishing and the podcast-related CLI commands connect to the Assets server over SSH/SFTP using the host alias `assets`. You must configure SSH prior to running any scripts.
|
|
475
|
+
|
|
476
|
+
Keep the SSH private key in the home directory under `~/.ssh`. In that same directory, create a file named `config` with a host entry like this, replacing the placeholders with your server hostname, username, and key filename:
|
|
477
|
+
|
|
478
|
+
````text
|
|
479
|
+
Host assets
|
|
480
|
+
HostName YOUR_ASSETS_SERVER_HOSTNAME
|
|
481
|
+
User YOUR_SSH_USERNAME
|
|
482
|
+
IdentityFile ~/.ssh/YOUR_PRIVATE_KEY_FILENAME
|
|
483
|
+
````
|
|
484
|
+
|
|
485
|
+
The `Host assets` alias must match the host used by `talklib`. Run `ssh assets` from on the PC to verify the connection before scheduling automation. For unattended runs, key authentication must work without an interactive password or passphrase prompt.
|
|
486
|
+
|
|
472
487
|
Before starting to podcast a new show, you must log in to the server, create a directory, and upload some files. The `talklib` CLI has several functions to help you with this. Run `talklib --help` in your terminal to see a list of these helper functions.
|
|
473
488
|
|
|
474
489
|
The directory should be named the same as the base name of the audio files for that show. For example, The Nashville Scene audio files are labelled as SceneMMDDYY. The directory name on the server should be `scene` in all lower-case.
|
|
@@ -602,3 +617,10 @@ nyt.run()
|
|
|
602
617
|
- You must be connected to the internet to run the tests.
|
|
603
618
|
- To update the version on PyPI, you must increment the version number in `pyproject.toml`
|
|
604
619
|
|
|
620
|
+
If you add or upgrade third-party packages, don't forget to update `requirements.txt` from your activated virtual environment:
|
|
621
|
+
|
|
622
|
+
````bash
|
|
623
|
+
pip freeze --exclude talklib > requirements.txt
|
|
624
|
+
````
|
|
625
|
+
|
|
626
|
+
The `--exclude talklib` option keeps this project's editable installation out of its own dependency list.
|
|
@@ -27,7 +27,7 @@ This package automates two categories of things:
|
|
|
27
27
|
## Requirements<a id="requirements"></a>
|
|
28
28
|
|
|
29
29
|
### -[Python](https://www.python.org/downloads/)
|
|
30
|
-
Use Python 3.
|
|
30
|
+
Use Python 3.12 or higher.
|
|
31
31
|
|
|
32
32
|
Make sure to select "add to PATH" during installation.
|
|
33
33
|
|
|
@@ -168,7 +168,7 @@ required for all RSS or permalink shows
|
|
|
168
168
|
|
|
169
169
|
*required* for "local" shows
|
|
170
170
|
- tells the module whether this is a local show
|
|
171
|
-
-
|
|
171
|
+
- set to `True` if it is a local show (this needs to be deprecated!)
|
|
172
172
|
- default is `False`
|
|
173
173
|
|
|
174
174
|
`local_file`
|
|
@@ -193,7 +193,7 @@ required for "permalink" shows
|
|
|
193
193
|
|
|
194
194
|
optional
|
|
195
195
|
- whether or not you want to remove yesterday's files (if any exists)
|
|
196
|
-
- if set to `True`, it will delete any file matching the show_filename attribute you set.
|
|
196
|
+
- if set to `True`, it will delete any file matching the show_filename attribute you set. That is ANY file matching `<show_filename>*.wav`
|
|
197
197
|
- default is `False`.
|
|
198
198
|
|
|
199
199
|
`include_date`
|
|
@@ -202,7 +202,7 @@ optional
|
|
|
202
202
|
|
|
203
203
|
optional
|
|
204
204
|
- whether or not you want to include today's date in the filename
|
|
205
|
-
- if set to `True`, the date will be appended as such: `
|
|
205
|
+
- if set to `True`, the date will be appended as such: `WPMMDDYY.wav`
|
|
206
206
|
- if not set, or set to `False`, the resulting filename will be: `WP.wav`
|
|
207
207
|
- Generally, for TL programs, if it is a daily show, like the New York Times, etc., you need the date in the filename, as this is what WireReady will match.
|
|
208
208
|
- the default is `False`
|
|
@@ -268,6 +268,8 @@ optional
|
|
|
268
268
|
|
|
269
269
|
The minimum attributes you must set are `show`, `show_filename`, and `url`.
|
|
270
270
|
|
|
271
|
+
For RSS shows, the first `<item>` in the feed must have a `<pubDate>` containing today's date in `ddd, DD Mon YYYY` format (for example, `Wed, 07 Oct 2026`), using the date on the computer running the script. `TLShow` checks only the first item and retries the check up to three times. If that item is not dated today, processing stops without downloading audio or removing existing destination files, and an error notification is sent if notifications are enabled. The script does not search later items or fall back to an older episode.
|
|
272
|
+
|
|
271
273
|
Here is an example script:
|
|
272
274
|
|
|
273
275
|
````python
|
|
@@ -297,7 +299,7 @@ MWB = TLShow(
|
|
|
297
299
|
show = 'Magical World of Bees',
|
|
298
300
|
show_filename = 'MWB',
|
|
299
301
|
is_local = True,
|
|
300
|
-
local_file = 'D:Production\path\to\the\file.wav'
|
|
302
|
+
local_file = r'D:Production\path\to\the\file.wav'
|
|
301
303
|
)
|
|
302
304
|
|
|
303
305
|
MWB.run()
|
|
@@ -388,6 +390,19 @@ SD.run()
|
|
|
388
390
|
|
|
389
391
|
### Prerequisites
|
|
390
392
|
|
|
393
|
+
Podcast publishing and the podcast-related CLI commands connect to the Assets server over SSH/SFTP using the host alias `assets`. You must configure SSH prior to running any scripts.
|
|
394
|
+
|
|
395
|
+
Keep the SSH private key in the home directory under `~/.ssh`. In that same directory, create a file named `config` with a host entry like this, replacing the placeholders with your server hostname, username, and key filename:
|
|
396
|
+
|
|
397
|
+
````text
|
|
398
|
+
Host assets
|
|
399
|
+
HostName YOUR_ASSETS_SERVER_HOSTNAME
|
|
400
|
+
User YOUR_SSH_USERNAME
|
|
401
|
+
IdentityFile ~/.ssh/YOUR_PRIVATE_KEY_FILENAME
|
|
402
|
+
````
|
|
403
|
+
|
|
404
|
+
The `Host assets` alias must match the host used by `talklib`. Run `ssh assets` from on the PC to verify the connection before scheduling automation. For unattended runs, key authentication must work without an interactive password or passphrase prompt.
|
|
405
|
+
|
|
391
406
|
Before starting to podcast a new show, you must log in to the server, create a directory, and upload some files. The `talklib` CLI has several functions to help you with this. Run `talklib --help` in your terminal to see a list of these helper functions.
|
|
392
407
|
|
|
393
408
|
The directory should be named the same as the base name of the audio files for that show. For example, The Nashville Scene audio files are labelled as SceneMMDDYY. The directory name on the server should be `scene` in all lower-case.
|
|
@@ -521,3 +536,10 @@ nyt.run()
|
|
|
521
536
|
- You must be connected to the internet to run the tests.
|
|
522
537
|
- To update the version on PyPI, you must increment the version number in `pyproject.toml`
|
|
523
538
|
|
|
539
|
+
If you add or upgrade third-party packages, don't forget to update `requirements.txt` from your activated virtual environment:
|
|
540
|
+
|
|
541
|
+
````bash
|
|
542
|
+
pip freeze --exclude talklib > requirements.txt
|
|
543
|
+
````
|
|
544
|
+
|
|
545
|
+
The `--exclude talklib` option keeps this project's editable installation out of its own dependency list.
|
|
@@ -42,7 +42,7 @@ pycparser==2.22
|
|
|
42
42
|
pydantic==2.9.1
|
|
43
43
|
pydantic_core==2.23.3
|
|
44
44
|
Pygments==2.20.0
|
|
45
|
-
PyJWT==2.
|
|
45
|
+
PyJWT==2.15.1
|
|
46
46
|
PyNaCl==1.6.2
|
|
47
47
|
pyparsing==3.0.9
|
|
48
48
|
pyproject_hooks==1.0.0
|
|
@@ -61,7 +61,7 @@ tomli==2.0.1
|
|
|
61
61
|
twilio==9.0.2
|
|
62
62
|
twine==4.0.2
|
|
63
63
|
typing_extensions==4.15.0
|
|
64
|
-
urllib3==2.
|
|
64
|
+
urllib3==2.8.0
|
|
65
65
|
wrapt==1.16.0
|
|
66
66
|
yarl==1.22.0
|
|
67
67
|
zipp==3.23.0
|
|
@@ -341,18 +341,16 @@ class Episode(BaseModel):
|
|
|
341
341
|
|
|
342
342
|
class TLPod(BaseModel):
|
|
343
343
|
'''
|
|
344
|
-
|
|
344
|
+
Everything should be in lower case!
|
|
345
345
|
|
|
346
|
-
display_name:
|
|
347
|
-
episode "Title" in the podcast feed. type=string
|
|
346
|
+
display_name: Generic name for the show/program. Will be displayed as the episode "Title" in the podcast feed.
|
|
348
347
|
|
|
349
|
-
filename_to_match:
|
|
350
|
-
|
|
348
|
+
filename_to_match: The base name of the show we want to match. Do not include the date.
|
|
349
|
+
For example, to match RollingStone091322, use 'RollingStone'.
|
|
351
350
|
|
|
352
|
-
bucket_folder:
|
|
353
|
-
should be lower case. type=string
|
|
351
|
+
bucket_folder: The name of the folder on the Assets server where the audio and RSS files are stored.
|
|
354
352
|
|
|
355
|
-
max_episodes_in_feed:
|
|
353
|
+
max_episodes_in_feed: The max number of episodes that should be in the feed after you add the episode.
|
|
356
354
|
'''
|
|
357
355
|
display_name: str = Field(min_length=1)
|
|
358
356
|
filename_to_match: str = Field(min_length=1)
|
|
@@ -370,7 +368,7 @@ class TLPod(BaseModel):
|
|
|
370
368
|
@model_validator(mode='after')
|
|
371
369
|
def post_update(self):
|
|
372
370
|
'''
|
|
373
|
-
|
|
371
|
+
The name of the bucket folder should match the base name of the file. If bucket_folder is not explicitly set
|
|
374
372
|
by the user, use the filename. However, if filename_override is being used, strip out the digits first.
|
|
375
373
|
'''
|
|
376
374
|
if not self.bucket_folder:
|
|
@@ -391,7 +389,7 @@ class TLPod(BaseModel):
|
|
|
391
389
|
|
|
392
390
|
@model_validator(mode='after')
|
|
393
391
|
def check_apache_assets_server(self):
|
|
394
|
-
'''
|
|
392
|
+
'''Check that the Assets server is reachable via HTTP and notify staff if not. Do not hault automation'''
|
|
395
393
|
url: str = "https://assets.library.nashville.gov"
|
|
396
394
|
req_get = requests.get(url=url)
|
|
397
395
|
req_post = requests.post(url=url)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: talklib
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.10
|
|
4
4
|
Summary: A package to automate processing of shows/segments airing on the TL
|
|
5
5
|
Author-email: Ben Weddle <ben.weddle@gmail.com>
|
|
6
6
|
Maintainer-email: Ben Weddle <ben.weddle@gmail.com>
|
|
@@ -54,7 +54,7 @@ Requires-Dist: pycparser==2.22
|
|
|
54
54
|
Requires-Dist: pydantic==2.9.1
|
|
55
55
|
Requires-Dist: pydantic_core==2.23.3
|
|
56
56
|
Requires-Dist: Pygments==2.20.0
|
|
57
|
-
Requires-Dist: PyJWT==2.
|
|
57
|
+
Requires-Dist: PyJWT==2.15.1
|
|
58
58
|
Requires-Dist: PyNaCl==1.6.2
|
|
59
59
|
Requires-Dist: pyparsing==3.0.9
|
|
60
60
|
Requires-Dist: pyproject_hooks==1.0.0
|
|
@@ -73,7 +73,7 @@ Requires-Dist: tomli==2.0.1
|
|
|
73
73
|
Requires-Dist: twilio==9.0.2
|
|
74
74
|
Requires-Dist: twine==4.0.2
|
|
75
75
|
Requires-Dist: typing_extensions==4.15.0
|
|
76
|
-
Requires-Dist: urllib3==2.
|
|
76
|
+
Requires-Dist: urllib3==2.8.0
|
|
77
77
|
Requires-Dist: wrapt==1.16.0
|
|
78
78
|
Requires-Dist: yarl==1.22.0
|
|
79
79
|
Requires-Dist: zipp==3.23.0
|
|
@@ -108,7 +108,7 @@ This package automates two categories of things:
|
|
|
108
108
|
## Requirements<a id="requirements"></a>
|
|
109
109
|
|
|
110
110
|
### -[Python](https://www.python.org/downloads/)
|
|
111
|
-
Use Python 3.
|
|
111
|
+
Use Python 3.12 or higher.
|
|
112
112
|
|
|
113
113
|
Make sure to select "add to PATH" during installation.
|
|
114
114
|
|
|
@@ -249,7 +249,7 @@ required for all RSS or permalink shows
|
|
|
249
249
|
|
|
250
250
|
*required* for "local" shows
|
|
251
251
|
- tells the module whether this is a local show
|
|
252
|
-
-
|
|
252
|
+
- set to `True` if it is a local show (this needs to be deprecated!)
|
|
253
253
|
- default is `False`
|
|
254
254
|
|
|
255
255
|
`local_file`
|
|
@@ -274,7 +274,7 @@ required for "permalink" shows
|
|
|
274
274
|
|
|
275
275
|
optional
|
|
276
276
|
- whether or not you want to remove yesterday's files (if any exists)
|
|
277
|
-
- if set to `True`, it will delete any file matching the show_filename attribute you set.
|
|
277
|
+
- if set to `True`, it will delete any file matching the show_filename attribute you set. That is ANY file matching `<show_filename>*.wav`
|
|
278
278
|
- default is `False`.
|
|
279
279
|
|
|
280
280
|
`include_date`
|
|
@@ -283,7 +283,7 @@ optional
|
|
|
283
283
|
|
|
284
284
|
optional
|
|
285
285
|
- whether or not you want to include today's date in the filename
|
|
286
|
-
- if set to `True`, the date will be appended as such: `
|
|
286
|
+
- if set to `True`, the date will be appended as such: `WPMMDDYY.wav`
|
|
287
287
|
- if not set, or set to `False`, the resulting filename will be: `WP.wav`
|
|
288
288
|
- Generally, for TL programs, if it is a daily show, like the New York Times, etc., you need the date in the filename, as this is what WireReady will match.
|
|
289
289
|
- the default is `False`
|
|
@@ -349,6 +349,8 @@ optional
|
|
|
349
349
|
|
|
350
350
|
The minimum attributes you must set are `show`, `show_filename`, and `url`.
|
|
351
351
|
|
|
352
|
+
For RSS shows, the first `<item>` in the feed must have a `<pubDate>` containing today's date in `ddd, DD Mon YYYY` format (for example, `Wed, 07 Oct 2026`), using the date on the computer running the script. `TLShow` checks only the first item and retries the check up to three times. If that item is not dated today, processing stops without downloading audio or removing existing destination files, and an error notification is sent if notifications are enabled. The script does not search later items or fall back to an older episode.
|
|
353
|
+
|
|
352
354
|
Here is an example script:
|
|
353
355
|
|
|
354
356
|
````python
|
|
@@ -378,7 +380,7 @@ MWB = TLShow(
|
|
|
378
380
|
show = 'Magical World of Bees',
|
|
379
381
|
show_filename = 'MWB',
|
|
380
382
|
is_local = True,
|
|
381
|
-
local_file = 'D:Production\path\to\the\file.wav'
|
|
383
|
+
local_file = r'D:Production\path\to\the\file.wav'
|
|
382
384
|
)
|
|
383
385
|
|
|
384
386
|
MWB.run()
|
|
@@ -469,6 +471,19 @@ SD.run()
|
|
|
469
471
|
|
|
470
472
|
### Prerequisites
|
|
471
473
|
|
|
474
|
+
Podcast publishing and the podcast-related CLI commands connect to the Assets server over SSH/SFTP using the host alias `assets`. You must configure SSH prior to running any scripts.
|
|
475
|
+
|
|
476
|
+
Keep the SSH private key in the home directory under `~/.ssh`. In that same directory, create a file named `config` with a host entry like this, replacing the placeholders with your server hostname, username, and key filename:
|
|
477
|
+
|
|
478
|
+
````text
|
|
479
|
+
Host assets
|
|
480
|
+
HostName YOUR_ASSETS_SERVER_HOSTNAME
|
|
481
|
+
User YOUR_SSH_USERNAME
|
|
482
|
+
IdentityFile ~/.ssh/YOUR_PRIVATE_KEY_FILENAME
|
|
483
|
+
````
|
|
484
|
+
|
|
485
|
+
The `Host assets` alias must match the host used by `talklib`. Run `ssh assets` from on the PC to verify the connection before scheduling automation. For unattended runs, key authentication must work without an interactive password or passphrase prompt.
|
|
486
|
+
|
|
472
487
|
Before starting to podcast a new show, you must log in to the server, create a directory, and upload some files. The `talklib` CLI has several functions to help you with this. Run `talklib --help` in your terminal to see a list of these helper functions.
|
|
473
488
|
|
|
474
489
|
The directory should be named the same as the base name of the audio files for that show. For example, The Nashville Scene audio files are labelled as SceneMMDDYY. The directory name on the server should be `scene` in all lower-case.
|
|
@@ -602,3 +617,10 @@ nyt.run()
|
|
|
602
617
|
- You must be connected to the internet to run the tests.
|
|
603
618
|
- To update the version on PyPI, you must increment the version number in `pyproject.toml`
|
|
604
619
|
|
|
620
|
+
If you add or upgrade third-party packages, don't forget to update `requirements.txt` from your activated virtual environment:
|
|
621
|
+
|
|
622
|
+
````bash
|
|
623
|
+
pip freeze --exclude talklib > requirements.txt
|
|
624
|
+
````
|
|
625
|
+
|
|
626
|
+
The `--exclude talklib` option keeps this project's editable installation out of its own dependency list.
|
|
@@ -42,7 +42,7 @@ pycparser==2.22
|
|
|
42
42
|
pydantic==2.9.1
|
|
43
43
|
pydantic_core==2.23.3
|
|
44
44
|
Pygments==2.20.0
|
|
45
|
-
PyJWT==2.
|
|
45
|
+
PyJWT==2.15.1
|
|
46
46
|
PyNaCl==1.6.2
|
|
47
47
|
pyparsing==3.0.9
|
|
48
48
|
pyproject_hooks==1.0.0
|
|
@@ -61,7 +61,7 @@ tomli==2.0.1
|
|
|
61
61
|
twilio==9.0.2
|
|
62
62
|
twine==4.0.2
|
|
63
63
|
typing_extensions==4.15.0
|
|
64
|
-
urllib3==2.
|
|
64
|
+
urllib3==2.8.0
|
|
65
65
|
wrapt==1.16.0
|
|
66
66
|
yarl==1.22.0
|
|
67
67
|
zipp==3.23.0
|
|
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
|