From 8eb46f1f2387d3e9f4651e8f042f4a7319f5da9e Mon Sep 17 00:00:00 2001 From: jude Date: Sat, 14 May 2022 10:56:03 +0100 Subject: [PATCH] delete reminders when the user cannot be direct messaged --- postman/src/sender.rs | 13 +++++++++---- src/models/user_data.rs | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/postman/src/sender.rs b/postman/src/sender.rs index 141e234..2007519 100644 --- a/postman/src/sender.rs +++ b/postman/src/sender.rs @@ -7,7 +7,7 @@ use regex::{Captures, Regex}; use serde::Deserialize; use serenity::{ builder::CreateEmbed, - http::{CacheHttp, Http, StatusCode}, + http::{CacheHttp, Http, HttpError, StatusCode}, model::{ channel::{Channel, Embed as SerenityEmbed}, id::ChannelId, @@ -569,10 +569,15 @@ UPDATE `channels` SET paused = 0, paused_until = NULL WHERE `channel` = ? if let Error::Http(error) = e { if error.status_code() == Some(StatusCode::NOT_FOUND) { - error!("Seeing channel is deleted. Removing reminder"); + warn!("Seeing channel is deleted. Removing reminder"); self.force_delete(pool).await; - } else { - self.refresh(pool).await; + } else if let HttpError::UnsuccessfulRequest(error) = *error { + if error.error.code == 50007 { + warn!("User cannot receive DMs"); + self.force_delete(pool).await; + } else { + self.refresh(pool).await; + } } } else { self.refresh(pool).await; diff --git a/src/models/user_data.rs b/src/models/user_data.rs index 8a9f188..be85370 100644 --- a/src/models/user_data.rs +++ b/src/models/user_data.rs @@ -71,7 +71,7 @@ INSERT IGNORE INTO channels (channel) VALUES (?) sqlx::query!( " -INSERT INTO users (user, dm_channel, timezone) VALUES (?, (SELECT id FROM channels WHERE channel = ?), ?) +INSERT INTO users (name, user, dm_channel, timezone) VALUES ('', ?, (SELECT id FROM channels WHERE channel = ?), ?) ", user_id.0, dm_channel.id.0,