Compare commits

..

No commits in common. "30b81934a82eb499fc30c017c99c67ebc422ddf6" and "20b97591934e541d4e45d420ff5a4271470f15c5" have entirely different histories.

4 changed files with 2 additions and 71 deletions

View file

@ -39,7 +39,7 @@ See [`demo/README.md`](/home/abel/src/guardianproject/anynews/republisher-redux/
- [x] Video transcoding
- [ ] Image compression - Do we want this?
- [x] Download and rewrite media embedded in content/CDATA fields
- [x] Config file to drive the program
- [ ] Config file to drive the program
- [ ] Daemonize the program
- [ ] Operationalize with metrics and error reporting
@ -47,7 +47,7 @@ See [`demo/README.md`](/home/abel/src/guardianproject/anynews/republisher-redux/
republisher-redux, a tool to mirror RSS/ATOM feeds completely offline
Copyright (C) 2024-2026 Abel Luck
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

View file

@ -15,20 +15,3 @@ Because `out_dir` in [`demo/repub.toml`](/home/abel/src/guardianproject/anynews/
## Files
- `repub.toml`: example runtime config with feed definitions and Scrapy overrides
- `fixtures/local-feed.rss`: simple local RSS fixture for `file://` feed testing
## Local File Feed
`repub` already accepts absolute `file://` feed URIs. To point it at the demo fixture, generate an absolute URI like this from the repo root:
```shell
python3 -c 'from pathlib import Path; print(Path("demo/fixtures/local-feed.rss").resolve().as_uri())'
```
Then use that value in a config entry:
```toml
[[feeds]]
name = "local-demo"
url = "file:///absolute/path/to/demo/fixtures/local-feed.rss"
```

View file

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Local Demo Feed</title>
<link>https://example.com/</link>
<description>Simple local RSS fixture for file:// testing</description>
<language>en</language>
<item>
<title>Local Demo Entry</title>
<link>https://example.com/local-demo-entry</link>
<description>Hello from a local file feed.</description>
<guid isPermaLink="true">https://example.com/local-demo-entry</guid>
<pubDate>Sat, 29 Mar 2026 12:00:00 GMT</pubDate>
</item>
</channel>
</rss>

View file

@ -1,36 +0,0 @@
from pathlib import Path
from repub import entrypoint as entrypoint_module
def test_entrypoint_supports_file_feed_urls(tmp_path: Path, monkeypatch) -> None:
fixture_path = (
Path(__file__).resolve().parents[1] / "demo" / "fixtures" / "local-feed.rss"
).resolve()
config_path = tmp_path / "repub.toml"
config_path.write_text(
f"""
out_dir = "out"
[[feeds]]
name = "local-file"
url = "{fixture_path.as_uri()}"
[scrapy.settings]
LOG_LEVEL = "ERROR"
DOWNLOAD_TIMEOUT = 5
""".strip()
+ "\n",
encoding="utf-8",
)
monkeypatch.setattr(entrypoint_module, "check_runtime", lambda *_: True)
exit_code = entrypoint_module.entrypoint(["--config", str(config_path)])
output_path = tmp_path / "out" / "local-file.rss"
assert exit_code == 0
assert output_path.exists()
output = output_path.read_text(encoding="utf-8")
assert "<title>Local Demo Feed</title>" in output
assert "<title>Local Demo Entry</title>" in output