Make use of archive.json for cleaning DataBoards.
This commit is contained in:
parent
b954ade8f3
commit
414be72b4a
@ -77,17 +77,32 @@ class DataBoard
|
||||
if (@data.lastChecked or 0) < now - 2 * $.HOUR
|
||||
@data.lastChecked = now
|
||||
for boardID of @data.boards
|
||||
for threadID of @data.boards[boardID]
|
||||
@ajaxClean boardID, threadID
|
||||
@ajaxClean boardID
|
||||
return
|
||||
|
||||
ajaxClean: (boardID, threadID) ->
|
||||
$.ajax "//a.4cdn.org/#{boardID}/thread/#{threadID}.json",
|
||||
onloadend: (e) =>
|
||||
if e.target.status is 404
|
||||
@delete {boardID, threadID}
|
||||
,
|
||||
type: 'head'
|
||||
ajaxClean: (boardID) ->
|
||||
$.cache "//a.4cdn.org/#{boardID}/threads.json", (e1) =>
|
||||
if e1.target.status is 200
|
||||
if boardID in ['b', 'f']
|
||||
@ajaxCleanParse boardID, e1.target.response
|
||||
else
|
||||
$.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) =>
|
||||
@data = data or boards: {}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user