Make use of archive.json for cleaning DataBoards.

This commit is contained in:
ccd0 2015-02-15 22:15:12 -08:00
parent b954ade8f3
commit 414be72b4a

View File

@ -77,17 +77,32 @@ class DataBoard
if (@data.lastChecked or 0) < now - 2 * $.HOUR if (@data.lastChecked or 0) < now - 2 * $.HOUR
@data.lastChecked = now @data.lastChecked = now
for boardID of @data.boards for boardID of @data.boards
for threadID of @data.boards[boardID] @ajaxClean boardID
@ajaxClean boardID, threadID
return return
ajaxClean: (boardID, threadID) -> ajaxClean: (boardID) ->
$.ajax "//a.4cdn.org/#{boardID}/thread/#{threadID}.json", $.cache "//a.4cdn.org/#{boardID}/threads.json", (e1) =>
onloadend: (e) => if e1.target.status is 200
if e.target.status is 404 if boardID in ['b', 'f']
@delete {boardID, threadID} @ajaxCleanParse boardID, e1.target.response
, else
type: 'head' $.cache "//a.4cdn.org/#{boardID}/archive.json", (e2) =>
if e2.target.status is 200
@ajaxCleanParse boardID, e1.target.response, e2.target.response
ajaxCleanParse: (boardID, response1, response2) ->
board = @data.boards[boardID]
threads = {}
for page in response1
for thread in page.threads
ID = thread.no
threads[ID] = board[ID] if ID of board
if response2
for ID in response2
threads[ID] = board[ID] if ID of board
@data.boards[boardID] = threads
@deleteIfEmpty {boardID}
@save()
onSync: (data) => onSync: (data) =>
@data = data or boards: {} @data = data or boards: {}