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