Compare commits
No commits in common. "30b81934a82eb499fc30c017c99c67ebc422ddf6" and "20b97591934e541d4e45d420ff5a4271470f15c5" have entirely different histories.
30b81934a8
...
20b9759193
4 changed files with 2 additions and 71 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
```
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue