From 22c561b796a85a093fc2778f84a66472b0f6087f Mon Sep 17 00:00:00 2001 From: Mayhem Date: Thu, 31 Oct 2013 04:32:45 +0100 Subject: [PATCH] Take into account dead threads in the watcher after an index refresh. --- src/Monitoring/ThreadWatcher.coffee | 11 +++++++++++ src/Posting/QR.coffee | 1 + 2 files changed, 12 insertions(+) diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index 2f2809cd4..71abca86b 100644 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -13,6 +13,7 @@ ThreadWatcher = $.on d, '4chanXInitFinished', @ready switch g.VIEW when 'index' + $.on d, 'IndexRefresh', @cb.indexUpdate $.on d, 'IndexRefresh', @refresh when 'thread' $.on d, 'ThreadUpdate', @cb.threadUpdate @@ -73,6 +74,16 @@ ThreadWatcher = $.set 'AutoWatch', threadID else if Conf['Auto Watch Reply'] ThreadWatcher.add board.threads[threadID] + indexUpdate: -> + {db} = ThreadWatcher + for threadID, data of db.data.boards[g.BOARD.ID] when threadID not in g.BOARD.threads + if Conf['Auto Prune'] + ThreadWatcher.rm g.BOARD.ID, threadID + else + data.isDead = true + db.data.lastChecked = Date.now() + db.save() + ThreadWatcher.refresh() threadUpdate: (e) -> {thread} = e.detail return unless e.detail[404] and ThreadWatcher.db.get {boardID: thread.board.ID, threadID: thread.ID} diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 8830b5472..b244a984b 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -801,6 +801,7 @@ QR = e.preventDefault() generatePostableThreadsList: -> + return unless QR.nodes list = QR.nodes.thread options = [list.firstChild] for thread of g.BOARD.threads