| demo | ||
| repub | ||
| tests | ||
| .envrc | ||
| .flake8 | ||
| .gitignore | ||
| AGENTS.md | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE.md | ||
| pyproject.toml | ||
| README.md | ||
| scrapy.cfg | ||
| treefmt.nix | ||
| uv.lock | ||
republisher-redux
nix develop
uv sync --all-groups
cat > repub.toml <<'EOF'
out_dir = "out"
[[feeds]]
name = "gp-pod"
url = "https://guardianproject.info/podcast/podcast.xml"
[[feeds]]
name = "nasa"
url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
EOF
uv run repub --config repub.toml
out_dir may be relative or absolute. Relative paths are resolved against the
directory containing the config file. Optional Scrapy runtime overrides can be
set in the same file:
[scrapy.settings]
LOG_LEVEL = "DEBUG"
DOWNLOAD_TIMEOUT = 30
See demo/README.md for a self-contained example config.
TODO
- Offlines RSS feed xml
- Downloads media and enclosures
- Rewrites media urls
- Image normalization (JPG, RGB)
- Audio transcoding
- Video transcoding
- Image compression - Do we want this?
- Download and rewrite media embedded in content/CDATA fields
- Config file to drive the program
- Daemonize the program
- Operationalize with metrics and error reporting
License
republisher-redux, a tool to mirror RSS/ATOM feeds completely offline
Copyright (C) 2024 Abel Luck
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.