mirror of
https://github.com/thegeneralist01/archivr
synced 2026-07-21 18:55:36 +02:00
- Add crates/archivr-core/src/downloader/http.rs
- download(url, store_path, timestamp) -> Result<(hash, extension)>
- Rejects text/html responses with a clear error
- Derives extension from URL path or Content-Type header
- Follows redirects (capped at 10), user-agent archivr/0.1
- 10 unit tests for extension/content-type helpers
- Add Source::Url variant to capture::Source enum
- determine_source: unmatched http/https URLs route to Source::Url
- source_metadata: Source::Url => ("web", "file", "file")
- generate_entry_title: Source::Url arm -> "Downloaded File" fallback
- perform_capture: Source::Url arm calls http::download, uses existing
temp -> hash_exists -> move_temp_to_raw -> record_media_entry pipeline
- Update test expectations: 3 plain https:// cases now expect Source::Url
- Add reqwest 0.12 (blocking) to workspace and archivr-core deps
- Mark URLs milestone done in docs/README.md
- Update NEXT.md Track 1 status
30 lines
793 B
TOML
30 lines
793 B
TOML
[workspace]
|
|
members = [
|
|
"crates/archivr-core",
|
|
"crates/archivr-cli",
|
|
"crates/archivr-server",
|
|
]
|
|
resolver = "2"
|
|
|
|
[workspace.package]
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
anyhow = "1.0.100"
|
|
axum = "0.7.9"
|
|
chrono = "0.4.42"
|
|
clap = { version = "4.5.48", features = ["derive"] }
|
|
hex = "0.4.3"
|
|
regex = "1.12.2"
|
|
rusqlite = { version = "0.32.1", features = ["bundled"] }
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_json = "1.0.132"
|
|
sha3 = "0.10.8"
|
|
tempfile = "3.13.0"
|
|
tokio = { version = "1.41.1", features = ["macros", "rt-multi-thread", "net"] }
|
|
toml = "0.8.19"
|
|
tower = "0.5.1"
|
|
tower-http = { version = "0.6.2", features = ["fs", "trace"] }
|
|
uuid = { version = "1.18.1", features = ["v4"] }
|
|
reqwest = { version = "0.12", features = ["blocking"] }
|