Merge branch 'main' into main

This commit is contained in:
MohammadSaleh Kamyab 2022-06-01 09:26:34 +00:00
commit 8f5a86206a
7 changed files with 45 additions and 51 deletions

53
Cargo.lock generated
View File

@ -992,9 +992,9 @@ dependencies = [
[[package]] [[package]]
name = "devise" name = "devise"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74e04ba2d03c5fa0d954c061fc8c9c288badadffc272ebb87679a89846de3ed3" checksum = "dd716c4a507adc5a2aa7c2a372d06c7497727e0892b243d3036bc7478a13e526"
dependencies = [ dependencies = [
"devise_codegen", "devise_codegen",
"devise_core", "devise_core",
@ -1002,9 +1002,9 @@ dependencies = [
[[package]] [[package]]
name = "devise_codegen" name = "devise_codegen"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "066ceb7928ca93a9bedc6d0e612a8a0424048b0ab1f75971b203d01420c055d7" checksum = "ea7b8290d118127c08e3669da20b331bed56b09f20be5945b7da6c116d8fab53"
dependencies = [ dependencies = [
"devise_core", "devise_core",
"quote 0.6.13", "quote 0.6.13",
@ -1012,9 +1012,9 @@ dependencies = [
[[package]] [[package]]
name = "devise_core" name = "devise_core"
version = "0.2.0" version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf41c59b22b5e3ec0ea55c7847e5f358d340f3a8d6d53a5cf4f1564967f96487" checksum = "d1053e9d5d5aade9bcedb5ab53b78df2b56ff9408a3138ce77eaaef87f932373"
dependencies = [ dependencies = [
"bitflags 1.3.2", "bitflags 1.3.2",
"proc-macro2 0.4.30", "proc-macro2 0.4.30",
@ -1703,12 +1703,6 @@ dependencies = [
"ahash 0.7.6", "ahash 0.7.6",
] ]
[[package]]
name = "heck"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
[[package]] [[package]]
name = "hermit-abi" name = "hermit-abi"
version = "0.1.19" version = "0.1.19"
@ -2896,9 +2890,9 @@ dependencies = [
[[package]] [[package]]
name = "once_cell" name = "once_cell"
version = "1.10.0" version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
[[package]] [[package]]
name = "onig" name = "onig"
@ -3067,9 +3061,9 @@ dependencies = [
[[package]] [[package]]
name = "pear" name = "pear"
version = "0.1.4" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5320f212db967792b67cfe12bd469d08afd6318a249bd917d5c19bc92200ab8a" checksum = "32dfa7458144c6af7f9ce6a137ef975466aa68ffa44d4d816ee5934018ba960a"
dependencies = [ dependencies = [
"pear_codegen", "pear_codegen",
] ]
@ -3265,12 +3259,11 @@ dependencies = [
"chrono", "chrono",
"flume", "flume",
"futures 0.3.21", "futures 0.3.21",
"heck",
"hex", "hex",
"once_cell", "once_cell",
"openssl", "openssl",
"pulldown-cmark", "pulldown-cmark",
"regex-syntax 0.6.25", "regex-syntax 0.6.26",
"reqwest 0.11.10", "reqwest 0.11.10",
"rocket", "rocket",
"serde 1.0.137", "serde 1.0.137",
@ -3776,7 +3769,7 @@ checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
dependencies = [ dependencies = [
"aho-corasick", "aho-corasick",
"memchr", "memchr",
"regex-syntax 0.6.25", "regex-syntax 0.6.26",
] ]
[[package]] [[package]]
@ -3787,9 +3780,9 @@ checksum = "8e931c58b93d86f080c734bfd2bce7dd0079ae2331235818133c8be7f422e20e"
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.6.25" version = "0.6.26"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
[[package]] [[package]]
name = "remove_dir_all" name = "remove_dir_all"
@ -3952,9 +3945,9 @@ dependencies = [
[[package]] [[package]]
name = "rocket" name = "rocket"
version = "0.4.10" version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a7ab1dfdc75bb8bd2be381f37796b1b300c45a3c9145b34d86715e8dd90bf28" checksum = "83b9d9dc08c5dcc1d8126a9dd615545e6a358f8c13c883c8dfed8c0376fa355e"
dependencies = [ dependencies = [
"atty", "atty",
"base64 0.13.0", "base64 0.13.0",
@ -3973,9 +3966,9 @@ dependencies = [
[[package]] [[package]]
name = "rocket_codegen" name = "rocket_codegen"
version = "0.4.10" version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1729e687d6d2cf434d174da84fb948f7fef4fac22d20ce94ca61c28b72dbcf9f" checksum = "2810037b5820098af97bd4fdd309e76a8101ceb178147de775c835a2537284fe"
dependencies = [ dependencies = [
"devise", "devise",
"glob", "glob",
@ -3988,9 +3981,9 @@ dependencies = [
[[package]] [[package]]
name = "rocket_contrib" name = "rocket_contrib"
version = "0.4.10" version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6b6303dccab46dce6c7ac26c9b9d8d8cde1b19614b027c3f913be6611bff6d9b" checksum = "e20efbc6a211cb3df5375accf532d4186f224b623f39eca650b19b96240c596b"
dependencies = [ dependencies = [
"log 0.4.17", "log 0.4.17",
"notify", "notify",
@ -4013,9 +4006,9 @@ dependencies = [
[[package]] [[package]]
name = "rocket_http" name = "rocket_http"
version = "0.4.10" version = "0.4.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6131e6e6d38a9817f4a494ff5da95971451c2eb56a53915579fc9c80f6ef0117" checksum = "2bf9cbd128e1f321a2d0bebd2b7cf0aafd89ca43edf69e49b56a5c46e48eb19f"
dependencies = [ dependencies = [
"cookie 0.11.4", "cookie 0.11.4",
"hyper 0.10.16", "hyper 0.10.16",
@ -4554,7 +4547,7 @@ dependencies = [
"lazycell", "lazycell",
"onig", "onig",
"plist", "plist",
"regex-syntax 0.6.25", "regex-syntax 0.6.26",
"serde 1.0.137", "serde 1.0.137",
"serde_derive", "serde_derive",
"serde_json", "serde_json",

View File

@ -15,8 +15,8 @@ gettext-utils = "0.1.0"
guid-create = "0.2" guid-create = "0.2"
lettre_email = "0.9.2" lettre_email = "0.9.2"
num_cpus = "1.10" num_cpus = "1.10"
rocket = "0.4.6" rocket = "0.4.11"
rocket_contrib = { version = "0.4.5", features = ["json"] } rocket_contrib = { version = "0.4.11", features = ["json"] }
rocket_i18n = "0.4.1" rocket_i18n = "0.4.1"
scheduled-thread-pool = "0.2.2" scheduled-thread-pool = "0.2.2"
serde = "1.0" serde = "1.0"

View File

@ -7,17 +7,16 @@ edition = "2018"
[dependencies] [dependencies]
array_tool = "1.0" array_tool = "1.0"
base64 = "0.13" base64 = "0.13"
heck = "0.4.0"
hex = "0.4" hex = "0.4"
openssl = "0.10.40" openssl = "0.10.40"
rocket = "0.4.6" rocket = "0.4.11"
reqwest = { version = "0.11.10", features = ["blocking", "json", "socks"] } reqwest = { version = "0.11.10", features = ["blocking", "json", "socks"] }
serde = "1.0" serde = "1.0"
serde_derive = "1.0" serde_derive = "1.0"
serde_json = "1.0.81" serde_json = "1.0.81"
shrinkwraprs = "0.3.0" shrinkwraprs = "0.3.0"
syntect = "4.5.0" syntect = "4.5.0"
regex-syntax = { version = "0.6.17", default-features = false, features = ["unicode-perl"] } regex-syntax = { version = "0.6.26", default-features = false, features = ["unicode-perl"] }
tracing = "0.1.34" tracing = "0.1.34"
askama_escape = "0.10.3" askama_escape = "0.10.3"
activitystreams = "0.7.0-alpha.18" activitystreams = "0.7.0-alpha.18"
@ -38,6 +37,6 @@ branch = "bidi-plume"
[dev-dependencies] [dev-dependencies]
assert-json-diff = "2.0.1" assert-json-diff = "2.0.1"
once_cell = "1.10.0" once_cell = "1.12.0"
[features] [features]

View File

@ -1,4 +1,3 @@
use heck::ToUpperCamelCase;
use openssl::rand::rand_bytes; use openssl::rand::rand_bytes;
use pulldown_cmark::{html, CodeBlockKind, CowStr, Event, LinkType, Options, Parser, Tag}; use pulldown_cmark::{html, CodeBlockKind, CowStr, Event, LinkType, Options, Parser, Tag};
use regex_syntax::is_word_character; use regex_syntax::is_word_character;
@ -16,14 +15,6 @@ pub fn random_hex() -> String {
.fold(String::new(), |res, byte| format!("{}{:x}", res, byte)) .fold(String::new(), |res, byte| format!("{}{:x}", res, byte))
} }
/// Remove non alphanumeric characters and CamelCase a string
pub fn make_actor_id(name: &str) -> String {
name.to_upper_camel_case()
.chars()
.filter(|c| c.is_alphanumeric())
.collect()
}
/** /**
* Percent-encode characters which are not allowed in IRI path segments. * Percent-encode characters which are not allowed in IRI path segments.
* *

View File

@ -13,7 +13,7 @@ lazy_static = "1.0"
ldap3 = "0.10.5" ldap3 = "0.10.5"
migrations_internals= "1.4.0" migrations_internals= "1.4.0"
openssl = "0.10.40" openssl = "0.10.40"
rocket = "0.4.6" rocket = "0.4.11"
rocket_i18n = "0.4.1" rocket_i18n = "0.4.1"
reqwest = "0.11.10" reqwest = "0.11.10"
scheduled-thread-pool = "0.2.2" scheduled-thread-pool = "0.2.2"
@ -31,7 +31,7 @@ glob = "0.3.0"
lindera-tantivy = { version = "0.7.1", optional = true } lindera-tantivy = { version = "0.7.1", optional = true }
tracing = "0.1.34" tracing = "0.1.34"
riker = "0.4.2" riker = "0.4.2"
once_cell = "1.10.0" once_cell = "1.12.0"
lettre = "0.9.6" lettre = "0.9.6"
native-tls = "0.2.10" native-tls = "0.2.10"
activitystreams = "0.7.0-alpha.18" activitystreams = "0.7.0-alpha.18"

View File

@ -95,6 +95,10 @@ impl Blog {
find_by!(blogs, find_by_ap_url, ap_url as &str); find_by!(blogs, find_by_ap_url, ap_url as &str);
find_by!(blogs, find_by_name, actor_id as &str, instance_id as i32); find_by!(blogs, find_by_name, actor_id as &str, instance_id as i32);
pub fn slug(title: &str) -> &str {
title
}
pub fn get_instance(&self, conn: &Connection) -> Result<Instance> { pub fn get_instance(&self, conn: &Connection) -> Result<Instance> {
Instance::get(conn, self.instance_id) Instance::get(conn, self.instance_id)
} }

View File

@ -79,7 +79,7 @@ pub struct NewBlogForm {
} }
fn valid_slug(title: &str) -> Result<(), ValidationError> { fn valid_slug(title: &str) -> Result<(), ValidationError> {
let slug = utils::make_actor_id(title); let slug = Blog::slug(title);
if slug.is_empty() { if slug.is_empty() {
Err(ValidationError::new("empty_slug")) Err(ValidationError::new("empty_slug"))
} else { } else {
@ -93,7 +93,7 @@ pub fn create(
conn: DbConn, conn: DbConn,
rockets: PlumeRocket, rockets: PlumeRocket,
) -> RespondOrRedirect { ) -> RespondOrRedirect {
let slug = utils::make_actor_id(&form.title); let slug = Blog::slug(&form.title);
let intl = &rockets.intl.catalog; let intl = &rockets.intl.catalog;
let user = rockets.user.clone().unwrap(); let user = rockets.user.clone().unwrap();
@ -101,7 +101,7 @@ pub fn create(
Ok(_) => ValidationErrors::new(), Ok(_) => ValidationErrors::new(),
Err(e) => e, Err(e) => e,
}; };
if Blog::find_by_fqn(&conn, &slug).is_ok() { if Blog::find_by_fqn(&conn, slug).is_ok() {
errors.add( errors.add(
"title", "title",
ValidationError { ValidationError {
@ -122,7 +122,7 @@ pub fn create(
let blog = Blog::insert( let blog = Blog::insert(
&conn, &conn,
NewBlog::new_local( NewBlog::new_local(
slug.clone(), slug.into(),
form.title.to_string(), form.title.to_string(),
String::from(""), String::from(""),
Instance::get_local() Instance::get_local()
@ -379,6 +379,7 @@ pub fn atom_feed(name: String, conn: DbConn) -> Option<Content<String>> {
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::valid_slug;
use crate::init_rocket; use crate::init_rocket;
use diesel::Connection; use diesel::Connection;
use plume_common::utils::random_hex; use plume_common::utils::random_hex;
@ -524,4 +525,10 @@ mod tests {
.finish(), .finish(),
); );
} }
#[test]
fn test_valid_slug() {
assert!(valid_slug("Blog Title").is_ok());
assert!(valid_slug("ブログ タイトル").is_ok());
}
} }