Add unfinished path command
This commit is contained in:
parent
345462915b
commit
853e09517f
3 changed files with 38 additions and 0 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
mod ingest;
|
mod ingest;
|
||||||
|
mod path;
|
||||||
mod reexport;
|
mod reexport;
|
||||||
|
|
||||||
pub use ingest::ingest;
|
pub use ingest::ingest;
|
||||||
|
pub use path::path;
|
||||||
pub use reexport::reexport;
|
pub use reexport::reexport;
|
||||||
|
|
|
||||||
33
brood/src/commands/path.rs
Normal file
33
brood/src/commands/path.rs
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
use std::fs::File;
|
||||||
|
use std::io::{self, BufReader};
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
|
use crate::data::AdjacencyList;
|
||||||
|
use crate::util;
|
||||||
|
|
||||||
|
pub fn path(datafile: &Path, from: &str, to: &str) -> io::Result<()> {
|
||||||
|
eprintln!(">> Import");
|
||||||
|
let mut databuf = BufReader::new(File::open(datafile)?);
|
||||||
|
let mut data = AdjacencyList::read(&mut databuf)?.change_page_data(f32::INFINITY);
|
||||||
|
|
||||||
|
eprintln!(">> Locate from and to");
|
||||||
|
let from = util::normalize_link(from);
|
||||||
|
let to = util::normalize_link(to);
|
||||||
|
let (from_i, from_p) = data
|
||||||
|
.pages
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, p)| !p.redirect)
|
||||||
|
.find(|(_, p)| util::normalize_link(&p.title) == from)
|
||||||
|
.unwrap_or_else(|| panic!("no article called {from}"));
|
||||||
|
let (to_i, to_p) = data
|
||||||
|
.pages
|
||||||
|
.iter()
|
||||||
|
.enumerate()
|
||||||
|
.filter(|(_, p)| !p.redirect)
|
||||||
|
.find(|(_, p)| util::normalize_link(&p.title) == to)
|
||||||
|
.unwrap_or_else(|| panic!("no article called {to}"));
|
||||||
|
dbg!(from_i, from_p, to_i, to_p);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
@ -13,6 +13,8 @@ enum Command {
|
||||||
Ingest,
|
Ingest,
|
||||||
/// Read and reexport brood data.
|
/// Read and reexport brood data.
|
||||||
Reexport { to: PathBuf },
|
Reexport { to: PathBuf },
|
||||||
|
/// Find a path from one article to another.
|
||||||
|
Path { from: String, to: String },
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Parser)]
|
#[derive(Debug, Parser)]
|
||||||
|
|
@ -27,5 +29,6 @@ fn main() -> io::Result<()> {
|
||||||
match args.command {
|
match args.command {
|
||||||
Command::Ingest => commands::ingest(&args.datafile),
|
Command::Ingest => commands::ingest(&args.datafile),
|
||||||
Command::Reexport { to } => commands::reexport(&args.datafile, &to),
|
Command::Reexport { to } => commands::reexport(&args.datafile, &to),
|
||||||
|
Command::Path { from, to } => commands::path(&args.datafile, &from, &to),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue