Browse Source

Fix not posting edited message

ghorsington 5 years ago
parent
commit
4334faec81
1 changed files with 12 additions and 5 deletions
  1. 12 5
      bot/src/commands/forums_news_checker.ts

+ 12 - 5
bot/src/commands/forums_news_checker.ts

@@ -16,7 +16,7 @@ const NEWS_POST_VERIFY_CHANNEL = "newsPostVerify";
 
 let verifyChannelId: string = null;
 const reactionCollectors: Dict<ReactionCollector> = {};
-const verifyMessageIdToPost: Dict<PostedForumNewsItem> = {};
+const verifyMessageIdToPost: Dict<string> = {};
 const NEWS_FEED_CHANNEL = "newsFeed";
 
 let botUserId = 0;
@@ -35,7 +35,9 @@ const RSS_UPDATE_INTERVAL_MIN = 5;
 const NEWS_FORUM_ID = 49;
 
 function bbCodeToMarkdown(bbCode: string) {
-    return turndown.turndown(render(bbCode)).replace(/( {2}\n|\n\n){2,}/gm, "\n");
+    let html = render(bbCode).replace(/\n/gm, "</br>");
+
+    return turndown.turndown(html).trim();//.replace(/( {2}\n|\n\n){2,}/gm, "\n");
 }
 
 async function checkFeeds() {
@@ -122,7 +124,7 @@ async function initPendingReactors() {
         let collector = m.createReactionCollector(isVerifyReaction, { maxEmojis: 1 });
         collector.on("collect", collectReaction);
         reactionCollectors[m.id] = collector;
-        verifyMessageIdToPost[m.id] = msg;
+        verifyMessageIdToPost[m.id] = msg.id;
     }
 }
 
@@ -152,7 +154,7 @@ async function addVerifyMessage(item: PostedForumNewsItem) {
     let collector = newMessage.createReactionCollector(isVerifyReaction, { maxEmojis: 1 });
     collector.on("collect", collectReaction)
     reactionCollectors[newMessage.id] = collector;
-    verifyMessageIdToPost[newMessage.id] = item;
+    verifyMessageIdToPost[newMessage.id] = item.id;
 
     item.verifyMessage = await verifyMessageRepo.save(item.verifyMessage);
     await forumsNewsRepo.save(item);
@@ -165,7 +167,12 @@ async function collectReaction(reaction: MessageReaction, collector: Collector<s
     let m = reaction.message;
     collector.stop();
     delete reactionCollectors[m.id];
-    let post = verifyMessageIdToPost[m.id];
+    let postId = verifyMessageIdToPost[m.id];
+
+    let post = await postRepo.findOne({
+        where: { id: postId },
+        relations: [ "verifyMessage" ]
+    });
 
     await postRepo.update({ id: post.id }, { verifyMessage: null });
     await verifyMessageRepo.delete({ id: post.verifyMessage.id });