Browse Source

Fix DB regressions

ghorsington 5 years ago
parent
commit
4c9e06c187
3 changed files with 16 additions and 13 deletions
  1. 5 7
      src/commands/guide.ts
  2. 10 6
      src/commands/rss_checker.ts
  3. 1 0
      src/main.ts

+ 5 - 7
src/commands/guide.ts

@@ -1,11 +1,9 @@
-import { isAuthorised, isAuthorisedAsync } from "../util";
+import { isAuthorisedAsync } from "../util";
 import { ICommand } from "./command";
 import { Message } from "discord.js";
-import { getRepository, getConnection } from "typeorm";
+import { getRepository } from "typeorm";
 import { Guide, GuideType, GuideKeyword } from "../entity/Guide";
 
-const VALID_GUIDE_TYPES = new Set(["meme", "guide", "misc"]);
-
 const makePattern = /^make (\w+)\s+name:(.+)\s*keywords:(.+)\s*contents:((.*[\n\r]*)+)$/i;
 const deletePattern = /^delete (\w+)\s+(.+)$/i;
 
@@ -142,7 +140,7 @@ export default {
                     await addGuide();
         
                 msg.channel.send(
-                    `${msg.author.toString()} Added/updated "${name}" (keywords \`${keywords}\`)!`
+                    `${msg.author.toString()} Added/updated "${name}" (keywords \`${keywords.join(" ")}\`)!`
                 );
             }
         },
@@ -175,12 +173,12 @@ export default {
 
                     if(guideKeywordsCount == dedupedKeywords.length) {
                         await guideRepo.delete({ id: existingGuide.id });
-                        await msg.channel.send(`${msg.author.toString()} Removed ${type} "${keywords}"!`);
+                        await msg.channel.send(`${msg.author.toString()} Removed ${type} "${keywords.join(" ")}"!`);
                         return;
                     }
                 }
                 
-                await msg.channel.send(`${msg.author.toString()} No such ${type} with keywords \`${keywords}\`! Did you forget to specify all keywords?`);
+                await msg.channel.send(`${msg.author.toString()} No such ${type} with keywords \`${keywords.join(" ")}\`! Did you forget to specify all keywords?`);
             }
         },
         { pattern: "guides", action: async msg => await listGuides(msg, "guide", "Here are the guides I have:") },

+ 10 - 6
src/commands/rss_checker.ts

@@ -3,13 +3,13 @@ import RSSParser from "rss-parser";
 import interval from "interval-promise";
 import client from "../client";
 import sha1 from "sha1";
-import html from "node-html-parser";
+import * as html from "node-html-parser";
 import request from "request-promise-native";
 import { ICommand } from "./command";
 import { Response } from "request";
 import { TextChannel, Message, ReactionCollector, MessageReaction, Collector, User, Channel } from "discord.js";
 import { Dict } from "../util";
-import { getRepository, Not } from "typeorm";
+import { getRepository, Not, IsNull } from "typeorm";
 import { PostedForumNewsItem } from "../entity/PostedForumsNewsItem";
 import { KnownChannel } from "../entity/KnownChannel";
 import { PostVerifyMessage } from "../entity/PostVerifyMessage";
@@ -77,7 +77,7 @@ async function checkFeeds() {
                         style: false
                     });
 
-                    if(!(rootNode instanceof HTMLElement))
+                    if(!(rootNode instanceof html.HTMLElement))
                         continue;
 
                     let opDiv = rootNode.querySelector("div.bbWrapper");
@@ -113,11 +113,13 @@ async function checkFeeds() {
                 if(postItem){
                     // Add message ID to mark for edit
                     if(postItem.hash != itemObj.hash){
+                        let newHash = itemObj.hash;
                         if(!postItem.verifyMessage)
                             postItem.verifyMessage = itemObj.verifyMessage;
                         
                         itemObj = postItem;
                         itemObj.verifyMessage.isNew = false;
+                        itemObj.hash = newHash;
                     }
                     else 
                         continue;
@@ -139,7 +141,7 @@ async function initPendingReactors() {
     let verifyMessageRepo = getRepository(PostVerifyMessage);
 
     let pendingVerifyMessages = await repo.find({
-        where: { verifyMessage: Not(null) },
+        where: { verifyMessage: Not(IsNull()) },
         select: [ "id" ],
         relations: [ "verifyMessage" ]
     });
@@ -187,14 +189,16 @@ async function addVerifyMessage(item : PostedForumNewsItem) {
 }
 
 async function collectReaction(reaction : MessageReaction, collector: Collector<string, MessageReaction>) {
-    let verifyMessageRepo = getRepository(PostedForumNewsItem);
+    let verifyMessageRepo = getRepository(PostVerifyMessage);
+    let postRepo = getRepository(PostedForumNewsItem);
     
     let m = reaction.message;
     collector.stop();
     delete reactionCollectors[m.id];
     let post = verifyMessageIdToPost[m.id];
 
-    await verifyMessageRepo.delete({ id: post.id });
+    await postRepo.update({ id: post.id }, { verifyMessage: null });
+    await verifyMessageRepo.delete({ id: post.verifyMessage.id });
     await reaction.message.delete();
 
     if(reaction.emoji.name == "✅")

+ 1 - 0
src/main.ts

@@ -6,6 +6,7 @@ import { ICommand, BotEvent, IBotCommand } from "./commands/command"
 import "reflect-metadata";
 import {createConnection} from "typeorm";
 import { migrate } from "./lowdb_migrator";
+import { documentation } from "./util";
 
 dotenv.config();
 const REACT_PROBABILITY = 0.3;