mirror of
https://github.com/PluralKit/PluralKit.git
synced 2026-02-04 04:56:49 +00:00
fix(gateway): throw error on non-200 from bot
This commit is contained in:
parent
5fcee4eb29
commit
7ba16c1347
1 changed files with 16 additions and 5 deletions
|
|
@ -7,14 +7,14 @@ use discord::gateway::cluster_config;
|
||||||
use event_awaiter::EventAwaiter;
|
use event_awaiter::EventAwaiter;
|
||||||
use fred::{clients::RedisPool, interfaces::*};
|
use fred::{clients::RedisPool, interfaces::*};
|
||||||
use libpk::runtime_config::RuntimeConfig;
|
use libpk::runtime_config::RuntimeConfig;
|
||||||
use reqwest::ClientBuilder;
|
use reqwest::{ClientBuilder, StatusCode};
|
||||||
use signal_hook::{
|
use signal_hook::{
|
||||||
consts::{SIGINT, SIGTERM},
|
consts::{SIGINT, SIGTERM},
|
||||||
iterator::Signals,
|
iterator::Signals,
|
||||||
};
|
};
|
||||||
use std::{sync::Arc, time::Duration, vec::Vec};
|
use std::{sync::Arc, time::Duration, vec::Vec};
|
||||||
use tokio::{sync::mpsc::channel, task::JoinSet};
|
use tokio::{sync::mpsc::channel, task::JoinSet};
|
||||||
use tracing::{debug, error, info, warn};
|
use tracing::{error, info, warn};
|
||||||
use twilight_gateway::{MessageSender, ShardId};
|
use twilight_gateway::{MessageSender, ShardId};
|
||||||
use twilight_model::gateway::payload::outgoing::UpdatePresence;
|
use twilight_model::gateway::payload::outgoing::UpdatePresence;
|
||||||
|
|
||||||
|
|
@ -97,7 +97,7 @@ async fn real_main() -> anyhow::Result<()> {
|
||||||
|
|
||||||
while let Some((shard_id, parsed_event, raw_event)) = event_rx.recv().await {
|
while let Some((shard_id, parsed_event, raw_event)) = event_rx.recv().await {
|
||||||
let target = if let Some(target) = awaiter.target_for_event(parsed_event).await {
|
let target = if let Some(target) = awaiter.target_for_event(parsed_event).await {
|
||||||
debug!("sending event to awaiter");
|
info!(target = ?target, "sending event to awaiter");
|
||||||
Some(target)
|
Some(target)
|
||||||
} else if let Some(target) =
|
} else if let Some(target) =
|
||||||
runtime_config.get(RUNTIME_CONFIG_KEY_EVENT_TARGET).await
|
runtime_config.get(RUNTIME_CONFIG_KEY_EVENT_TARGET).await
|
||||||
|
|
@ -111,13 +111,24 @@ async fn real_main() -> anyhow::Result<()> {
|
||||||
tokio::spawn({
|
tokio::spawn({
|
||||||
let client = client.clone();
|
let client = client.clone();
|
||||||
async move {
|
async move {
|
||||||
if let Err(error) = client
|
match client
|
||||||
.post(format!("{target}/{}", shard_id.number()))
|
.post(format!("{target}/{}", shard_id.number()))
|
||||||
.body(raw_event)
|
.body(raw_event)
|
||||||
.send()
|
.send()
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
error!(error = ?error, "failed to request event target")
|
Ok(res) => {
|
||||||
|
if res.status() != StatusCode::OK {
|
||||||
|
error!(
|
||||||
|
status = ?res.status(),
|
||||||
|
target = ?target,
|
||||||
|
"got non-200 from bot while sending event",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(error) => {
|
||||||
|
error!(error = ?error, "failed to request event target");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue