Fetch boards.json data.
This commit is contained in:
parent
3a9fa8d98f
commit
19ba43ae3d
@ -108,6 +108,7 @@ module.exports = (grunt) ->
|
||||
'src/classes/Connection.coffee'
|
||||
'src/classes/Fetcher.coffee'
|
||||
'src/General/Polyfill.coffee'
|
||||
'src/General/BoardsJSON.coffee'
|
||||
'src/General/Header.coffee'
|
||||
'src/General/Index.coffee'
|
||||
'src/General/Build.coffee'
|
||||
|
||||
32
src/General/BoardsJSON.coffee
Normal file
32
src/General/BoardsJSON.coffee
Normal file
@ -0,0 +1,32 @@
|
||||
BoardsJSON =
|
||||
cbs: []
|
||||
|
||||
init: ->
|
||||
if (Conf['boardsJSON'].lastChecked or 0) < Date.now() - 2 * $.HOUR
|
||||
$.ajax '//a.4cdn.org/boards.json', onloadend: @load
|
||||
else
|
||||
@set Conf['boardsJSON'].boards
|
||||
|
||||
load: ->
|
||||
if @status is 200
|
||||
boards = {}
|
||||
for board in @response.boards
|
||||
boards[board.board] = board
|
||||
$.set 'boardsJSON', {boards, lastChecked: Date.now()}
|
||||
else
|
||||
{boards} = Conf['boardsJSON']
|
||||
new Notice 'warning', "Failed to load boards JSON. Error #{@statusText} (#{@status})", 20
|
||||
BoardsJSON.set boards
|
||||
|
||||
set: (@boards) ->
|
||||
for ID, board of @boards
|
||||
g.boards[ID]?.json = board
|
||||
for cb in @cbs
|
||||
$.queueTask cb
|
||||
return
|
||||
|
||||
ready: (cb) ->
|
||||
if @boards
|
||||
cb()
|
||||
else
|
||||
@cbs.push cb
|
||||
@ -36,6 +36,7 @@ Main =
|
||||
|
||||
for db in DataBoard.keys
|
||||
Conf[db] = boards: {}
|
||||
Conf['boardsJSON'] = boards: {}
|
||||
Conf['selectedArchives'] = {}
|
||||
Conf['cooldowns'] = {}
|
||||
|
||||
@ -357,6 +358,7 @@ Main =
|
||||
|
||||
features: [
|
||||
['Polyfill', Polyfill]
|
||||
['Boards JSON', BoardsJSON]
|
||||
['Normalize URL', NormalizeURL]
|
||||
['Captcha Configuration', Captcha.replace]
|
||||
['Redirect', Redirect]
|
||||
|
||||
@ -4,5 +4,6 @@ class Board
|
||||
constructor: (@ID) ->
|
||||
@threads = new SimpleDict()
|
||||
@posts = new SimpleDict()
|
||||
@json = BoardsJSON.boards?[@ID]
|
||||
|
||||
g.boards[@] = @
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user