diff --git a/Cargo.lock b/Cargo.lock index 98e4a4c..195e2e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -646,6 +646,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "http" version = "0.2.11" @@ -1133,7 +1139,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "ovlach_data" version = "0.1.0" -source = "git+https://glpat-Ju_qUN9Yh8qa5rEnd6T7:glpat-Ju_qUN9Yh8qa5rEnd6T7@gitlab.nanobyte.cz/ondrej/ov-site-api-data.git?branch=add_missing_fields#c37450f5ea327f95325d4f2cc587a392e6e3bc9f" +source = "git+https://glpat-Ju_qUN9Yh8qa5rEnd6T7:glpat-Ju_qUN9Yh8qa5rEnd6T7@gitlab.nanobyte.cz/ondrej/ov-site-api-data.git?branch=add_missing_fields#c13748b039d812d3bf1aaa93312699da7b921868" dependencies = [ "chrono", "rocket", @@ -1153,6 +1159,7 @@ dependencies = [ "rocket_dyn_templates", "serde", "serde_yaml", + "sha256", "tokio", ] @@ -1766,6 +1773,19 @@ dependencies = [ "digest", ] +[[package]] +name = "sha256" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7895c8ae88588ccead14ff438b939b0c569cd619116f14b4d13fdff7b8333386" +dependencies = [ + "async-trait", + "bytes", + "hex", + "sha2", + "tokio", +] + [[package]] name = "sharded-slab" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index 31a161f..cb64a13 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,4 +15,5 @@ rocket_dyn_templates = { version = "0.1.0", features = ["tera"]} reqwest = { version = "0.11", features = ["json"] } tokio = { version = "1", features = ["full"] } ovlach_data = { git = "https://glpat-Ju_qUN9Yh8qa5rEnd6T7:glpat-Ju_qUN9Yh8qa5rEnd6T7@gitlab.nanobyte.cz/ondrej/ov-site-api-data.git", branch = "add_missing_fields"} -chrono = "0.4.31" \ No newline at end of file +chrono = "0.4.31" +sha256 = "1.4.0" \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index e2f1eb6..d692651 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,7 +4,7 @@ use std::collections::HashMap; use rocket::{*, fairing::AdHoc}; use rocket_dyn_templates::{Template, tera::Value}; use ::serde::Deserialize; -use tools::tera::{static_filter, translate_filter, calculate_age, insert_space_every, lang_entity}; +use tools::tera::{static_filter, translate_filter, calculate_age, insert_space_every, lang_entity, gravatar_link}; pub mod routes; pub mod services; @@ -34,6 +34,7 @@ pub fn rocket_builder() -> Rocket { engines.tera.register_filter("translate", translate_filter); engines.tera.register_filter("calculate_age", calculate_age); engines.tera.register_filter("insert_space_every", insert_space_every); + engines.tera.register_filter("gravatar_link", gravatar_link); // filters specific to API engines.tera.register_filter("lang_entity", lang_entity); Ok(()) diff --git a/src/tools/tera.rs b/src/tools/tera.rs index b8edb4a..85e8bf4 100644 --- a/src/tools/tera.rs +++ b/src/tools/tera.rs @@ -4,6 +4,7 @@ use chrono::{Utc, Datelike}; use log::error; use rocket_dyn_templates::tera::{Value, Error}; use ovlach_data::cv::chrono::from_string; +use sha256::{digest, try_digest}; // TODO: tenhle modul je trochu prasacky.. @@ -26,7 +27,16 @@ pub fn lang_entity( value: &Value, args: &HashMap ) -> Result { - return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", value.as_str().unwrap()))); // TODO: fix-me here! + error!("{:?}", value); // TODO: rewrite me!!! + return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", value["en"].as_str().unwrap()))); // TODO: fix-me here! +} + +pub fn gravatar_link( + value: &Value, + args: &HashMap +) -> Result { + let val = digest(value.as_str().unwrap()); + return Ok(rocket_dyn_templates::tera::Value::String(format!("https://gravatar.com/avatar/{}", val))); // TODO: fix-me here! } pub fn insert_space_every( diff --git a/templates/base.html.tera b/templates/base.html.tera index 1e748c0..fec291e 100644 --- a/templates/base.html.tera +++ b/templates/base.html.tera @@ -40,10 +40,6 @@ - - @@ -56,24 +52,17 @@