Implement additional cooldown.

This commit is contained in:
AchtBit 2015-02-15 16:57:02 -06:00
parent 82cd322c4b
commit ee53c212cf
7 changed files with 41 additions and 2 deletions

View File

@ -935,3 +935,5 @@ Config =
'Increase the intervals between updates on threads without new posts.'
]
'Interval': 30
additionalCooldown: 0

View File

@ -315,7 +315,7 @@ Settings =
items = {}
inputs = {}
for name in ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'usercss']
for name in ['boardnav', 'time', 'backlink', 'fileInfo', 'favicon', 'usercss', 'additionalCooldown']
input = $ "[name='#{name}']", section
items[name] = Conf[name]
inputs[name] = input
@ -339,7 +339,7 @@ Settings =
for key, val of items
input = inputs[key]
input.value = val
continue if key is 'usercss'
continue if key in ['usercss', 'additionalCooldown']
Settings[key].call input
return

View File

@ -1277,6 +1277,9 @@ input#qr-filename:not(.edit) {
#file-n-submit {
height: 23px;
}
#file-n-submit.add-cooldown {
height: 43px;
}
#qr input[type="file"] {
visibility: hidden;
position: absolute;

View File

@ -36,6 +36,7 @@
<input type=checkbox id=qr-file-spoiler title='Spoiler image'>
</label>
<input type=submit>
#{if parseInt(Conf['additionalCooldown']) > 0 then '<span><input type=checkbox data-name=addCooldown title="Add Custom Cooldown">Enable Custom Cooldown</span>' else ''}
</div>
<input type=file multiple>
</form>

View File

@ -109,6 +109,13 @@
</div>
</fieldset>
<fieldset>
<legend>Additional Cooldown Time</legend>
<div>
Seconds: <input type=number name=additionalCooldown class=field min=1 value=#{Conf['additionalCooldown']}>
</div>
</fieldset>
<fieldset>
<legend>
<label><input type=checkbox name='Custom CSS'> Custom CSS</label>

View File

@ -166,6 +166,16 @@ QR =
else
QR.unhide()
toggleAddCooldown: ->
if @checked
QR.cooldown.addCooldown = true
if QR.cooldown.seconds
QR.cooldown.seconds += parseInt(Conf['additionalCooldown'])
else
QR.cooldown.addCooldown = false
if QR.cooldown.seconds
QR.cooldown.seconds -= parseInt(Conf['additionalCooldown'])
error: (err) ->
QR.open()
if typeof err is 'string'
@ -485,6 +495,7 @@ QR =
setNode 'spoilerPar', '#qr-spoiler-label'
setNode 'status', '[type=submit]'
setNode 'fileInput', '[type=file]'
setNode 'addCooldown', '[data-name=addCooldown]'
rules = $('ul.rules').textContent.trim()
match_min = rules.match(/.+smaller than (\d+)x(\d+).+/)
@ -522,6 +533,11 @@ QR =
else
nodes.spoiler.parentElement.hidden = true
if parseInt(Conf['additionalCooldown']) > 0
$.addClass QR.nodes.fileSubmit, 'add-cooldown'
else
$.rmClass QR.nodes.fileSubmit, 'add-cooldown'
if g.BOARD.ID is 'f' and g.VIEW isnt 'thread'
nodes.flashTag = $.el 'select',
name: 'filetag'
@ -552,6 +568,8 @@ QR =
$.on nodes.fileExtras, 'click', (e) -> e.stopPropagation()
$.on nodes.spoiler, 'change', -> QR.selected.nodes.spoiler.click()
$.on nodes.fileInput, 'change', QR.handleFiles
if parseInt(Conf['additionalCooldown']) > 0
$.on nodes.addCooldown,'change', QR.toggleAddCooldown
# save selected post's data
items = ['thread', 'name', 'email', 'sub', 'com', 'filename']

View File

@ -105,6 +105,10 @@ QR.cooldown =
seconds = Math.max seconds, cooldown.delay - elapsed
continue
# Increase the max delay if additional cooldown is enabled
if QR.cooldown.addCooldown
QR.cooldown.maxDelay = QR.cooldown.maxDelay + parseInt(Conf['additionalCooldown'])
# Clean up expired cooldowns
maxDelay = if cooldown.threadID isnt cooldown.postID
QR.cooldown.maxDelay
@ -127,6 +131,10 @@ QR.cooldown =
''
seconds = Math.max seconds, QR.cooldown.delays[type + suffix] - elapsed
# If additional cooldown is enabled, add the configured seconds to the count.
if QR.cooldown.addCooldown
seconds = Math.max seconds, QR.cooldown.delays[type] + parseInt(Conf['additionalCooldown']) - elapsed
QR.cooldown.save scope if save
if Object.keys(QR.cooldown.local).length + Object.keys(QR.cooldown.global).length