Add isArchived property to Thread Watcher data.

This commit is contained in:
ccd0 2019-12-12 20:59:55 -08:00
parent aca7ed0a55
commit 7488ff9a6c

View File

@ -162,11 +162,8 @@ ThreadWatcher =
if Conf['Auto Prune'] or not (data and typeof data is 'object') # corrupt data if Conf['Auto Prune'] or not (data and typeof data is 'object') # corrupt data
db.delete {boardID, threadID} db.delete {boardID, threadID}
nKilled++ nKilled++
else if ThreadWatcher.unreadEnabled and Conf['Show Unread Count']
ThreadWatcher.fetchStatus {siteID, boardID, threadID, data}
else else
db.extend {boardID, threadID, val: {isDead: true, page: undefined, lastPage: undefined, unread: undefined, quotingYou: undefined}} ThreadWatcher.fetchStatus {siteID, boardID, threadID, data}
nKilled++
ThreadWatcher.refresh() if nKilled ThreadWatcher.refresh() if nKilled
onThreadRefresh: (e) -> onThreadRefresh: (e) ->
thread = g.threads.get(e.detail.threadID) thread = g.threads.get(e.detail.threadID)
@ -340,12 +337,12 @@ ThreadWatcher =
if @status is 200 and @response if @status is 200 and @response
last = @response.posts[@response.posts.length-1].no last = @response.posts[@response.posts.length-1].no
replies = @response.posts.length-1 replies = @response.posts.length-1
isDead = !!@response.posts[0].archived isDead = isArchived = !!@response.posts[0].archived
if isDead and Conf['Auto Prune'] if isDead and Conf['Auto Prune']
ThreadWatcher.rm siteID, boardID, threadID ThreadWatcher.rm siteID, boardID, threadID
return return
return if last is data.last and isDead is data.isDead return if last is data.last and isDead is data.isDead and isArchived is data.isArchived
lastReadPost = ThreadWatcher.unreaddb.get {siteID, boardID, threadID, defaultValue: 0} lastReadPost = ThreadWatcher.unreaddb.get {siteID, boardID, threadID, defaultValue: 0}
unread = data.unread or 0 unread = data.unread or 0
@ -379,7 +376,7 @@ ThreadWatcher =
quotingYou = postObj.no if quotesYou quotingYou = postObj.no if quotesYou
newData or= {} newData or= {}
$.extend newData, {last, replies, isDead, unread, quotingYou} $.extend newData, {last, replies, isDead, isArchived, unread, quotingYou}
ThreadWatcher.update siteID, boardID, threadID, newData ThreadWatcher.update siteID, boardID, threadID, newData
else if @status is 404 else if @status is 404
@ -508,7 +505,7 @@ ThreadWatcher =
ThreadWatcher.rm siteID, boardID, threadID ThreadWatcher.rm siteID, boardID, threadID
return return
if newData.isDead or newData.last is -1 if newData.isDead or newData.last is -1
for key in ['page', 'lastPage', 'unread', 'quotingyou'] when key not of newData for key in ['isArchived', 'page', 'lastPage', 'unread', 'quotingyou'] when key not of newData
newData[key] = undefined newData[key] = undefined
if newData.last? and newData.last < data.last if newData.last? and newData.last < data.last
newData.modified = undefined newData.modified = undefined
@ -528,8 +525,8 @@ ThreadWatcher =
if Conf['Auto Prune'] if Conf['Auto Prune']
ThreadWatcher.db.delete {boardID, threadID} ThreadWatcher.db.delete {boardID, threadID}
return cb() return cb()
return cb() if data.isDead and not (data.page? or data.lastPage? or data.unread? or data.quotingYou?) return cb() if data.isDead and not (data.isArchived? or data.page? or data.lastPage? or data.unread? or data.quotingYou?)
ThreadWatcher.db.extend {boardID, threadID, val: {isDead: true, page: undefined, lastPage: undefined, unread: undefined, quotingYou: undefined}}, cb ThreadWatcher.db.extend {boardID, threadID, val: {isDead: true, isArchived: undefined, page: undefined, lastPage: undefined, unread: undefined, quotingYou: undefined}}, cb
toggle: (thread) -> toggle: (thread) ->
siteID = g.SITE.ID siteID = g.SITE.ID