More thread updater refactoring.

This commit is contained in:
ccd0 2015-03-08 15:16:44 -07:00
parent c1c0576f19
commit 949eb05187
2 changed files with 21 additions and 37 deletions

View File

@ -94,17 +94,11 @@ ThreadUpdater =
ThreadUpdater.setInterval() ThreadUpdater.setInterval()
checkpost: (e) -> checkpost: (e) ->
unless ThreadUpdater.checkPostCount return if e.detail.threadID isnt ThreadUpdater.thread.ID
return if e and e.detail.threadID isnt ThreadUpdater.thread.ID ThreadUpdater.postID = e.detail.postID
ThreadUpdater.seconds = 0
ThreadUpdater.outdateCount = 0
ThreadUpdater.set 'timer', '...', 'loading'
unless ThreadUpdater.thread.isDead or ThreadUpdater.foundPost or ThreadUpdater.checkPostCount >= 5
return setTimeout ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND
ThreadUpdater.setInterval()
ThreadUpdater.checkPostCount = 0 ThreadUpdater.checkPostCount = 0
delete ThreadUpdater.foundPost ThreadUpdater.outdateCount = 0
delete ThreadUpdater.postID ThreadUpdater.setInterval()
visibility: -> visibility: ->
return if d.hidden return if d.hidden
@ -153,9 +147,6 @@ ThreadUpdater =
else else
ThreadUpdater.error req ThreadUpdater.error req
if ThreadUpdater.postID
ThreadUpdater.cb.checkpost()
kill: -> kill: ->
ThreadUpdater.thread.kill() ThreadUpdater.thread.kill()
ThreadUpdater.setInterval() ThreadUpdater.setInterval()
@ -180,6 +171,12 @@ ThreadUpdater =
ThreadUpdater.set 'timer', '' ThreadUpdater.set 'timer', ''
return return
# Fetching your own posts after posting
if ThreadUpdater.postID and ThreadUpdater.checkPostCount < 5
ThreadUpdater.set 'timer', '...', 'loading'
ThreadUpdater.timeoutID = setTimeout ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND
return
unless Conf['Auto Update'] unless Conf['Auto Update']
ThreadUpdater.set 'timer', 'Update' ThreadUpdater.set 'timer', 'Update'
return return
@ -190,26 +187,17 @@ ThreadUpdater =
ThreadUpdater.set 'timer', '' ThreadUpdater.set 'timer', ''
return return
i = ThreadUpdater.interval + 1 {interval} = ThreadUpdater
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.
cur = ThreadUpdater.outdateCount or 1
limit = if d.hidden then 7 else 10 limit = if d.hidden then 7 else 10
j = if cur <= limit then cur else limit j = Math.min ThreadUpdater.outdateCount, limit
# 1 second to 100, 30 to 300. # 1 second to 100, 30 to 300.
cur = (Math.floor(i * 0.1) or 1) * j * j cur = (Math.floor(interval * 0.1) or 1) * j * j
ThreadUpdater.seconds = ThreadUpdater.seconds = $.minmax cur, interval, 300
if cur > i
if cur <= 300
cur
else
300
else
i
else else
ThreadUpdater.seconds = i ThreadUpdater.seconds = interval
ThreadUpdater.timeout() ThreadUpdater.timeout()
@ -229,15 +217,13 @@ ThreadUpdater =
el.className = klass ? (if text is '' then 'empty' else '') el.className = klass ? (if text is '' then 'empty' else '')
timeout: -> timeout: ->
ThreadUpdater.timeoutID = setTimeout ThreadUpdater.timeout, 1000 if ThreadUpdater.seconds
unless n = --ThreadUpdater.seconds ThreadUpdater.set 'timer', ThreadUpdater.seconds
ThreadUpdater.timeoutID = setTimeout ThreadUpdater.timeout, 1000
else
ThreadUpdater.outdateCount++ ThreadUpdater.outdateCount++
ThreadUpdater.update() ThreadUpdater.update()
else if n <= -60 ThreadUpdater.seconds--
ThreadUpdater.set 'status', 'Retrying'
ThreadUpdater.update()
else if n > 0
ThreadUpdater.set 'timer', n
update: -> update: ->
clearTimeout ThreadUpdater.timeoutID clearTimeout ThreadUpdater.timeoutID
@ -310,7 +296,7 @@ ThreadUpdater =
# Fetching your own posts after posting # Fetching your own posts after posting
if ThreadUpdater.postID and ThreadUpdater.postID is ID if ThreadUpdater.postID and ThreadUpdater.postID is ID
ThreadUpdater.foundPost = true delete ThreadUpdater.postID
unless count unless count
ThreadUpdater.set 'status', '' ThreadUpdater.set 'status', ''

View File

@ -720,8 +720,6 @@ QR =
postID: postID postID: postID
val: true val: true
ThreadUpdater.postID = postID
# Post/upload confirmed as successful. # Post/upload confirmed as successful.
$.event 'QRPostSuccessful', { $.event 'QRPostSuccessful', {
boardID: g.BOARD.ID boardID: g.BOARD.ID