complete reminders
This commit is contained in:
parent
44adad28a9
commit
8b05c26dab
2 changed files with 15 additions and 13 deletions
|
@ -1,5 +1,5 @@
|
||||||
import { Client } from 'discord.js';
|
import { Client } from 'discord.js';
|
||||||
import { deleteReminder, infoReminder, OptionReminder, sendReminder } from '../../utils/reminder';
|
import { deleteReminder, infoReminder, OptionReminder, sendReminder, setTimeoutReminder } from '../../utils/reminder';
|
||||||
|
|
||||||
export const once = true;
|
export const once = true;
|
||||||
|
|
||||||
|
@ -33,13 +33,6 @@ export default async (client: Client) => {
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
const now = Date.now();
|
const now = Date.now();
|
||||||
(data as dbReminder[]).forEach((element) => {
|
(data as dbReminder[]).forEach((element) => {
|
||||||
if (element.expiration_date <= now) {
|
|
||||||
// Reminder expired
|
|
||||||
deleteReminder(client, element.creation_date, `${element.user_id}`).then((res) => {
|
|
||||||
if (res != true) {
|
|
||||||
throw res;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const info = {
|
const info = {
|
||||||
locale: element.locale,
|
locale: element.locale,
|
||||||
message: element.data,
|
message: element.data,
|
||||||
|
@ -48,11 +41,20 @@ export default async (client: Client) => {
|
||||||
userId: `${element.user_id}`,
|
userId: `${element.user_id}`,
|
||||||
guildId: `${element.guild_id}`,
|
guildId: `${element.guild_id}`,
|
||||||
} as infoReminder;
|
} as infoReminder;
|
||||||
|
|
||||||
|
if (element.expiration_date <= now) {
|
||||||
|
// Reminder expired
|
||||||
|
deleteReminder(client, element.creation_date, `${element.user_id}`).then((res) => {
|
||||||
|
if (res != true) {
|
||||||
|
throw res;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
client.channels.fetch(`${info.channelId}`).then((val) => console.log(val?.url));
|
||||||
sendReminder(client, info, element.option_id as OptionReminder);
|
sendReminder(client, info, element.option_id as OptionReminder);
|
||||||
} else {
|
} else {
|
||||||
// Restart timeout
|
// Restart timeout
|
||||||
|
setTimeoutReminder(client, info, element.option_id, (element.expiration_date - now) / 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
throw err;
|
throw err;
|
||||||
|
|
|
@ -59,10 +59,10 @@ export const newReminder = async (client: Client, time: string, info: infoRemind
|
||||||
data, expiration_date, option_id, channel_id, creation_date, user_id, guild_id, locale \
|
data, expiration_date, option_id, channel_id, creation_date, user_id, guild_id, locale \
|
||||||
) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? );', [
|
) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? );', [
|
||||||
info.message,
|
info.message,
|
||||||
info.createdAt + timeout,
|
`${info.createdAt + (timeout * 1000)}`,
|
||||||
data.option.valueOf(),
|
data.option.valueOf(),
|
||||||
info.channelId,
|
info.channelId,
|
||||||
info.createdAt,
|
`${info.createdAt}`,
|
||||||
info.userId,
|
info.userId,
|
||||||
info.guildId,
|
info.guildId,
|
||||||
info.locale], (err) => {
|
info.locale], (err) => {
|
||||||
|
@ -128,7 +128,7 @@ export const sendReminder = (client: Client, info: infoReminder, option: OptionR
|
||||||
* @param option option used for this reminder (aka location of the response)
|
* @param option option used for this reminder (aka location of the response)
|
||||||
* @param timeout Amout of time before the reminder ends
|
* @param timeout Amout of time before the reminder ends
|
||||||
*/
|
*/
|
||||||
const setTimeoutReminder = (client: Client, info: infoReminder, option: OptionReminder, timeout: number) => {
|
export const setTimeoutReminder = (client: Client, info: infoReminder, option: OptionReminder, timeout: number) => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
deleteReminder(client, info.createdAt, info.userId).then((val) => {
|
deleteReminder(client, info.createdAt, info.userId).then((val) => {
|
||||||
if (val != true) {
|
if (val != true) {
|
||||||
|
|
Loading…
Reference in a new issue