52 lines
1.4 KiB
Rust
52 lines
1.4 KiB
Rust
#![feature(proc_macro_hygiene, decl_macro)]
|
|
#[macro_use]
|
|
extern crate rocket;
|
|
use rocket_contrib::templates::Template;
|
|
use rocket_contrib::serve::StaticFiles;
|
|
use rocket::response::NamedFile;
|
|
use markov::Chain;
|
|
use std::collections::HashMap;
|
|
mod toki;
|
|
mod nimi_sin;
|
|
mod lipu_nimi;
|
|
|
|
#[get("/")]
|
|
fn nimi() -> Template {
|
|
let lipu = o_pali_e_lipu();
|
|
Template::render("index", &lipu) //o pali e lipu pi nimi sin
|
|
}
|
|
|
|
#[get("/seme")]
|
|
fn seme() -> Option<NamedFile> {
|
|
NamedFile::open("static/ni-li-seme.html").ok() //o pali e lipu sona
|
|
}
|
|
|
|
fn main() {
|
|
rocket::ignite().attach(Template::fairing()).mount("/", routes![nimi])
|
|
.mount("/static", StaticFiles::from("static"))
|
|
.mount("/", routes![seme]).launch(); //o pana e lipu ale
|
|
}
|
|
|
|
fn o_pali_e_lipu() -> HashMap<String, String> {
|
|
let mut ijo = HashMap::new();
|
|
let nimi_sin = nimi_sin::pali(4);
|
|
ijo.insert("nimisin".to_string(), nimi_sin.clone()); //o pana e ijo tawa nasin lipu
|
|
ijo.insert("kon".to_string(), markov(1));
|
|
ijo.insert("toki".to_string(), toki::pali(&nimi_sin));
|
|
ijo
|
|
}
|
|
|
|
fn markov(nanpa: u8) -> String { // pali e nimi sin kepeken ilo Mako.
|
|
let mut mako = Chain::new();
|
|
let mut x = 0;
|
|
let mut kon = String::new();
|
|
mako.feed_file("nimi").expect("lipu li lon ala a");
|
|
while x < nanpa {
|
|
kon.push_str(mako.generate_str().as_str());
|
|
kon.push_str(" ");
|
|
x += 1;
|
|
}
|
|
kon
|
|
}
|
|
|