Recreate webhooks when they go missing, reuse older webhooks, and initiate connections to Redis cluster

This commit is contained in:
2025-08-20 23:20:21 -03:00
parent ee49b0a984
commit aba11cb2da
15 changed files with 553 additions and 34 deletions
+16 -7
View File
@@ -125,16 +125,13 @@ use crate::{
runtime::Runtime,
},
groups::{
about::{commands::HelpCommand, components::HelpGoBackButton},
calls::{
about::{commands::HelpCommand, components::HelpGoBackButton}, calls::{
commands::{CallCommand, FriendRequestCommand, HangupCommand, SkipCommand},
events::{CallMessageDeleteHandler, CallMessageEditHandler, CallMessageHandler},
},
gateway::events::{ReadyHandler, ReconnectHandler},
servers::{
}, gateway::events::{ReadyHandler, ReconnectHandler}, leveling::events::MessageLevelingHandler, servers::{
commands::PrefixCommand,
events::{ServerCreateHandler, ServerDeleteHandler, ServerUpdateHandler},
},
}
},
state::State,
};
@@ -146,6 +143,7 @@ mod discord;
mod framework;
mod groups;
mod logging;
mod redis;
mod state;
mod utils;
@@ -169,6 +167,7 @@ pub async fn main() {
database_username,
database_password,
shard,
redis_urls,
} => {
start(
token,
@@ -176,6 +175,7 @@ pub async fn main() {
database_username,
database_password,
shard.into(),
redis_urls,
)
.await;
}
@@ -217,6 +217,7 @@ async fn start(
database_username: Option<String>,
database_password: Option<String>,
shard: ShardId,
redis_urls: Vec<String>,
) {
log::info!("Welcome to Payphone, Nyeki!");
log::info!(
@@ -230,7 +231,14 @@ async fn start(
log::info!("Database connection established successfully.");
let state = State { db };
let redis_pool = redis::init(redis_urls).expect("Could not connect to Redis!");
log::info!("Redis connection established successfully.");
let state = State {
db,
redis: redis_pool,
};
let bot = Bot::new(state, ServerPrefixOrPayphoneMention)
.shard(shard)
@@ -252,6 +260,7 @@ async fn start(
.on_ready(ReadyHandler)
.on_reconnect(ReconnectHandler)
.on_message(CallMessageHandler)
.on_message(MessageLevelingHandler)
.on_message_edit(CallMessageEditHandler)
.on_message_delete(CallMessageDeleteHandler)
.on_server_create(ServerCreateHandler)