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
|
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: {}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user