Skip to content

Commit

Permalink
v0.0.2
Browse files Browse the repository at this point in the history
moo during serious discussion... never again
  • Loading branch information
hinto-janai committed Jun 23, 2024
1 parent d422f82 commit 3a7946f
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 23 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "moo"
version = "0.0.1"
version = "0.0.2"
edition = "2021"
authors = ["hinto-janai"]
repository = "https://github.com/Cuprate/moo"
Expand Down
51 changes: 30 additions & 21 deletions src/handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,24 @@ fn filter_message(
return None;
};

if event.content.body().contains("moo") && moo() {
info!("Ignoring message, moo is more important");
let sender = event.sender;
let origin_server_ts = event.origin_server_ts;

let Some(origin_server_ts) = origin_server_ts.to_system_time() else {
warn!("Event UNIX time could not be parsed: {origin_server_ts:#?}");
return None;
};

if let Ok(duration) = startup.duration_since(origin_server_ts) {
let s = duration.as_secs_f32();
info!("Ignoring previous session message: {s}s ago");
return None;
}

let sender = event.sender;
let origin_server_ts = event.origin_server_ts;
let Ok(timestamp) = origin_server_ts.duration_since(UNIX_EPOCH) else {
warn!("Timestamp could not be parsed: {origin_server_ts:#?}");
return None;
};

// The fact that this is after `moo()` means that there's a
// chance `moo` `moo()`ing will trigger itself to `moo()` again...
Expand All @@ -89,22 +100,6 @@ fn filter_message(
return None;
}

let Some(origin_server_ts) = origin_server_ts.to_system_time() else {
warn!("Event UNIX time could not be parsed: {origin_server_ts:#?}");
return None;
};

if let Ok(duration) = startup.duration_since(origin_server_ts) {
let s = duration.as_secs_f32();
info!("Ignoring previous session message: {s}s ago");
return None;
}

let Ok(timestamp) = origin_server_ts.duration_since(UNIX_EPOCH) else {
warn!("Timestamp could not be parsed: {origin_server_ts:#?}");
return None;
};

let MessageType::Text(text) = &event.content.msgtype else {
trace!("Ignoring non-text event");
return None;
Expand Down Expand Up @@ -146,13 +141,27 @@ async fn handle_command(db: Arc<Database>, command: Command, sender: OwnedUserId
}

/// For you, moneromooo.
///
/// 2024-06-23 update:
/// 1. very serious monero discussion occurs
/// 2. `moo` bot joins #cuprate, immediately moos
/// with a whopping 226 extra o's.
///
/// The code that ignores messages from previous sessions
/// was _after_ checking if `moo()` should happen.
///
/// Thinking about it, serious discussion will occur
/// all the time in #cuprate, and `moo` mooing in those
/// moments is not a great look, so I'm going to disable
/// this, sorry moneromooo...
#[cold]
#[inline(never)]
#[allow(dead_code)]
fn moo() -> bool {
use rand::prelude::*;

// 0.390625% chance
let random_number = rand::thread_rng().gen::<u8>();
let random_number = rand::thread_rng().gen::<u16>();
trace!("moo(): random_number: {random_number}");
let time_to_moo = random_number == 0;

Expand Down

0 comments on commit 3a7946f

Please sign in to comment.