ilo-pali-pi-nimi-sin/src/main.rs

66 lines
1.7 KiB
Rust
Raw Normal View History

2022-05-03 12:10:07 +00:00
#![feature(proc_macro_hygiene, decl_macro)]
2022-05-05 02:11:15 +00:00
#[macro_use]
2022-05-03 12:10:07 +00:00
extern crate rocket;
2022-05-02 16:52:19 +00:00
use markov::Chain;
use rand::Rng;
2022-05-05 02:11:15 +00:00
use rocket::response::NamedFile;
use rocket_contrib::serve::StaticFiles;
use rocket_contrib::templates::Template;
use std::collections::HashMap;
mod lipu_nimi;
2022-05-05 02:11:15 +00:00
mod nimi_sin;
mod toki;
2022-05-02 16:52:19 +00:00
2022-05-03 12:10:07 +00:00
#[get("/")]
fn nimi() -> Template {
let lipu = o_pali_e_lipu();
Template::render("index", &lipu) //o pali e lipu pi nimi sin
2022-05-03 12:10:07 +00:00
}
#[get("/seme")]
fn seme() -> Option<NamedFile> {
NamedFile::open("static/ni-li-seme.html").ok() //o pali e lipu sona
2022-05-03 12:10:07 +00:00
}
2022-05-02 16:52:19 +00:00
fn main() {
2022-05-05 02:11:15 +00:00
rocket::ignite()
.attach(Template::fairing())
.mount("/", routes![nimi])
2022-05-03 12:10:07 +00:00
.mount("/static", StaticFiles::from("static"))
2022-05-05 02:11:15 +00:00
.mount("/", routes![seme])
.launch(); //o pana e lipu ale
2022-05-03 12:10:07 +00:00
}
fn o_pali_e_lipu() -> HashMap<String, String> {
let mut ijo = HashMap::new();
2022-05-02 16:52:19 +00:00
let nimi_sin = nimi_sin::pali(4);
ijo.insert("nimisin".to_string(), nimi_sin.clone()); //o pana e ijo tawa nasin lipu
2022-05-05 02:11:15 +00:00
ijo.insert(
"kon".to_string(),
markov(rand::thread_rng().gen_range(1..3)),
);
let mut nanpa = 1;
let mut toki_mute = String::new();
while nanpa < rand::thread_rng().gen_range(2..5) {
toki_mute.push_str(format!("//{}\n", toki::pali(&nimi_sin)).as_str());
nanpa += 1;
}
ijo.insert("toki".to_string(), toki_mute);
2022-05-03 12:10:07 +00:00
ijo
2022-05-02 16:52:19 +00:00
}
2022-05-05 02:11:15 +00:00
fn markov(nanpa: u8) -> String {
// pali e nimi sin kepeken ilo Mako.
2022-05-02 16:52:19 +00:00
let mut mako = Chain::new();
2022-05-02 22:43:00 +00:00
let mut x = 0;
let mut kon = String::new();
2022-05-02 16:52:19 +00:00
mako.feed_file("nimi").expect("lipu li lon ala a");
2022-05-02 22:43:00 +00:00
while x < nanpa {
kon.push_str(mako.generate_str().as_str());
2022-05-04 17:01:31 +00:00
kon.push_str(" ");
2022-05-02 22:43:00 +00:00
x += 1;
}
kon
2022-05-02 16:52:19 +00:00
}