mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-03 08:57:54 +00:00
Create user_input_common shared lib crate
This commit is contained in:
1 parent
4e8c736814
commit
c25639baa4
30 files changed
+70
-37
No files matched your search
Generated
+12
@@ -3804,6 +3804,7 @@ dependencies = [
|
||||
"twitch_api2",
|
||||
"twitch_common",
|
||||
"twitch_oauth2",
|
||||
"user_input_common",
|
||||
"uuid",
|
||||
]
|
||||
|
||||
@@ -4538,6 +4539,17 @@ dependencies = [
|
||||
"percent-encoding 2.1.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "user_input_common"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"container_common",
|
||||
"log",
|
||||
"once_cell",
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "utf-8"
|
||||
version = "0.7.6"
|
||||
|
||||
@@ -9,6 +9,7 @@ members = [
|
||||
"crates/lib/redis_common",
|
||||
"crates/lib/tts_common",
|
||||
"crates/lib/twitch_common",
|
||||
"crates/lib/user_input_common",
|
||||
|
||||
# Application
|
||||
"crates/service/obs_gateway",
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
[package]
|
||||
name = "user_input_common"
|
||||
edition = "2018"
|
||||
version = "0.0.1"
|
||||
authors = [
|
||||
"Brandon Thomas <bt@brand.io>",
|
||||
"Brandon Thomas <echelon@gmail.com>",
|
||||
]
|
||||
publish = false
|
||||
|
||||
[lib]
|
||||
name = "user_input_common"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
|
||||
# Internal
|
||||
container_common = { path = "../container_common" }
|
||||
|
||||
# External
|
||||
anyhow = "1.0.40"
|
||||
log = "0.4.14"
|
||||
once_cell = "1.9.0"
|
||||
regex = "1.5.4"
|
||||
+8
-7
@@ -1,15 +1,16 @@
|
||||
use std::collections::HashSet;
|
||||
use crate::BANNED_SLURS;
|
||||
use once_cell::sync::Lazy;
|
||||
use std::collections::HashSet;
|
||||
|
||||
pub fn contains_slurs(unparsed_text: &str) -> bool {
|
||||
lazy_static! {
|
||||
static ref BANNED_SLURS_SET : HashSet<String> = BANNED_SLURS.lines()
|
||||
static BANNED_SLURS_SET : Lazy<HashSet<String>> = Lazy::new(|| {
|
||||
BANNED_SLURS.lines()
|
||||
.map(|line| line.trim())
|
||||
.filter(|line| !(line.starts_with("#") || line.is_empty()))
|
||||
.map(|line| line.to_string())
|
||||
.collect::<HashSet<String>>();
|
||||
}
|
||||
.collect::<HashSet<String>>()
|
||||
});
|
||||
|
||||
pub fn contains_slurs(unparsed_text: &str) -> bool {
|
||||
for wordlike in unparsed_text.split_ascii_whitespace() {
|
||||
if BANNED_SLURS_SET.contains(wordlike) {
|
||||
return true;
|
||||
@@ -21,7 +22,7 @@ pub fn contains_slurs(unparsed_text: &str) -> bool {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::check_for_slurs::contains_slurs;
|
||||
|
||||
#[test]
|
||||
fn valid_text_passes() {
|
||||
@@ -0,0 +1,12 @@
|
||||
#![forbid(dead_code)]
|
||||
#![forbid(non_snake_case)]
|
||||
#![forbid(private_in_public)]
|
||||
#![forbid(unused_imports)]
|
||||
#![forbid(unused_must_use)] // Important
|
||||
#![forbid(unused_mut)]
|
||||
#![forbid(unused_variables)]
|
||||
#![forbid(warnings)]
|
||||
|
||||
pub (crate) const BANNED_SLURS : &'static str = include_str!("../../../../db/banned_slurs.txt");
|
||||
|
||||
pub mod check_for_slurs;
|
||||
@@ -45,6 +45,7 @@ http_server_common = { path = "../../lib/http_server_common" }
|
||||
redis_common = { path = "../../lib/redis_common" }
|
||||
tts_common = { path = "../../lib/tts_common" }
|
||||
twitch_common = { path = "../../lib/twitch_common" }
|
||||
user_input_common = { path = "../../lib/user_input_common" }
|
||||
|
||||
# External
|
||||
anyhow = "1.0.40"
|
||||
|
||||
-1
@@ -17,7 +17,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
@@ -14,7 +14,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use database_queries::tokens::Tokens;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use log::{info, warn, log};
|
||||
|
||||
@@ -17,7 +17,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
-1
@@ -16,7 +16,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use lexical_sort::natural_lexical_cmp;
|
||||
use log::{info, warn, log};
|
||||
|
||||
-1
@@ -15,7 +15,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
-1
@@ -14,7 +14,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
use sqlx::MySqlPool;
|
||||
|
||||
-1
@@ -14,7 +14,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
-1
@@ -16,7 +16,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
-1
@@ -10,7 +10,6 @@ use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::response_success_helpers::simple_json_success;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::ip_addresses::validate_moderator_provided_ip_address;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
|
||||
-1
@@ -11,7 +11,6 @@ use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::response_success_helpers::simple_json_success;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
|
||||
-1
@@ -12,7 +12,6 @@ use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::response_success_helpers::simple_json_success;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
|
||||
-1
@@ -12,7 +12,6 @@ use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::response_success_helpers::simple_json_success;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
|
||||
-1
@@ -14,7 +14,6 @@ use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::response_success_helpers::simple_json_success;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
|
||||
-1
@@ -12,7 +12,6 @@ use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::response_success_helpers::simple_json_success;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
use actix_http::Error;
|
||||
use actix_http::http::header;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::HttpResponseBuilder;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::{Path, Json};
|
||||
use actix_web::{Responder, web, HttpResponse, error, HttpRequest};
|
||||
use crate::database::enums::record_visibility::RecordVisibility;
|
||||
use crate::database::enums::vocoder_type::VocoderType;
|
||||
use crate::database::queries::query_tts_model::select_tts_model_by_token;
|
||||
use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
@@ -14,7 +15,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use derive_more::{Display, Error};
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
@@ -23,7 +23,7 @@ use sqlx::error::DatabaseError;
|
||||
use sqlx::error::Error::Database;
|
||||
use sqlx::mysql::MySqlDatabaseError;
|
||||
use std::sync::Arc;
|
||||
use crate::database::enums::vocoder_type::VocoderType;
|
||||
use user_input_common::check_for_slurs::contains_slurs;
|
||||
|
||||
/// For the URL PathInfo
|
||||
#[derive(Deserialize)]
|
||||
|
||||
@@ -15,7 +15,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use derive_more::{Display, Error};
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
@@ -10,7 +10,6 @@ use crate::database::helpers::enums::{DownloadUrlType, W2lTemplateType};
|
||||
use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
@@ -24,6 +23,7 @@ use sqlx::error::DatabaseError;
|
||||
use sqlx::error::Error::Database;
|
||||
use sqlx::mysql::MySqlDatabaseError;
|
||||
use std::sync::Arc;
|
||||
use user_input_common::check_for_slurs::contains_slurs;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct InferTtsRequest {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use actix_http::Error;
|
||||
use actix_http::http::header;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::HttpResponseBuilder;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{Responder, web, HttpResponse, error, HttpRequest};
|
||||
@@ -12,7 +12,6 @@ use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::http_server::web_utils::serialize_as_json_error::serialize_as_json_error;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
use crate::validations::username_reservations::is_reserved_username;
|
||||
@@ -27,6 +26,7 @@ use std::collections::HashMap;
|
||||
use std::fmt::Formatter;
|
||||
use std::fmt;
|
||||
use std::sync::Arc;
|
||||
use user_input_common::check_for_slurs::contains_slurs;
|
||||
|
||||
const NEW_USER_ROLE: &'static str = "user";
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use actix_http::Error;
|
||||
use actix_http::http::header;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::HttpResponseBuilder;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::Path;
|
||||
@@ -15,7 +15,6 @@ use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::cashapp_username::{validate_cashapp_username, normalize_cashapp_username_for_storage};
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::discord_username::validate_discord_username;
|
||||
use crate::validations::github_username::validate_github_username;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
@@ -31,6 +30,7 @@ use sqlx::error::DatabaseError;
|
||||
use sqlx::error::Error::Database;
|
||||
use sqlx::mysql::MySqlDatabaseError;
|
||||
use std::sync::Arc;
|
||||
use user_input_common::check_for_slurs::contains_slurs;
|
||||
|
||||
/// For the URL PathInfo
|
||||
#[derive(Deserialize)]
|
||||
|
||||
@@ -14,7 +14,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use derive_more::{Display, Error};
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use actix_http::Error;
|
||||
use actix_http::http::header;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::HttpResponseBuilder;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::web::{Path, Json};
|
||||
@@ -14,7 +14,6 @@ use crate::http_server::web_utils::response_success_helpers::simple_json_success
|
||||
use crate::server_state::ServerState;
|
||||
use crate::util::email_to_gravatar::email_to_gravatar;
|
||||
use crate::util::markdown_to_html::markdown_to_html;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use derive_more::{Display, Error};
|
||||
use log::{info, warn, log};
|
||||
use regex::Regex;
|
||||
@@ -23,6 +22,7 @@ use sqlx::error::DatabaseError;
|
||||
use sqlx::error::Error::Database;
|
||||
use sqlx::mysql::MySqlDatabaseError;
|
||||
use std::sync::Arc;
|
||||
use user_input_common::check_for_slurs::contains_slurs;
|
||||
|
||||
/// For the URL PathInfo
|
||||
#[derive(Deserialize)]
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
use actix_http::Error;
|
||||
use actix_http::http::header;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::HttpResponseBuilder;
|
||||
use actix_web::cookie::Cookie;
|
||||
use actix_web::error::ResponseError;
|
||||
use actix_web::http::StatusCode;
|
||||
use actix_web::{Responder, web, HttpResponse, error, HttpRequest};
|
||||
@@ -9,7 +9,6 @@ use crate::database::helpers::enums::{DownloadUrlType, CreatorSetVisibility, W2l
|
||||
use crate::http_server::web_utils::ip_address::get_request_ip;
|
||||
use crate::http_server::web_utils::response_error_helpers::to_simple_json_error;
|
||||
use crate::server_state::ServerState;
|
||||
use crate::validations::check_for_slurs::contains_slurs;
|
||||
use crate::validations::model_uploads::validate_model_title;
|
||||
use crate::validations::passwords::validate_passwords;
|
||||
use crate::validations::username::validate_username;
|
||||
@@ -21,6 +20,7 @@ use sqlx::error::DatabaseError;
|
||||
use sqlx::error::Error::Database;
|
||||
use sqlx::mysql::MySqlDatabaseError;
|
||||
use std::sync::Arc;
|
||||
use user_input_common::check_for_slurs::contains_slurs;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct UploadW2lTemplateRequest {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
|
||||
pub const RESERVED_USERNAMES : &'static str = include_str!("../../../../db/reserved_usernames.txt");
|
||||
pub const RESERVED_SUBSTRINGS : &'static str = include_str!("../../../../db/reserved_usernames_including.txt");
|
||||
pub const BANNED_SLURS : &'static str = include_str!("../../../../db/banned_slurs.txt");
|
||||
|
||||
pub mod database;
|
||||
pub mod common_env;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
pub mod cashapp_username;
|
||||
pub mod check_for_slurs;
|
||||
pub mod discord_username;
|
||||
pub mod github_username;
|
||||
pub mod ip_addresses;
|
||||
|
||||
Reference in new issue
Block a user