diff --git a/.assets/podcast-archiver-help.svg b/.assets/podcast-archiver-help.svg index d3e7d6e..c291a48 100644 --- a/.assets/podcast-archiver-help.svg +++ b/.assets/podcast-archiver-help.svg @@ -1,4 +1,4 @@ - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - $ podcast-archiver --help - -Usage:podcast-archiver [OPTIONS]                                                                                                           - - Archive all of your favorite podcasts                                                                                                       - -╭─ Basic parameters ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ ---feed-fTEXT       Feed URLs to archive. Use repeatedly for multiple feeds.                                                         -[env var: PODCAST_ARCHIVER_FEED]                                                                                ---opml-oTEXT       OPML files containing feed URLs to archive. OPML files can be exported from a variety of podcatchers. Use        -                          repeatedly for multiple files.                                                                                   -[env var: PODCAST_ARCHIVER_OPML]                                                                                ---dir-dDIRECTORY  Directory to which to download the podcast archive. By default, the archive will be created in the current       -                          working directory  ('.').                                                                                        -[env var: PODCAST_ARCHIVER_DIR]                                                                                 -[default: .]                                                                                                    ---config-cFILE       Path to a config file. Command line arguments will take precedence.                                              -[env var: PODCAST_ARCHIVER_CONFIG]                                                                              -╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ -╭─ Output parameters ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ ---filename-template-FTEXT  Template to be used when generating filenames. Available template variables are: 'episode.title,           -                                'episode.subtitle, 'episode.published_time, 'episode.original_filename, 'show.title, 'show.subtitle,       -                                'show.author, 'show.language', and 'ext' (the filename extension)                                          -[env var: PODCAST_ARCHIVER_FILENAME_TEMPLATE]                                                             -[default: {show.title}/{episode.published_time:%Y-%m-%d} - {episode.title}.{ext}]                         ---write-info-json  Write episode metadata to a .info.json file next to the media file itself.                                 -[env var: PODCAST_ARCHIVER_WRITE_INFO_JSON]                                                               ---slugify-S  Format filenames in the most compatible way, replacing all special characters.                             -[env var: PODCAST_ARCHIVER_SLUGIFY]                                                                       -╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ -╭─ Processing parameters ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ ---update-u  Update the feeds with newly added episodes only. Adding episodes ends with the first episode already         -                              present in the download directory.                                                                           -[env var: PODCAST_ARCHIVER_UPDATE]                                                                          ---max-episodes-mINTEGER  Only download the given number of episodes per podcast feed. Useful if you don't really need the entire      -                              backlog.                                                                                                     -╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ -╭─ Miscellaneous Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ ---help-h  Show this message and exit.                                                                         ---quiet-q  Print only minimal progress information. Errors will always be emitted.                             -[env var: PODCAST_ARCHIVER_QUIET]                                                                  ---concurrency-CINTEGER        Maximum number of simultaneous downloads.                                                           -[env var: PODCAST_ARCHIVER_CONCURRENCY]                                                            ---debug-partial  Download only the first 1048576 bytes of episodes for debugging purposes.                           -[env var: PODCAST_ARCHIVER_DEBUG_PARTIAL]                                                          ---verbose-vINTEGER RANGE  Increase the level of verbosity while downloading.                                                  -[env var: PODCAST_ARCHIVER_VERBOSE]                                                                ---version-V  Show the version and exit.                                                                          ---config-generate  Emit an example YAML config file to stdout and exit.                                                -╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ - + + $ podcast-archiver --help +Warning: 'podcast-archiver' is an entry point defined in pyproject.toml, but it's not installed as a script. You may get improper `sys.argv[0]`. + +The support to run uninstalled scripts will be removed in a future release. + +Run `poetry install` to resolve and get rid of this message. + + +Usage:podcast-archiver [OPTIONS]                                                                                                           + + Archive all of your favorite podcasts                                                                                                       + +╭─ ⚠ Deprecated, will be removed in the next major release ────────────────────────────────────────────────────────────────────────────────╮ +--update-u    Update the feeds with newly added episodes only. Adding episodes ends with the first episode already present in the       +                 download directory.                                                                                                       +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─ Basic parameters ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +--feed-fTEXT       Feed URLs to archive. Use repeatedly for multiple feeds.                                                       +[env var: PODCAST_ARCHIVER_FEEDS]                                                                             +--opml-oFILE       OPML files containing feed URLs to archive. OPML files can be exported from a variety of podcatchers. Use      +                            repeatedly for multiple files.                                                                                 +[env var: PODCAST_ARCHIVER_OPML_FILES]                                                                        +--dir-dDIRECTORY  Directory to which to download the podcast archive. By default, the archive will be created in the current     +                            working directory  ('.').                                                                                      +[env var: PODCAST_ARCHIVER_ARCHIVE_DIRECTORY]                                                                 +--config-cFILE       Path to a config file. Command line arguments will take precedence.                                            +[env var: PODCAST_ARCHIVER_CONFIG]                                                                            +--databaseFILE       Location of the database to keep track of downloaded episodes. By default, the database will be created as     +                            'podcast-archiver.db' in the directory of the config file.                                                     +[env var: PODCAST_ARCHIVER_DATABASE]                                                                          +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─ Output parameters ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +--filename-template-FTEXT  Template to be used when generating filenames. Available template variables are: 'episode.title,           +                                'episode.subtitle, 'episode.published_time, 'episode.original_filename, 'show.title, 'show.subtitle,       +                                'show.author, 'show.language', and 'ext' (the filename extension)                                          +[env var: PODCAST_ARCHIVER_FILENAME_TEMPLATE]                                                             +[default: {show.title}/{episode.published_time:%Y-%m-%d} - {episode.title}.{ext}]                         +--write-info-json  Write episode metadata to a .info.json file next to the media file itself.                                 +[env var: PODCAST_ARCHIVER_WRITE_INFO_JSON]                                                               +--slugify-S  Format filenames in the most compatible way, replacing all special characters.                             +[env var: PODCAST_ARCHIVER_SLUGIFY_PATHS]                                                                 +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─ Processing parameters ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +--sleep-secondsINTEGER  Run podcast-archiver continuously. Set to a non-zero number of seconds to sleep after all available       +                                 episodes have been downloaded. Otherwise the application exits after all downloads have been completed.   +[env var: PODCAST_ARCHIVER_SLEEP_SECONDS]                                                                +--max-episodes-mINTEGER  Only download the given number of episodes per podcast feed. Useful if you don't really need the entire   +                                 backlog.                                                                                                  +[env var: PODCAST_ARCHIVER_MAXIMUM_EPISODE_COUNT]                                                        +--ignore-database  Ignore the episodes database when downloading. This will cause files to be downloaded again, even if      +                                 they already exist in the database.                                                                       +[env var: PODCAST_ARCHIVER_IGNORE_DATABASE]                                                              +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ +╭─ Miscellaneous Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ +--help-h  Show this message and exit.                                                                               +--quiet-q  Print only minimal progress information. Errors will always be emitted.                                   +[env var: PODCAST_ARCHIVER_QUIET]                                                                        +--concurrency-CINTEGER  Maximum number of simultaneous downloads.                                                                 +[env var: PODCAST_ARCHIVER_CONCURRENCY]                                                                  +--debug-partial  Download only the first 1048576 bytes of episodes for debugging purposes.                                 +[env var: PODCAST_ARCHIVER_DEBUG_PARTIAL]                                                                +--verbose-v  Increase the level of verbosity while downloading. Can be passed multiple times. Increased verbosity and  +                                 non-interactive execution (in a cronjob, docker compose, etc.) will disable progress bars.                +                                 Non-interactive execution also always raises the verbosity unless --quiet is passed.                      +[env var: PODCAST_ARCHIVER_VERBOSE]                                                                      +--version-V  Show the version and exit.                                                                                +--config-generate  Emit an example YAML config file to stdout and exit.                                                      +╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ + diff --git a/podcast_archiver/__pycache__/__init__.cpython-312.pyc b/podcast_archiver/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000..62e57c9 Binary files /dev/null and b/podcast_archiver/__pycache__/__init__.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/base.cpython-312.pyc b/podcast_archiver/__pycache__/base.cpython-312.pyc new file mode 100644 index 0000000..d10e771 Binary files /dev/null and b/podcast_archiver/__pycache__/base.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/cli.cpython-312.pyc b/podcast_archiver/__pycache__/cli.cpython-312.pyc new file mode 100644 index 0000000..b7bc8e2 Binary files /dev/null and b/podcast_archiver/__pycache__/cli.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/config.cpython-312.pyc b/podcast_archiver/__pycache__/config.cpython-312.pyc new file mode 100644 index 0000000..980d6bb Binary files /dev/null and b/podcast_archiver/__pycache__/config.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/constants.cpython-312.pyc b/podcast_archiver/__pycache__/constants.cpython-312.pyc new file mode 100644 index 0000000..6dc5e44 Binary files /dev/null and b/podcast_archiver/__pycache__/constants.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/database.cpython-312.pyc b/podcast_archiver/__pycache__/database.cpython-312.pyc new file mode 100644 index 0000000..6cca4c6 Binary files /dev/null and b/podcast_archiver/__pycache__/database.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/download.cpython-312.pyc b/podcast_archiver/__pycache__/download.cpython-312.pyc new file mode 100644 index 0000000..63bf9d5 Binary files /dev/null and b/podcast_archiver/__pycache__/download.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/enums.cpython-312.pyc b/podcast_archiver/__pycache__/enums.cpython-312.pyc new file mode 100644 index 0000000..06041fe Binary files /dev/null and b/podcast_archiver/__pycache__/enums.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/exceptions.cpython-312.pyc b/podcast_archiver/__pycache__/exceptions.cpython-312.pyc new file mode 100644 index 0000000..0c80236 Binary files /dev/null and b/podcast_archiver/__pycache__/exceptions.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/logging.cpython-312.pyc b/podcast_archiver/__pycache__/logging.cpython-312.pyc new file mode 100644 index 0000000..c969b06 Binary files /dev/null and b/podcast_archiver/__pycache__/logging.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/models.cpython-312.pyc b/podcast_archiver/__pycache__/models.cpython-312.pyc new file mode 100644 index 0000000..420e572 Binary files /dev/null and b/podcast_archiver/__pycache__/models.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/processor.cpython-312.pyc b/podcast_archiver/__pycache__/processor.cpython-312.pyc new file mode 100644 index 0000000..1a66fe0 Binary files /dev/null and b/podcast_archiver/__pycache__/processor.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/session.cpython-312.pyc b/podcast_archiver/__pycache__/session.cpython-312.pyc new file mode 100644 index 0000000..85786b8 Binary files /dev/null and b/podcast_archiver/__pycache__/session.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/types.cpython-312.pyc b/podcast_archiver/__pycache__/types.cpython-312.pyc new file mode 100644 index 0000000..3c68bf7 Binary files /dev/null and b/podcast_archiver/__pycache__/types.cpython-312.pyc differ diff --git a/podcast_archiver/__pycache__/utils.cpython-312.pyc b/podcast_archiver/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000..8f35f79 Binary files /dev/null and b/podcast_archiver/__pycache__/utils.cpython-312.pyc differ