Tiny refactor in ThreadUpdater.
This commit is contained in:
parent
fff4de5fa4
commit
15309e7968
@ -24,7 +24,6 @@ ThreadUpdater =
|
|||||||
ThreadUpdater.thread = @
|
ThreadUpdater.thread = @
|
||||||
ThreadUpdater.root = @OP.nodes.root.parentNode
|
ThreadUpdater.root = @OP.nodes.root.parentNode
|
||||||
ThreadUpdater.lastPost = +ThreadUpdater.root.lastElementChild.id.match(/\d+/)[0]
|
ThreadUpdater.lastPost = +ThreadUpdater.root.lastElementChild.id.match(/\d+/)[0]
|
||||||
ThreadUpdater.outdateCount = 0
|
|
||||||
|
|
||||||
for input in $$ 'input', ThreadUpdater.dialog
|
for input in $$ 'input', ThreadUpdater.dialog
|
||||||
if input.type is 'checkbox'
|
if input.type is 'checkbox'
|
||||||
@ -36,7 +35,6 @@ ThreadUpdater =
|
|||||||
when 'Auto Update This'
|
when 'Auto Update This'
|
||||||
$.off input, 'change', $.cb.checked
|
$.off input, 'change', $.cb.checked
|
||||||
$.on input, 'change', ThreadUpdater.cb.autoUpdate
|
$.on input, 'change', ThreadUpdater.cb.autoUpdate
|
||||||
$.event 'change', null, input
|
|
||||||
when 'Interval'
|
when 'Interval'
|
||||||
$.on input, 'change', ThreadUpdater.cb.interval
|
$.on input, 'change', ThreadUpdater.cb.interval
|
||||||
ThreadUpdater.cb.interval.call input
|
ThreadUpdater.cb.interval.call input
|
||||||
@ -54,15 +52,14 @@ ThreadUpdater =
|
|||||||
|
|
||||||
cb:
|
cb:
|
||||||
online: ->
|
online: ->
|
||||||
if ThreadUpdater.online = navigator.onLine
|
if navigator.onLine
|
||||||
ThreadUpdater.outdateCount = 0
|
ThreadUpdater.outdateCount = 0
|
||||||
ThreadUpdater.setInterval()
|
ThreadUpdater.setInterval()
|
||||||
ThreadUpdater.update() if ThreadUpdater.isUpdating
|
|
||||||
ThreadUpdater.set 'status', null, null
|
ThreadUpdater.set 'status', null, null
|
||||||
else
|
else
|
||||||
ThreadUpdater.set 'timer', null
|
ThreadUpdater.set 'timer', null
|
||||||
ThreadUpdater.set 'status', 'Offline', 'warning'
|
ThreadUpdater.set 'status', 'Offline', 'warning'
|
||||||
ThreadUpdater.cb.autoUpdate()
|
ThreadUpdater.count true
|
||||||
post: (e) ->
|
post: (e) ->
|
||||||
return unless ThreadUpdater.isUpdating and e.detail.threadID is ThreadUpdater.thread.ID
|
return unless ThreadUpdater.isUpdating and e.detail.threadID is ThreadUpdater.thread.ID
|
||||||
ThreadUpdater.outdateCount = 0
|
ThreadUpdater.outdateCount = 0
|
||||||
@ -71,28 +68,23 @@ ThreadUpdater =
|
|||||||
return if d.hidden
|
return if d.hidden
|
||||||
# Reset the counter when we focus this tab.
|
# Reset the counter when we focus this tab.
|
||||||
ThreadUpdater.outdateCount = 0
|
ThreadUpdater.outdateCount = 0
|
||||||
if ThreadUpdater.seconds > ThreadUpdater.interval
|
ThreadUpdater.seconds = Math.min ThreadUpdater.seconds, ThreadUpdater.interval
|
||||||
ThreadUpdater.setInterval()
|
|
||||||
scrollBG: ->
|
scrollBG: ->
|
||||||
ThreadUpdater.scrollBG = if Conf['Scroll BG']
|
ThreadUpdater.scrollBG = if Conf['Scroll BG']
|
||||||
-> true
|
-> true
|
||||||
else
|
else
|
||||||
-> not d.hidden
|
-> not d.hidden
|
||||||
autoUpdate: (e) ->
|
autoUpdate: (e) ->
|
||||||
ThreadUpdater.isUpdating = @checked if e
|
ThreadUpdater.count ThreadUpdater.isUpdating = @checked
|
||||||
if ThreadUpdater.isUpdating and ThreadUpdater.online
|
|
||||||
ThreadUpdater.timeout()
|
|
||||||
else
|
|
||||||
clearTimeout ThreadUpdater.timeoutID
|
|
||||||
interval: (e) ->
|
interval: (e) ->
|
||||||
val = Math.max 5, parseInt @value, 10
|
val = Math.max 5, parseInt @value, 10
|
||||||
ThreadUpdater.interval = @value = val
|
ThreadUpdater.interval = @value = val
|
||||||
$.cb.value.call @ if e
|
$.cb.value.call @ if e
|
||||||
load: (e) ->
|
load: (e) ->
|
||||||
{req} = ThreadUpdater
|
{req} = ThreadUpdater
|
||||||
|
delete ThreadUpdater.req
|
||||||
if e.type isnt 'loadend' # timeout or abort
|
if e.type isnt 'loadend' # timeout or abort
|
||||||
req.onloadend = null
|
req.onloadend = null
|
||||||
delete ThreadUpdater.req
|
|
||||||
if e.type is 'timeout'
|
if e.type is 'timeout'
|
||||||
ThreadUpdater.set 'status', 'Retrying', null
|
ThreadUpdater.set 'status', 'Retrying', null
|
||||||
ThreadUpdater.update()
|
ThreadUpdater.update()
|
||||||
@ -118,7 +110,6 @@ ThreadUpdater =
|
|||||||
else
|
else
|
||||||
["#{req.statusText} (#{req.status})", 'warning']
|
["#{req.statusText} (#{req.status})", 'warning']
|
||||||
ThreadUpdater.set 'status', text, klass
|
ThreadUpdater.set 'status', text, klass
|
||||||
delete ThreadUpdater.req
|
|
||||||
|
|
||||||
setInterval: ->
|
setInterval: ->
|
||||||
i = ThreadUpdater.interval
|
i = ThreadUpdater.interval
|
||||||
@ -128,8 +119,7 @@ ThreadUpdater =
|
|||||||
j = Math.min j, 7
|
j = Math.min j, 7
|
||||||
ThreadUpdater.seconds = Math.max i, [0, 5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j]
|
ThreadUpdater.seconds = Math.max i, [0, 5, 10, 15, 20, 30, 60, 90, 120, 240, 300][j]
|
||||||
ThreadUpdater.set 'timer', ThreadUpdater.seconds
|
ThreadUpdater.set 'timer', ThreadUpdater.seconds
|
||||||
clearTimeout ThreadUpdater.timeoutID
|
ThreadUpdater.count true
|
||||||
ThreadUpdater.timeout()
|
|
||||||
|
|
||||||
set: (name, text, klass) ->
|
set: (name, text, klass) ->
|
||||||
el = ThreadUpdater[name]
|
el = ThreadUpdater[name]
|
||||||
@ -141,14 +131,19 @@ ThreadUpdater =
|
|||||||
el.textContent = text
|
el.textContent = text
|
||||||
el.className = klass if klass isnt undefined
|
el.className = klass if klass isnt undefined
|
||||||
|
|
||||||
|
count: (start) ->
|
||||||
|
clearTimeout ThreadUpdater.timeoutID
|
||||||
|
ThreadUpdater.timeout() if start and ThreadUpdater.isUpdating and navigator.onLine
|
||||||
|
|
||||||
timeout: ->
|
timeout: ->
|
||||||
ThreadUpdater.timeoutID = setTimeout ThreadUpdater.timeout, 1000
|
ThreadUpdater.timeoutID = setTimeout ThreadUpdater.timeout, 1000
|
||||||
ThreadUpdater.set 'timer', --ThreadUpdater.seconds
|
sec = ThreadUpdater.seconds--
|
||||||
ThreadUpdater.update() if ThreadUpdater.seconds <= 0
|
ThreadUpdater.set 'timer', sec
|
||||||
|
ThreadUpdater.update() if sec <= 0
|
||||||
|
|
||||||
update: ->
|
update: ->
|
||||||
return unless ThreadUpdater.online
|
return unless navigator.onLine
|
||||||
clearTimeout ThreadUpdater.timeoutID
|
ThreadUpdater.count()
|
||||||
ThreadUpdater.set 'timer', '...'
|
ThreadUpdater.set 'timer', '...'
|
||||||
ThreadUpdater.req.abort() if ThreadUpdater.req
|
ThreadUpdater.req.abort() if ThreadUpdater.req
|
||||||
url = "//api.4chan.org/#{ThreadUpdater.thread.board}/res/#{ThreadUpdater.thread}.json"
|
url = "//api.4chan.org/#{ThreadUpdater.thread.board}/res/#{ThreadUpdater.thread}.json"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user