This commit is contained in:
Greg Shuflin
2025-07-21 19:17:34 -07:00
parent 7a6646c355
commit 49b51864c4
2 changed files with 28 additions and 27 deletions

View File

@@ -6,8 +6,10 @@ use std::collections::HashMap;
use tokio_tungstenite::{connect_async, tungstenite::protocol::Message};
mod post;
mod util;
use post::*;
use util::hsv_to_rgb;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
@@ -40,34 +42,8 @@ impl BlueskyFirehosePrinter {
Self
}
fn hsv_to_rgb(h: f64, s: f64, v: f64) -> (u8, u8, u8) {
let c = v * s;
let x = c * (1.0 - ((h / 60.0) % 2.0 - 1.0).abs());
let m = v - c;
let (r, g, b) = if h < 60.0 {
(c, x, 0.0)
} else if h < 120.0 {
(x, c, 0.0)
} else if h < 180.0 {
(0.0, c, x)
} else if h < 240.0 {
(0.0, x, c)
} else if h < 300.0 {
(x, 0.0, c)
} else {
(c, 0.0, x)
};
(
((r + m) * 255.0) as u8,
((g + m) * 255.0) as u8,
((b + m) * 255.0) as u8,
)
}
fn create_color_from_hsv(h: f64, s: f64, v: f64) -> colored::Color {
let (r, g, b) = Self::hsv_to_rgb(h, s, v);
let (r, g, b) = hsv_to_rgb(h, s, v);
colored::Color::TrueColor { r, g, b }
}

25
src/util.rs Normal file
View File

@@ -0,0 +1,25 @@
pub fn hsv_to_rgb(h: f64, s: f64, v: f64) -> (u8, u8, u8) {
let c = v * s;
let x = c * (1.0 - ((h / 60.0) % 2.0 - 1.0).abs());
let m = v - c;
let (r, g, b) = if h < 60.0 {
(c, x, 0.0)
} else if h < 120.0 {
(x, c, 0.0)
} else if h < 180.0 {
(0.0, c, x)
} else if h < 240.0 {
(0.0, x, c)
} else if h < 300.0 {
(x, 0.0, c)
} else {
(c, 0.0, x)
};
(
((r + m) * 255.0) as u8,
((g + m) * 255.0) as u8,
((b + m) * 255.0) as u8,
)
}