Files
payphone/src/groups/calls/strings.rs
T
2026-03-07 19:27:40 -03:00

143 lines
4.1 KiB
Rust

use once_cell::sync::Lazy;
use rand::SeedableRng;
use rand::seq::IndexedRandom;
use rand_chacha::ChaCha20Rng;
static STRINGS_TIPS: Lazy<Vec<String>> = Lazy::new(|| {
let json = include_str!("strings/tips.json");
let strings: Vec<String> =
serde_json::from_str(json).expect("Failed to parse strings/tips.json strings");
assert_ne!(strings.len(), 0, "No strings found in strings/tips.json");
strings
});
pub fn get_string_tips(prefix: &str) -> String {
let mut rng = ChaCha20Rng::from_os_rng();
let message = STRINGS_TIPS
.choose(&mut rng)
.expect("Failed to choose a random string from tips");
message.replace("{prefix}", prefix)
}
static STRINGS_CALL_ANSWERED: Lazy<Vec<String>> = Lazy::new(|| {
let json = include_str!("strings/call-answered.json");
let strings: Vec<String> =
serde_json::from_str(json).expect("Failed to parse strings/call-answered.json strings");
assert_ne!(
strings.len(),
0,
"No strings found in strings/call-answered.json"
);
strings
});
pub fn get_string_call_answered(prefix: &str) -> String {
let mut rng = ChaCha20Rng::from_os_rng();
let message = STRINGS_CALL_ANSWERED
.choose(&mut rng)
.expect("Failed to choose a random string from call answered strings");
message.replace("{prefix}", prefix)
}
static STRINGS_CALL_SEARCHING: Lazy<Vec<String>> = Lazy::new(|| {
let json = include_str!("strings/call-searching.json");
let strings: Vec<String> =
serde_json::from_str(json).expect("Failed to parse strings/call-searching.json strings");
assert_ne!(
strings.len(),
0,
"No strings found in strings/call-searching.json"
);
strings
});
pub fn get_string_call_searching(prefix: &str) -> String {
let mut rng = ChaCha20Rng::from_os_rng();
let message = STRINGS_CALL_SEARCHING
.choose(&mut rng)
.expect("Failed to choose a random string from call starting strings");
message.replace("{prefix}", prefix)
}
static STRINGS_CALL_NO_ANSWER: Lazy<Vec<String>> = Lazy::new(|| {
let json = include_str!("strings/call-no-answer.json");
let strings: Vec<String> =
serde_json::from_str(json).expect("Failed to parse strings/call-no-answer.json strings");
assert_ne!(
strings.len(),
0,
"No strings found in strings/call-no-answer.json"
);
strings
});
pub fn get_string_call_no_answer(prefix: &str) -> String {
let mut rng = ChaCha20Rng::from_os_rng();
let message = STRINGS_CALL_NO_ANSWER
.choose(&mut rng)
.expect("Failed to choose a random string from call no answer strings");
message.replace("{prefix}", prefix)
}
static STRINGS_CALL_HANGUP_THIS_PARTY: Lazy<Vec<String>> = Lazy::new(|| {
let json = include_str!("strings/call-hangup-this-party.json");
let strings: Vec<String> = serde_json::from_str(json)
.expect("Failed to parse strings/call-hangup-this-party.json strings");
assert_ne!(
strings.len(),
0,
"No strings found in strings/call-hangup-this-party.json"
);
strings
});
pub fn get_string_call_hangup_this_party(prefix: &str) -> String {
let mut rng = ChaCha20Rng::from_os_rng();
let message = STRINGS_CALL_HANGUP_THIS_PARTY
.choose(&mut rng)
.expect("Failed to choose a random string from call hangup this party strings");
message.replace("{prefix}", prefix)
}
static STRINGS_CALL_HANGUP_OTHER_PARTY: Lazy<Vec<String>> = Lazy::new(|| {
let json = include_str!("strings/call-hangup-other-party.json");
let strings: Vec<String> = serde_json::from_str(json)
.expect("Failed to parse strings/call-hangup-other-party.json strings");
assert_ne!(
strings.len(),
0,
"No strings found in strings/call-hangup-other-party.json"
);
strings
});
pub fn get_string_call_hangup_other_party(prefix: &str) -> String {
let mut rng = ChaCha20Rng::from_os_rng();
let message = STRINGS_CALL_HANGUP_OTHER_PARTY
.choose(&mut rng)
.expect("Failed to choose a random string from call hangup other party strings");
message.replace("{prefix}", prefix)
}