├── .github └── workflows │ ├── ci.yaml │ ├── nightly.yaml │ └── release.yaml ├── .gitignore ├── .rustfmt.toml ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── Cross.toml ├── DEVELOPMENT.org ├── Dockerfile ├── LICENSE ├── Makefile ├── README.org ├── cliff.toml ├── fixtures ├── json │ └── news.json ├── minimal_rss_20.xml ├── sample_atom.xml └── youtube.xml ├── flake.lock ├── flake.nix ├── inspector ├── .babelrc ├── .gitignore ├── dist │ └── .keep ├── package.json ├── pnpm-lock.yaml └── src │ ├── FeedInspector.js │ ├── Filter.js │ ├── app.js │ ├── index.html │ ├── login.html │ ├── style.css │ └── util.js ├── release.sh ├── rust-toolchain.toml ├── scripts └── watch-dev.sh ├── src ├── cli.rs ├── client.rs ├── client │ └── cache.rs ├── config.rs ├── error.rs ├── feed.rs ├── feed │ ├── conversion.rs │ ├── extension.rs │ └── norm.rs ├── filter.rs ├── filter │ ├── convert.rs │ ├── full_text.rs │ ├── highlight.rs │ ├── html.rs │ ├── image_proxy.rs │ ├── js.rs │ ├── json_to_feed.rs │ ├── limit.rs │ ├── magnet.rs │ ├── merge.rs │ ├── note.rs │ ├── sanitize.rs │ ├── select.rs │ └── simplify_html.rs ├── filter_cache.rs ├── filter_pipeline.rs ├── js.rs ├── js │ ├── builtin.rs │ ├── dom.rs │ └── fetch.rs ├── main.rs ├── otf_filter.rs ├── server.rs ├── server │ ├── auth.rs │ ├── endpoint.rs │ ├── feed_service.rs │ ├── image_proxy.rs │ ├── index.rs │ ├── inspector.rs │ ├── watcher.rs │ ├── web.rs │ └── web │ │ ├── endpoint.rs │ │ ├── list.rs │ │ └── login.rs ├── source.rs ├── test_utils.rs ├── util.rs └── util │ ├── date.rs │ └── html.rs └── static ├── common.css ├── common.js ├── endpoint.css ├── endpoint.js ├── list.css ├── login.css ├── login.js ├── sprite.svg └── svg ├── book.svg ├── caret-right.svg ├── code.svg ├── copy.svg ├── external-link.svg ├── file-description.svg ├── json.svg ├── loader.svg └── reload.svg /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/nightly.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/.github/workflows/nightly.yaml -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/.github/workflows/release.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | /.cache/ 3 | -------------------------------------------------------------------------------- /.rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/.rustfmt.toml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Cross.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/Cross.toml -------------------------------------------------------------------------------- /DEVELOPMENT.org: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/DEVELOPMENT.org -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/Makefile -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/README.org -------------------------------------------------------------------------------- /cliff.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/cliff.toml -------------------------------------------------------------------------------- /fixtures/json/news.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/fixtures/json/news.json -------------------------------------------------------------------------------- /fixtures/minimal_rss_20.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/fixtures/minimal_rss_20.xml -------------------------------------------------------------------------------- /fixtures/sample_atom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/fixtures/sample_atom.xml -------------------------------------------------------------------------------- /fixtures/youtube.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/fixtures/youtube.xml -------------------------------------------------------------------------------- /flake.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/flake.lock -------------------------------------------------------------------------------- /flake.nix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/flake.nix -------------------------------------------------------------------------------- /inspector/.babelrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/.babelrc -------------------------------------------------------------------------------- /inspector/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/.gitignore -------------------------------------------------------------------------------- /inspector/dist/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /inspector/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/package.json -------------------------------------------------------------------------------- /inspector/pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/pnpm-lock.yaml -------------------------------------------------------------------------------- /inspector/src/FeedInspector.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/FeedInspector.js -------------------------------------------------------------------------------- /inspector/src/Filter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/Filter.js -------------------------------------------------------------------------------- /inspector/src/app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/app.js -------------------------------------------------------------------------------- /inspector/src/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/index.html -------------------------------------------------------------------------------- /inspector/src/login.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/login.html -------------------------------------------------------------------------------- /inspector/src/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/style.css -------------------------------------------------------------------------------- /inspector/src/util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/inspector/src/util.js -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/release.sh -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.91.0" 3 | -------------------------------------------------------------------------------- /scripts/watch-dev.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/scripts/watch-dev.sh -------------------------------------------------------------------------------- /src/cli.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/cli.rs -------------------------------------------------------------------------------- /src/client.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/client.rs -------------------------------------------------------------------------------- /src/client/cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/client/cache.rs -------------------------------------------------------------------------------- /src/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/config.rs -------------------------------------------------------------------------------- /src/error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/error.rs -------------------------------------------------------------------------------- /src/feed.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/feed.rs -------------------------------------------------------------------------------- /src/feed/conversion.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/feed/conversion.rs -------------------------------------------------------------------------------- /src/feed/extension.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/feed/extension.rs -------------------------------------------------------------------------------- /src/feed/norm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/feed/norm.rs -------------------------------------------------------------------------------- /src/filter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter.rs -------------------------------------------------------------------------------- /src/filter/convert.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/convert.rs -------------------------------------------------------------------------------- /src/filter/full_text.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/full_text.rs -------------------------------------------------------------------------------- /src/filter/highlight.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/highlight.rs -------------------------------------------------------------------------------- /src/filter/html.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/html.rs -------------------------------------------------------------------------------- /src/filter/image_proxy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/image_proxy.rs -------------------------------------------------------------------------------- /src/filter/js.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/js.rs -------------------------------------------------------------------------------- /src/filter/json_to_feed.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/json_to_feed.rs -------------------------------------------------------------------------------- /src/filter/limit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/limit.rs -------------------------------------------------------------------------------- /src/filter/magnet.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/magnet.rs -------------------------------------------------------------------------------- /src/filter/merge.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/merge.rs -------------------------------------------------------------------------------- /src/filter/note.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/note.rs -------------------------------------------------------------------------------- /src/filter/sanitize.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/sanitize.rs -------------------------------------------------------------------------------- /src/filter/select.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/select.rs -------------------------------------------------------------------------------- /src/filter/simplify_html.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter/simplify_html.rs -------------------------------------------------------------------------------- /src/filter_cache.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter_cache.rs -------------------------------------------------------------------------------- /src/filter_pipeline.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/filter_pipeline.rs -------------------------------------------------------------------------------- /src/js.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/js.rs -------------------------------------------------------------------------------- /src/js/builtin.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/js/builtin.rs -------------------------------------------------------------------------------- /src/js/dom.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/js/dom.rs -------------------------------------------------------------------------------- /src/js/fetch.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/js/fetch.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/otf_filter.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/otf_filter.rs -------------------------------------------------------------------------------- /src/server.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server.rs -------------------------------------------------------------------------------- /src/server/auth.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/auth.rs -------------------------------------------------------------------------------- /src/server/endpoint.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/endpoint.rs -------------------------------------------------------------------------------- /src/server/feed_service.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/feed_service.rs -------------------------------------------------------------------------------- /src/server/image_proxy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/image_proxy.rs -------------------------------------------------------------------------------- /src/server/index.rs: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/server/inspector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/inspector.rs -------------------------------------------------------------------------------- /src/server/watcher.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/watcher.rs -------------------------------------------------------------------------------- /src/server/web.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/web.rs -------------------------------------------------------------------------------- /src/server/web/endpoint.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/web/endpoint.rs -------------------------------------------------------------------------------- /src/server/web/list.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/web/list.rs -------------------------------------------------------------------------------- /src/server/web/login.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/server/web/login.rs -------------------------------------------------------------------------------- /src/source.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/source.rs -------------------------------------------------------------------------------- /src/test_utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/test_utils.rs -------------------------------------------------------------------------------- /src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/util.rs -------------------------------------------------------------------------------- /src/util/date.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/util/date.rs -------------------------------------------------------------------------------- /src/util/html.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/src/util/html.rs -------------------------------------------------------------------------------- /static/common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/common.css -------------------------------------------------------------------------------- /static/common.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/endpoint.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/endpoint.css -------------------------------------------------------------------------------- /static/endpoint.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/endpoint.js -------------------------------------------------------------------------------- /static/list.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/login.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/login.css -------------------------------------------------------------------------------- /static/login.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/login.js -------------------------------------------------------------------------------- /static/sprite.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/sprite.svg -------------------------------------------------------------------------------- /static/svg/book.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/book.svg -------------------------------------------------------------------------------- /static/svg/caret-right.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/caret-right.svg -------------------------------------------------------------------------------- /static/svg/code.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/code.svg -------------------------------------------------------------------------------- /static/svg/copy.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/copy.svg -------------------------------------------------------------------------------- /static/svg/external-link.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/external-link.svg -------------------------------------------------------------------------------- /static/svg/file-description.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/file-description.svg -------------------------------------------------------------------------------- /static/svg/json.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/json.svg -------------------------------------------------------------------------------- /static/svg/loader.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/loader.svg -------------------------------------------------------------------------------- /static/svg/reload.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shouya/rss-funnel/HEAD/static/svg/reload.svg --------------------------------------------------------------------------------