More accurate QR/post deletion cooldown. Close #774.
This commit is contained in:
parent
3ef78f8461
commit
c64bb3c361
@ -1836,29 +1836,36 @@
|
||||
},
|
||||
cooldown: {
|
||||
init: function() {
|
||||
var length, timeout, _ref;
|
||||
if (!Conf['Cooldown']) {
|
||||
return;
|
||||
}
|
||||
QR.cooldown.start($.get("/" + g.BOARD + "/cooldown", 0));
|
||||
_ref = $.get("/" + g.BOARD + "/cooldown", {}), timeout = _ref.timeout, length = _ref.length;
|
||||
if (timeout) {
|
||||
QR.cooldown.start(timeout, length);
|
||||
}
|
||||
return $.sync("/" + g.BOARD + "/cooldown", QR.cooldown.start);
|
||||
},
|
||||
start: function(timeout) {
|
||||
start: function(timeout, length) {
|
||||
var seconds;
|
||||
seconds = Math.floor((timeout - Date.now()) / 1000);
|
||||
return QR.cooldown.count(seconds);
|
||||
return QR.cooldown.count(seconds, length);
|
||||
},
|
||||
set: function(seconds) {
|
||||
if (!Conf['Cooldown']) {
|
||||
return;
|
||||
}
|
||||
QR.cooldown.count(seconds);
|
||||
return $.set("/" + g.BOARD + "/cooldown", Date.now() + seconds * $.SECOND);
|
||||
QR.cooldown.count(seconds, seconds);
|
||||
return $.set("/" + g.BOARD + "/cooldown", {
|
||||
timeout: Date.now() + seconds * $.SECOND,
|
||||
length: seconds
|
||||
});
|
||||
},
|
||||
count: function(seconds) {
|
||||
if (!((0 <= seconds && seconds <= 60))) {
|
||||
count: function(seconds, length) {
|
||||
if (!((0 <= seconds && seconds <= length))) {
|
||||
return;
|
||||
}
|
||||
setTimeout(QR.cooldown.count, 1000, seconds - 1);
|
||||
setTimeout(QR.cooldown.count, 1000, seconds - 1, length);
|
||||
QR.cooldown.seconds = seconds;
|
||||
if (seconds === 0) {
|
||||
$["delete"]("/" + g.BOARD + "/cooldown");
|
||||
@ -2548,7 +2555,7 @@
|
||||
} else {
|
||||
QR.cooldown.auto = QR.replies.length > 1;
|
||||
sage = /sage/i.test(reply.email);
|
||||
seconds = g.BOARD === 'q' ? reply.file ? 300 : sage ? 600 : 60 : sage ? 60 : 30;
|
||||
seconds = g.BOARD === 'q' ? sage ? 600 : reply.file ? 300 : 60 : sage ? 60 : 30;
|
||||
QR.cooldown.set(seconds);
|
||||
if (Conf['Open Reply in New Tab'] && !g.REPLY && !QR.cooldown.auto) {
|
||||
$.open("//boards.4chan.org/" + g.BOARD + "/res/" + threadID + "#p" + postID);
|
||||
@ -4331,14 +4338,16 @@
|
||||
},
|
||||
cooldown: {
|
||||
start: function(e) {
|
||||
return DeleteLink.cooldown.count(e.detail.postID, 30);
|
||||
var seconds;
|
||||
seconds = g.BOARD === 'q' ? 600 : 30;
|
||||
return DeleteLink.cooldown.count(e.detail.postID, seconds, seconds);
|
||||
},
|
||||
count: function(postID, seconds) {
|
||||
count: function(postID, seconds, length) {
|
||||
var el;
|
||||
if (!((0 <= seconds && seconds <= 30))) {
|
||||
if (!((0 <= seconds && seconds <= length))) {
|
||||
return;
|
||||
}
|
||||
setTimeout(DeleteLink.cooldown.count, 1000, postID, seconds - 1);
|
||||
setTimeout(DeleteLink.cooldown.count, 1000, postID, seconds - 1, length);
|
||||
el = DeleteLink.cooldown.el;
|
||||
if (seconds === 0) {
|
||||
if (el != null) {
|
||||
|
||||
@ -1418,18 +1418,21 @@ QR =
|
||||
cooldown:
|
||||
init: ->
|
||||
return unless Conf['Cooldown']
|
||||
QR.cooldown.start $.get "/#{g.BOARD}/cooldown", 0
|
||||
{timeout, length} = $.get "/#{g.BOARD}/cooldown", {}
|
||||
QR.cooldown.start timeout, length if timeout
|
||||
$.sync "/#{g.BOARD}/cooldown", QR.cooldown.start
|
||||
start: (timeout) ->
|
||||
start: (timeout, length) ->
|
||||
seconds = Math.floor (timeout - Date.now()) / 1000
|
||||
QR.cooldown.count seconds
|
||||
QR.cooldown.count seconds, length
|
||||
set: (seconds) ->
|
||||
return unless Conf['Cooldown']
|
||||
QR.cooldown.count seconds
|
||||
$.set "/#{g.BOARD}/cooldown", Date.now() + seconds*$.SECOND
|
||||
count: (seconds) ->
|
||||
return unless 0 <= seconds <= 60
|
||||
setTimeout QR.cooldown.count, 1000, seconds-1
|
||||
QR.cooldown.count seconds, seconds
|
||||
$.set "/#{g.BOARD}/cooldown",
|
||||
timeout: Date.now() + seconds * $.SECOND
|
||||
length: seconds
|
||||
count: (seconds, length) ->
|
||||
return unless 0 <= seconds <= length
|
||||
setTimeout QR.cooldown.count, 1000, seconds-1, length
|
||||
QR.cooldown.seconds = seconds
|
||||
if seconds is 0
|
||||
$.delete "/#{g.BOARD}/cooldown"
|
||||
@ -2001,12 +2004,14 @@ QR =
|
||||
QR.cooldown.auto = QR.replies.length > 1
|
||||
sage = /sage/i.test reply.email
|
||||
seconds =
|
||||
# 300 seconds cooldown for new threads
|
||||
# q: 86400 seconds
|
||||
# b soc r9k: 600 seconds
|
||||
if g.BOARD is 'q'
|
||||
# that makes no sense.png
|
||||
if reply.file
|
||||
300
|
||||
else if sage
|
||||
if sage
|
||||
600
|
||||
else if reply.file
|
||||
300
|
||||
else
|
||||
60
|
||||
else if sage
|
||||
@ -3566,10 +3571,15 @@ DeleteLink =
|
||||
|
||||
cooldown:
|
||||
start: (e) ->
|
||||
DeleteLink.cooldown.count e.detail.postID, 30
|
||||
count: (postID, seconds) ->
|
||||
return unless 0 <= seconds <= 30
|
||||
setTimeout DeleteLink.cooldown.count, 1000, postID, seconds-1
|
||||
seconds =
|
||||
if g.BOARD is 'q'
|
||||
600
|
||||
else
|
||||
30
|
||||
DeleteLink.cooldown.count e.detail.postID, seconds, seconds
|
||||
count: (postID, seconds, length) ->
|
||||
return unless 0 <= seconds <= length
|
||||
setTimeout DeleteLink.cooldown.count, 1000, postID, seconds-1, length
|
||||
{el} = DeleteLink.cooldown
|
||||
if seconds is 0
|
||||
el?.textContent = 'Delete'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user