143 lines
4.1 KiB
Rust
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)
|
|
}
|