From f61fc5f1ee98bc70eb01b7bb5e6c5f49e6c297ac Mon Sep 17 00:00:00 2001 From: ccd0 Date: Thu, 4 Apr 2019 06:59:41 -0700 Subject: [PATCH] Fix Thread Watcher bug that in certain circumstances caused the last check of an archived thread for new replies to be skipped. --- src/Monitoring/ThreadWatcher.coffee | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index f7be7a06a..465778c78 100644 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -154,13 +154,14 @@ ThreadWatcher = for threadID, data of db.data[siteID].boards[boardID] when not data?.isDead and "#{boardID}.#{threadID}" not in e.detail.threads # Don't prune threads that have yet to appear in index. continue unless e.detail.threads.some (fullID) -> +fullID.split('.')[1] > threadID - nKilled++ if Conf['Auto Prune'] or not (data and typeof data is 'object') # corrupt data db.delete {boardID, threadID} + nKilled++ + else if ThreadWatcher.unreadEnabled and Conf['Show Unread Count'] + ThreadWatcher.fetchStatus {siteID, boardID, threadID, data} else db.extend {boardID, threadID, val: {isDead: true}} - if ThreadWatcher.unreadEnabled and Conf['Show Unread Count'] - ThreadWatcher.fetchStatus {siteID, boardID, threadID, data} + nKilled++ ThreadWatcher.refresh() if nKilled onThreadRefresh: (e) -> thread = g.threads[e.detail.threadID]