diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index 6d61b1819..a65815ab8 100755 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -290,6 +290,25 @@ ThreadWatcher = Index.sort() Index.buildIndex() + update: (boardID, threadID, newData) -> + return unless data = ThreadWatcher.db?.get {boardID, threadID} + if newData.isDead and Conf['Auto Prune'] + ThreadWatcher.db.delete {boardID, threadID} + ThreadWatcher.refresh() + return + n = 0 + n++ for key, val of newData when data[key] isnt val + return unless n + ThreadWatcher.db.forceSync() + return unless data = ThreadWatcher.db.get {boardID, threadID} + $.extend data, newData + ThreadWatcher.db.set {boardID, threadID, val: data} + if line = $ "#watched-threads > [data-full-i-d='#{boardID}.#{threadID}']", ThreadWatcher.dialog + newLine = ThreadWatcher.makeLine boardID, threadID, data + $.replace line, newLine + else + ThreadWatcher.refresh() + toggle: (thread) -> boardID = thread.board.ID threadID = thread.ID diff --git a/src/Monitoring/Unread.coffee b/src/Monitoring/Unread.coffee index 0f3219244..c59979c5c 100755 --- a/src/Monitoring/Unread.coffee +++ b/src/Monitoring/Unread.coffee @@ -219,6 +219,11 @@ Unread = Unread.title d.title = "#{titleQuotingYou}#{titleCount}#{titleDead}" + ThreadWatcher.update Unread.thread.board.ID, Unread.thread.ID, + isDead: Unread.thread.isDead + unread: count + quotingYou: countQuotingYou + return unless Conf['Unread Favicon'] Favicon.el.href =