3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 20:35:02 +00:00

Some code reorganisation

This commit is contained in:
Dragory 2018-11-24 14:18:48 +02:00
parent ba2ad8a528
commit b692c06b4f
2 changed files with 49 additions and 36 deletions

View file

@ -2,6 +2,8 @@ import { Brackets, getRepository, Repository } from "typeorm";
import { BaseRepository } from "./BaseRepository";
import { ISavedMessageData, SavedMessage } from "./entities/SavedMessage";
import EventEmitter from "events";
import { GuildChannel, Message } from "eris";
import moment from "moment-timezone";
const CLEANUP_INTERVAL = 5 * 60 * 1000;
@ -20,6 +22,18 @@ export class GuildSavedMessages extends BaseRepository {
setInterval(() => this.cleanup(), CLEANUP_INTERVAL);
}
public msgToSavedMessageData(msg: Message): ISavedMessageData {
return {
attachments: msg.attachments,
author: {
username: msg.author.username,
discriminator: msg.author.discriminator
},
content: msg.content,
embeds: msg.embeds
};
}
async cleanup() {
await this.messages
.createQueryBuilder("messages")
@ -60,6 +74,7 @@ export class GuildSavedMessages extends BaseRepository {
try {
await this.messages.insert({ ...data, guild_id: this.guildId });
} catch (e) {
console.warn(e);
return;
}
@ -67,6 +82,23 @@ export class GuildSavedMessages extends BaseRepository {
this.events.emit("create", [inserted]);
}
async createFromMsg(msg: Message, overrides = {}) {
const savedMessageData = this.msgToSavedMessageData(msg);
const postedAt = moment.utc(msg.timestamp, "x").format("YYYY-MM-DD HH:mm:ss.SSS");
const data = {
id: msg.id,
guild_id: (msg.channel as GuildChannel).guild.id,
channel_id: msg.channel.id,
user_id: msg.author.id,
is_bot: msg.author.bot,
data: savedMessageData,
posted_at: postedAt
};
return this.create({ ...data, ...overrides });
}
async markAsDeleted(id) {
await this.messages
.createQueryBuilder("messages")
@ -82,7 +114,7 @@ export class GuildSavedMessages extends BaseRepository {
this.events.emit("delete", [deleted]);
}
async edit(id, newData: ISavedMessageData) {
async saveEdit(id, newData: ISavedMessageData) {
const oldMessage = await this.messages.findOne(id);
const newMessage = { ...oldMessage, data: newData };
@ -95,4 +127,9 @@ export class GuildSavedMessages extends BaseRepository {
this.events.emit("edit", [newMessage, oldMessage]);
}
async saveEditFromMsg(msg: Message) {
const newData = this.msgToSavedMessageData(msg);
return this.saveEdit(msg.id, newData);
}
}