CHANGES.rst
LICENSE
MANIFEST.in
README.rst
pyproject.toml
run.sh
tox.ini
docs/api.rst
docs/app.rst
docs/changelog.rst
docs/cli.rst
docs/conf.py
docs/config.rst
docs/contributing.rst
docs/dev.rst
docs/guide.rst
docs/index.rst
docs/install.rst
docs/internal.rst
docs/plugins.rst
docs/tutorial.rst
docs/why.rst
docs/screenshots/entries-filters-light.png
docs/screenshots/entries.png
docs/screenshots/entry-image-light.png
docs/screenshots/entry.png
docs/screenshots/feed.png
docs/screenshots/feeds.png
docs/screenshots/import-result.png
docs/screenshots/import-select.png
examples/config.toml
examples/custom_headers.py
examples/feed_slugs.py
examples/parser_only.py
examples/podcast.py
examples/terminal.py
scripts/backup.sh
scripts/bench.py
scripts/debug_storage_stats.py
scripts/entry_dedupe_backtest.py
scripts/jscontrols.html
scripts/jscontrols.py
scripts/lines.sh
scripts/release.py
scripts/vendor_app_stuff.py
src/reader/__init__.py
src/reader/__main__.py
src/reader/_cli.py
src/reader/_config_utils.py
src/reader/_hash_utils.py
src/reader/_types.py
src/reader/_update.py
src/reader/_utils.py
src/reader/core.py
src/reader/exceptions.py
src/reader/opml.py
src/reader/py.typed
src/reader/types.py
src/reader/utils.py
src/reader.egg-info/PKG-INFO
src/reader.egg-info/SOURCES.txt
src/reader.egg-info/dependency_links.txt
src/reader.egg-info/requires.txt
src/reader.egg-info/top_level.txt
src/reader/_app/__init__.py
src/reader/_app/cli.py
src/reader/_app/ext.py
src/reader/_app/forms.py
src/reader/_app/wsgi.py
src/reader/_app/legacy/__init__.py
src/reader/_app/legacy/api_thing.py
src/reader/_app/legacy/wsgi.py
src/reader/_app/legacy/static/controls.js
src/reader/_app/legacy/static/style.css
src/reader/_app/legacy/templates/add_entry.html
src/reader/_app/legacy/templates/entries.html
src/reader/_app/legacy/templates/entry.html
src/reader/_app/legacy/templates/feeds.html
src/reader/_app/legacy/templates/layout.html
src/reader/_app/legacy/templates/macros.html
src/reader/_app/legacy/templates/metadata.html
src/reader/_app/legacy/templates/tags.html
src/reader/_app/static/style.css
src/reader/_app/static/theme.js
src/reader/_app/static/vendor/README
src/reader/_app/static/vendor/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css
src/reader/_app/static/vendor/bootstrap-icons@1.13.1/font/fonts/bootstrap-icons.woff
src/reader/_app/static/vendor/bootstrap-icons@1.13.1/font/fonts/bootstrap-icons.woff2
src/reader/_app/static/vendor/bootstrap@5.3.8/dist/css/bootstrap.min.css
src/reader/_app/static/vendor/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js
src/reader/_app/static/vendor/htmx-ext-response-targets@2.0.4/dist/response-targets.min.js
src/reader/_app/static/vendor/htmx.org@2.0.8/dist/htmx.min.js
src/reader/_app/templates/add_feed.html
src/reader/_app/templates/change_feed_title.html
src/reader/_app/templates/delete_feed.html
src/reader/_app/templates/entries.html
src/reader/_app/templates/entry.html
src/reader/_app/templates/feeds.html
src/reader/_app/templates/import_feeds.html
src/reader/_app/templates/layout.html
src/reader/_app/templates/layout_base.html
src/reader/_app/templates/macros.html
src/reader/_parser/__init__.py
src/reader/_parser/_http_utils.py
src/reader/_parser/_lazy.py
src/reader/_parser/_url_utils.py
src/reader/_parser/feedparser.py
src/reader/_parser/file.py
src/reader/_parser/http.py
src/reader/_parser/jsonfeed.py
src/reader/_parser/requests/__init__.py
src/reader/_parser/requests/_lazy.py
src/reader/_plugins/__init__.py
src/reader/_plugins/cli_status.py
src/reader/_plugins/sqlite_releases.py
src/reader/_plugins/timer.py
src/reader/_plugins/legacy/__init__.py
src/reader/_plugins/legacy/enclosure_tags.py
src/reader/_plugins/legacy/preview_feed_list.py
src/reader/_plugins/legacy/share.py
src/reader/_plugins/legacy/templates/preview_feed_list.html
src/reader/_storage/__init__.py
src/reader/_storage/_base.py
src/reader/_storage/_changes.py
src/reader/_storage/_entries.py
src/reader/_storage/_feeds.py
src/reader/_storage/_html_utils.py
src/reader/_storage/_schema.py
src/reader/_storage/_search.py
src/reader/_storage/_sql_utils.py
src/reader/_storage/_sqlite_utils.py
src/reader/_storage/_tags.py
src/reader/_vendor/__init__.py
src/reader/_vendor/feedparser/__init__.py
src/reader/_vendor/feedparser/api.py
src/reader/_vendor/feedparser/encodings.py
src/reader/_vendor/feedparser/exceptions.py
src/reader/_vendor/feedparser/html.py
src/reader/_vendor/feedparser/http.py
src/reader/_vendor/feedparser/mixin.py
src/reader/_vendor/feedparser/py.typed
src/reader/_vendor/feedparser/sanitizer.py
src/reader/_vendor/feedparser/sgml.py
src/reader/_vendor/feedparser/urls.py
src/reader/_vendor/feedparser/util.py
src/reader/_vendor/feedparser/datetimes/__init__.py
src/reader/_vendor/feedparser/datetimes/asctime.py
src/reader/_vendor/feedparser/datetimes/greek.py
src/reader/_vendor/feedparser/datetimes/hungarian.py
src/reader/_vendor/feedparser/datetimes/iso8601.py
src/reader/_vendor/feedparser/datetimes/korean.py
src/reader/_vendor/feedparser/datetimes/perforce.py
src/reader/_vendor/feedparser/datetimes/rfc822.py
src/reader/_vendor/feedparser/datetimes/w3dtf.py
src/reader/_vendor/feedparser/namespaces/__init__.py
src/reader/_vendor/feedparser/namespaces/_base.py
src/reader/_vendor/feedparser/namespaces/admin.py
src/reader/_vendor/feedparser/namespaces/cc.py
src/reader/_vendor/feedparser/namespaces/dc.py
src/reader/_vendor/feedparser/namespaces/georss.py
src/reader/_vendor/feedparser/namespaces/itunes.py
src/reader/_vendor/feedparser/namespaces/mediarss.py
src/reader/_vendor/feedparser/namespaces/psc.py
src/reader/_vendor/feedparser/parsers/__init__.py
src/reader/_vendor/feedparser/parsers/json.py
src/reader/_vendor/feedparser/parsers/loose.py
src/reader/_vendor/feedparser/parsers/strict.py
src/reader/plugins/__init__.py
src/reader/plugins/_loader.py
src/reader/plugins/enclosure_dedupe.py
src/reader/plugins/entry_dedupe.py
src/reader/plugins/mark_as_read.py
src/reader/plugins/readtime.py
src/reader/plugins/ua_fallback.py
tests/conftest.py
tests/fakeparser.py
tests/reader_methods.py
tests/test__types.py
tests/test__utils.py
tests/test_app_legacy.py
tests/test_app_wsgi.py
tests/test_bench.py
tests/test_changes.py
tests/test_cli.py
tests/test_config_utils.py
tests/test_exceptions.py
tests/test_hash_utils.py
tests/test_html_utils.py
tests/test_lazy_imports.py
tests/test_opml.py
tests/test_parser.py
tests/test_plugins_cli_status.py
tests/test_plugins_enclosure_dedupe.py
tests/test_plugins_entry_dedupe.py
tests/test_plugins_loader.py
tests/test_plugins_mark_as_read.py
tests/test_plugins_preview_feed_list.py
tests/test_plugins_readtime.py
tests/test_plugins_sqlite_releases.py
tests/test_plugins_ua_fallback.py
tests/test_reader.py
tests/test_reader_counts.py
tests/test_reader_deprecations.py
tests/test_reader_filter.py
tests/test_reader_hooks.py
tests/test_reader_integration.py
tests/test_reader_lifecycle.py
tests/test_reader_private.py
tests/test_reader_search.py
tests/test_reader_sort.py
tests/test_reader_update.py
tests/test_reader_utils.py
tests/test_search.py
tests/test_sql_utils.py
tests/test_sqlite_utils.py
tests/test_storage.py
tests/test_tags.py
tests/test_types.py
tests/utils.py
tests/_plugins/__init__.py
tests/_plugins/builtin.py
tests/_plugins/error_during_import.py
tests/_plugins/error_import_error.py
tests/data/10.json
tests/data/10.json.py
tests/data/custom
tests/data/empty.atom
tests/data/empty.atom.py
tests/data/empty.json
tests/data/empty.json.py
tests/data/empty.rss
tests/data/empty.rss.py
tests/data/full.atom
tests/data/full.atom.py
tests/data/full.json
tests/data/full.json.py
tests/data/full.rss
tests/data/full.rss.py
tests/data/invalid.json
tests/data/invalid.json.py
tests/data/relative.atom
tests/data/relative.atom.py
tests/data/relative.rss
tests/data/relative.rss.py
tests/data/sqlite_releases.html
tests/data/unknown.json
tests/data/unknown.json.py