This commit is contained in:
parent
e2756fd28e
commit
c1c0576f19
@ -935,6 +935,10 @@ Config =
|
|||||||
true
|
true
|
||||||
'Automatically fetch new posts.'
|
'Automatically fetch new posts.'
|
||||||
]
|
]
|
||||||
|
'Ignore Offline Status': [
|
||||||
|
false
|
||||||
|
'Update even if your browser reports you are offline.'
|
||||||
|
]
|
||||||
'Optional Increase': [
|
'Optional Increase': [
|
||||||
false
|
false
|
||||||
'Increase the intervals between updates on threads without new posts.'
|
'Increase the intervals between updates on threads without new posts.'
|
||||||
|
|||||||
@ -777,8 +777,8 @@ span.hide-announcement {
|
|||||||
.new {
|
.new {
|
||||||
color: limegreen;
|
color: limegreen;
|
||||||
}
|
}
|
||||||
#update-status.new {
|
#update-status:not(.empty) + #update-timer:not(.empty):not(.loading) {
|
||||||
margin-right: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
#update-timer {
|
#update-timer {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|||||||
@ -5,7 +5,7 @@ ThreadUpdater =
|
|||||||
if Conf['Updater and Stats in Header']
|
if Conf['Updater and Stats in Header']
|
||||||
@dialog = sc = $.el 'span',
|
@dialog = sc = $.el 'span',
|
||||||
id: 'updater'
|
id: 'updater'
|
||||||
$.extend sc, <%= html('<span id="update-status"></span><span id="update-timer" title="Update now"></span>') %>
|
$.extend sc, <%= html('<span id="update-status" class="empty"></span><span id="update-timer" class="empty" title="Update now"></span>') %>
|
||||||
$.ready ->
|
$.ready ->
|
||||||
Header.addShortcut sc
|
Header.addShortcut sc
|
||||||
else
|
else
|
||||||
@ -19,7 +19,6 @@ ThreadUpdater =
|
|||||||
|
|
||||||
@timer = $ '#update-timer', sc
|
@timer = $ '#update-timer', sc
|
||||||
@status = $ '#update-status', sc
|
@status = $ '#update-status', sc
|
||||||
@isUpdating = Conf['Auto Update']
|
|
||||||
|
|
||||||
$.on @timer, 'click', @update
|
$.on @timer, 'click', @update
|
||||||
$.on @status, 'click', @update
|
$.on @status, 'click', @update
|
||||||
@ -41,7 +40,7 @@ ThreadUpdater =
|
|||||||
$.on input, 'change', @cb.scrollBG
|
$.on input, 'change', @cb.scrollBG
|
||||||
@cb.scrollBG()
|
@cb.scrollBG()
|
||||||
else if input.name is 'Auto Update'
|
else if input.name is 'Auto Update'
|
||||||
$.on input, 'change', @cb.autoUpdate
|
$.on input, 'change', @setInterval
|
||||||
subEntries.push el: el
|
subEntries.push el: el
|
||||||
|
|
||||||
@settings = $.el 'span',
|
@settings = $.el 'span',
|
||||||
@ -73,10 +72,7 @@ ThreadUpdater =
|
|||||||
$.on d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost
|
$.on d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost
|
||||||
$.on d, 'visibilitychange', ThreadUpdater.cb.visibility
|
$.on d, 'visibilitychange', ThreadUpdater.cb.visibility
|
||||||
|
|
||||||
if ThreadUpdater.thread.isArchived
|
ThreadUpdater.setInterval()
|
||||||
ThreadUpdater.set 'status', 'Archived', 'warning'
|
|
||||||
else
|
|
||||||
ThreadUpdater.cb.online()
|
|
||||||
|
|
||||||
###
|
###
|
||||||
http://freesound.org/people/pierrecartoons1979/sounds/90112/
|
http://freesound.org/people/pierrecartoons1979/sounds/90112/
|
||||||
@ -87,51 +83,54 @@ ThreadUpdater =
|
|||||||
cb:
|
cb:
|
||||||
online: ->
|
online: ->
|
||||||
return if ThreadUpdater.thread.isDead
|
return if ThreadUpdater.thread.isDead
|
||||||
if ThreadUpdater.online = navigator.onLine
|
|
||||||
|
if navigator.onLine
|
||||||
|
ThreadUpdater.set 'status', ''
|
||||||
|
else
|
||||||
|
ThreadUpdater.set 'status', 'Offline', 'warning'
|
||||||
|
|
||||||
|
if Conf['Auto Update'] and not Conf['Ignore Offline Status']
|
||||||
ThreadUpdater.outdateCount = 0
|
ThreadUpdater.outdateCount = 0
|
||||||
ThreadUpdater.setInterval()
|
ThreadUpdater.setInterval()
|
||||||
ThreadUpdater.set 'status', '', ''
|
|
||||||
else
|
|
||||||
ThreadUpdater.set 'timer', ''
|
|
||||||
ThreadUpdater.set 'status', 'Offline', 'warning'
|
|
||||||
clearTimeout ThreadUpdater.timeoutID
|
|
||||||
checkpost: (e) ->
|
checkpost: (e) ->
|
||||||
unless ThreadUpdater.checkPostCount
|
unless ThreadUpdater.checkPostCount
|
||||||
return if e and e.detail.threadID isnt ThreadUpdater.thread.ID
|
return if e and e.detail.threadID isnt ThreadUpdater.thread.ID
|
||||||
ThreadUpdater.seconds = 0
|
ThreadUpdater.seconds = 0
|
||||||
ThreadUpdater.outdateCount = 0
|
ThreadUpdater.outdateCount = 0
|
||||||
ThreadUpdater.set 'timer', '...'
|
ThreadUpdater.set 'timer', '...', 'loading'
|
||||||
unless ThreadUpdater.thread.isDead or ThreadUpdater.foundPost or ThreadUpdater.checkPostCount >= 5
|
unless ThreadUpdater.thread.isDead or ThreadUpdater.foundPost or ThreadUpdater.checkPostCount >= 5
|
||||||
return setTimeout ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND
|
return setTimeout ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND
|
||||||
ThreadUpdater.setInterval()
|
ThreadUpdater.setInterval()
|
||||||
ThreadUpdater.checkPostCount = 0
|
ThreadUpdater.checkPostCount = 0
|
||||||
delete ThreadUpdater.foundPost
|
delete ThreadUpdater.foundPost
|
||||||
delete ThreadUpdater.postID
|
delete ThreadUpdater.postID
|
||||||
|
|
||||||
visibility: ->
|
visibility: ->
|
||||||
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
|
if ThreadUpdater.seconds > ThreadUpdater.interval
|
||||||
ThreadUpdater.setInterval()
|
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: ->
|
|
||||||
ThreadUpdater.count ThreadUpdater.isUpdating = @checked
|
|
||||||
interval: (e) ->
|
interval: (e) ->
|
||||||
val = parseInt @value, 10
|
val = parseInt @value, 10
|
||||||
if val < 1 then val = 1
|
if val < 1 then val = 1
|
||||||
ThreadUpdater.interval = @value = val
|
ThreadUpdater.interval = @value = val
|
||||||
$.cb.value.call @ if e
|
$.cb.value.call @ if e
|
||||||
|
|
||||||
load: ->
|
load: ->
|
||||||
{req} = ThreadUpdater
|
{req} = ThreadUpdater
|
||||||
switch req.status
|
switch req.status
|
||||||
when 200
|
when 200
|
||||||
ThreadUpdater.parse req.response.posts
|
ThreadUpdater.parse req.response.posts
|
||||||
if ThreadUpdater.thread.isArchived
|
if ThreadUpdater.thread.isArchived
|
||||||
ThreadUpdater.set 'status', 'Archived', 'warning'
|
|
||||||
ThreadUpdater.kill()
|
ThreadUpdater.kill()
|
||||||
else
|
else
|
||||||
ThreadUpdater.setInterval()
|
ThreadUpdater.setInterval()
|
||||||
@ -148,7 +147,6 @@ ThreadUpdater =
|
|||||||
else
|
else
|
||||||
confirmed = false
|
confirmed = false
|
||||||
if confirmed
|
if confirmed
|
||||||
ThreadUpdater.set 'status', '404', 'warning'
|
|
||||||
ThreadUpdater.kill()
|
ThreadUpdater.kill()
|
||||||
else
|
else
|
||||||
ThreadUpdater.error req
|
ThreadUpdater.error req
|
||||||
@ -159,23 +157,40 @@ ThreadUpdater =
|
|||||||
ThreadUpdater.cb.checkpost()
|
ThreadUpdater.cb.checkpost()
|
||||||
|
|
||||||
kill: ->
|
kill: ->
|
||||||
ThreadUpdater.set 'timer', ''
|
|
||||||
clearTimeout ThreadUpdater.timeoutID
|
|
||||||
ThreadUpdater.thread.kill()
|
ThreadUpdater.thread.kill()
|
||||||
|
ThreadUpdater.setInterval()
|
||||||
$.event 'ThreadUpdate',
|
$.event 'ThreadUpdate',
|
||||||
404: true
|
404: true
|
||||||
threadID: ThreadUpdater.thread.fullID
|
threadID: ThreadUpdater.thread.fullID
|
||||||
|
|
||||||
error: (req) ->
|
error: (req) ->
|
||||||
|
if req.status is 304
|
||||||
|
ThreadUpdater.set 'status', ''
|
||||||
ThreadUpdater.setInterval()
|
ThreadUpdater.setInterval()
|
||||||
[text, klass] = if req.status is 304
|
unless req.status
|
||||||
['', '']
|
ThreadUpdater.set 'status', 'Connection Failed', 'warning'
|
||||||
else
|
else if req.status isnt 304
|
||||||
["#{req.statusText} (#{req.status})", 'warning']
|
ThreadUpdater.set 'status', "#{req.statusText} (#{req.status})", 'warning'
|
||||||
ThreadUpdater.set 'status', text, klass
|
|
||||||
|
|
||||||
setInterval: ->
|
setInterval: ->
|
||||||
i = ThreadUpdater.interval + 1
|
clearTimeout ThreadUpdater.timeoutID
|
||||||
|
|
||||||
|
if ThreadUpdater.thread.isDead
|
||||||
|
ThreadUpdater.set 'status', (if ThreadUpdater.thread.isArchived then 'Archived' else '404'), 'warning'
|
||||||
|
ThreadUpdater.set 'timer', ''
|
||||||
|
return
|
||||||
|
|
||||||
|
unless Conf['Auto Update']
|
||||||
|
ThreadUpdater.set 'timer', 'Update'
|
||||||
|
return
|
||||||
|
|
||||||
|
unless navigator.onLine
|
||||||
|
ThreadUpdater.set 'status', 'Offline', 'warning'
|
||||||
|
unless Conf['Ignore Offline Status']
|
||||||
|
ThreadUpdater.set 'timer', ''
|
||||||
|
return
|
||||||
|
|
||||||
|
i = ThreadUpdater.interval + 1
|
||||||
|
|
||||||
if Conf['Optional Increase']
|
if Conf['Optional Increase']
|
||||||
# Lower the max refresh rate limit on visible tabs.
|
# Lower the max refresh rate limit on visible tabs.
|
||||||
@ -196,8 +211,7 @@ ThreadUpdater =
|
|||||||
else
|
else
|
||||||
ThreadUpdater.seconds = i
|
ThreadUpdater.seconds = i
|
||||||
|
|
||||||
ThreadUpdater.set 'timer', ThreadUpdater.seconds
|
ThreadUpdater.timeout()
|
||||||
ThreadUpdater.count true
|
|
||||||
|
|
||||||
intervalShortcut: ->
|
intervalShortcut: ->
|
||||||
Settings.open 'Advanced'
|
Settings.open 'Advanced'
|
||||||
@ -212,11 +226,7 @@ ThreadUpdater =
|
|||||||
node.data = text
|
node.data = text
|
||||||
else
|
else
|
||||||
el.textContent = text
|
el.textContent = text
|
||||||
el.className = klass if klass isnt undefined
|
el.className = klass ? (if text is '' then 'empty' else '')
|
||||||
|
|
||||||
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
|
||||||
@ -224,18 +234,14 @@ ThreadUpdater =
|
|||||||
ThreadUpdater.outdateCount++
|
ThreadUpdater.outdateCount++
|
||||||
ThreadUpdater.update()
|
ThreadUpdater.update()
|
||||||
else if n <= -60
|
else if n <= -60
|
||||||
ThreadUpdater.set 'status', 'Retrying', ''
|
ThreadUpdater.set 'status', 'Retrying'
|
||||||
ThreadUpdater.update()
|
ThreadUpdater.update()
|
||||||
else if n > 0
|
else if n > 0
|
||||||
ThreadUpdater.set 'timer', n
|
ThreadUpdater.set 'timer', n
|
||||||
|
|
||||||
update: ->
|
update: ->
|
||||||
return unless navigator.onLine
|
clearTimeout ThreadUpdater.timeoutID
|
||||||
ThreadUpdater.count()
|
ThreadUpdater.set 'timer', '...', 'loading'
|
||||||
if Conf['Auto Update']
|
|
||||||
ThreadUpdater.set 'timer', '...'
|
|
||||||
else
|
|
||||||
ThreadUpdater.set 'timer', 'Update'
|
|
||||||
ThreadUpdater.req?.abort()
|
ThreadUpdater.req?.abort()
|
||||||
ThreadUpdater.req = $.ajax "//a.4cdn.org/#{ThreadUpdater.thread.board}/thread/#{ThreadUpdater.thread}.json",
|
ThreadUpdater.req = $.ajax "//a.4cdn.org/#{ThreadUpdater.thread.board}/thread/#{ThreadUpdater.thread}.json",
|
||||||
onloadend: ThreadUpdater.cb.load
|
onloadend: ThreadUpdater.cb.load
|
||||||
@ -307,7 +313,7 @@ ThreadUpdater =
|
|||||||
ThreadUpdater.foundPost = true
|
ThreadUpdater.foundPost = true
|
||||||
|
|
||||||
unless count
|
unless count
|
||||||
ThreadUpdater.set 'status', '', ''
|
ThreadUpdater.set 'status', ''
|
||||||
else
|
else
|
||||||
ThreadUpdater.set 'status', "+#{count}", 'new'
|
ThreadUpdater.set 'status', "+#{count}", 'new'
|
||||||
ThreadUpdater.outdateCount = 0
|
ThreadUpdater.outdateCount = 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user