mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
refactor: remove dead code (#3337)
This commit is contained in:
1 parent
a19002652b
commit
93d1f8af46
1527 files changed
+21170
-73846
No files matched your search
@@ -1,31 +1,5 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
pub fn has_flag(flags: u64, flag: u64) -> bool {
|
||||
flags & flag != 0
|
||||
}
|
||||
|
||||
pub fn set_flag(flags: u64, flag: u64) -> u64 {
|
||||
flags | flag
|
||||
}
|
||||
|
||||
pub fn clear_flag(flags: u64, flag: u64) -> u64 {
|
||||
flags & !flag
|
||||
}
|
||||
|
||||
pub fn toggle_flag(flags: u64, flag: u64) -> u64 {
|
||||
flags ^ flag
|
||||
}
|
||||
|
||||
pub fn list_flags(flags: u64) -> Vec<u32> {
|
||||
let mut result = Vec::new();
|
||||
for bit in 0..64 {
|
||||
if flags & (1u64 << bit) != 0 {
|
||||
result.push(bit);
|
||||
}
|
||||
}
|
||||
result
|
||||
}
|
||||
|
||||
pub fn format_discriminator(discriminator: &str) -> String {
|
||||
let num: u16 = discriminator.parse().unwrap_or(0);
|
||||
format!("{num:04}")
|
||||
@@ -53,36 +27,4 @@ mod tests {
|
||||
assert_eq!(format_discriminator(""), "0000");
|
||||
assert_eq!(format_discriminator("abc"), "0000");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn has_flag_checks_bit() {
|
||||
assert!(has_flag(0b1010, 0b0010));
|
||||
assert!(!has_flag(0b1010, 0b0001));
|
||||
assert!(has_flag(0b1111, 0b0100));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn set_flag_sets_bit() {
|
||||
assert_eq!(set_flag(0b1000, 0b0010), 0b1010);
|
||||
assert_eq!(set_flag(0b1010, 0b0010), 0b1010);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn clear_flag_clears_bit() {
|
||||
assert_eq!(clear_flag(0b1010, 0b0010), 0b1000);
|
||||
assert_eq!(clear_flag(0b1000, 0b0010), 0b1000);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn toggle_flag_toggles_bit() {
|
||||
assert_eq!(toggle_flag(0b1000, 0b0010), 0b1010);
|
||||
assert_eq!(toggle_flag(0b1010, 0b0010), 0b1000);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn list_flags_returns_set_positions() {
|
||||
assert_eq!(list_flags(0b1010), vec![1, 3]);
|
||||
assert_eq!(list_flags(0b0001), vec![0]);
|
||||
assert!(list_flags(0).is_empty());
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
use axum::{body, extract::Request};
|
||||
use serde::Deserialize;
|
||||
use std::collections::BTreeMap;
|
||||
use url::form_urlencoded;
|
||||
|
||||
@@ -130,36 +129,6 @@ impl MultiValueForm {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn parse_page(value: Option<&str>) -> u32 {
|
||||
value
|
||||
.and_then(|s| s.parse::<u32>().ok())
|
||||
.unwrap_or(1)
|
||||
.max(1)
|
||||
}
|
||||
|
||||
pub fn parse_per_page(value: Option<&str>, default: u32) -> u32 {
|
||||
value
|
||||
.and_then(|s| s.parse::<u32>().ok())
|
||||
.unwrap_or(default)
|
||||
.clamp(1, 100)
|
||||
}
|
||||
|
||||
pub fn sanitize_redirect(value: &str) -> String {
|
||||
let trimmed = value.trim();
|
||||
if trimmed.is_empty() || !trimmed.starts_with('/') || trimmed.starts_with("//") {
|
||||
return "/".to_owned();
|
||||
}
|
||||
trimmed.to_owned()
|
||||
}
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct HtmxFormData {
|
||||
#[serde(default)]
|
||||
pub _csrf: String,
|
||||
#[serde(flatten)]
|
||||
pub fields: std::collections::HashMap<String, String>,
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
@@ -228,45 +197,4 @@ mod tests {
|
||||
assert!(MultiValueForm::parse(b"enabled=true").bool_value("enabled"));
|
||||
assert!(!MultiValueForm::parse(b"enabled=false").bool_value("enabled"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_page_defaults_to_one() {
|
||||
assert_eq!(parse_page(None), 1);
|
||||
assert_eq!(parse_page(Some("")), 1);
|
||||
assert_eq!(parse_page(Some("abc")), 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_page_clamps_to_minimum_one() {
|
||||
assert_eq!(parse_page(Some("0")), 1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_page_valid_input() {
|
||||
assert_eq!(parse_page(Some("5")), 5);
|
||||
assert_eq!(parse_page(Some("100")), 100);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sanitize_redirect_prevents_open_redirect() {
|
||||
assert_eq!(sanitize_redirect(""), "/");
|
||||
assert_eq!(sanitize_redirect("https://evil.com"), "/");
|
||||
assert_eq!(sanitize_redirect("//evil.com"), "/");
|
||||
assert_eq!(sanitize_redirect("javascript:alert(1)"), "/");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sanitize_redirect_allows_valid_paths() {
|
||||
assert_eq!(sanitize_redirect("/users"), "/users");
|
||||
assert_eq!(sanitize_redirect("/guilds/123"), "/guilds/123");
|
||||
assert_eq!(sanitize_redirect(" /trimmed "), "/trimmed");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parse_per_page_clamps_range() {
|
||||
assert_eq!(parse_per_page(None, 25), 25);
|
||||
assert_eq!(parse_per_page(Some("0"), 25), 1);
|
||||
assert_eq!(parse_per_page(Some("200"), 25), 100);
|
||||
assert_eq!(parse_per_page(Some("50"), 25), 50);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
use std::time::{SystemTime, UNIX_EPOCH};
|
||||
|
||||
const FLUXER_EPOCH: u64 = 1_420_070_400_000;
|
||||
|
||||
pub fn snowflake_to_timestamp_ms(snowflake: &str) -> Option<u64> {
|
||||
@@ -10,39 +8,6 @@ pub fn snowflake_to_timestamp_ms(snowflake: &str) -> Option<u64> {
|
||||
Some(timestamp_ms)
|
||||
}
|
||||
|
||||
pub fn relative_time(unix_seconds: u64) -> String {
|
||||
let now = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.expect("system clock before Unix epoch")
|
||||
.as_secs();
|
||||
let diff = now.saturating_sub(unix_seconds);
|
||||
if diff < 60 {
|
||||
return "just now".to_owned();
|
||||
}
|
||||
if diff < 3600 {
|
||||
let minutes = diff / 60;
|
||||
return format!(
|
||||
"{} minute{} ago",
|
||||
minutes,
|
||||
if minutes == 1 { "" } else { "s" }
|
||||
);
|
||||
}
|
||||
if diff < 86400 {
|
||||
let hours = diff / 3600;
|
||||
return format!("{} hour{} ago", hours, if hours == 1 { "" } else { "s" });
|
||||
}
|
||||
let days = diff / 86400;
|
||||
if days < 30 {
|
||||
return format!("{} day{} ago", days, if days == 1 { "" } else { "s" });
|
||||
}
|
||||
let months = days / 30;
|
||||
if months < 12 {
|
||||
return format!("{} month{} ago", months, if months == 1 { "" } else { "s" });
|
||||
}
|
||||
let years = months / 12;
|
||||
format!("{} year{} ago", years, if years == 1 { "" } else { "s" })
|
||||
}
|
||||
|
||||
pub fn format_admin_timestamp(iso: &str) -> String {
|
||||
time::OffsetDateTime::parse(iso, &time::format_description::well_known::Rfc3339)
|
||||
.or_else(|_| {
|
||||
@@ -115,45 +80,6 @@ mod tests {
|
||||
assert_eq!(snowflake_to_timestamp_ms("-1"), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn relative_time_just_now() {
|
||||
let now = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs();
|
||||
assert_eq!(relative_time(now), "just now");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn relative_time_minutes() {
|
||||
let now = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs();
|
||||
assert_eq!(relative_time(now - 120), "2 minutes ago");
|
||||
assert_eq!(relative_time(now - 60), "1 minute ago");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn relative_time_hours() {
|
||||
let now = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs();
|
||||
assert_eq!(relative_time(now - 3600), "1 hour ago");
|
||||
assert_eq!(relative_time(now - 7200), "2 hours ago");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn relative_time_days() {
|
||||
let now = SystemTime::now()
|
||||
.duration_since(UNIX_EPOCH)
|
||||
.unwrap()
|
||||
.as_secs();
|
||||
assert_eq!(relative_time(now - 86400), "1 day ago");
|
||||
assert_eq!(relative_time(now - 86400 * 5), "5 days ago");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snowflake_creation_date_invalid() {
|
||||
assert_eq!(snowflake_creation_date("abc"), "Unknown");
|
||||
|
||||
Reference in new issue
Block a user