Merge branch 'bstable'
This commit is contained in:
commit
bafb7dc734
@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
|
||||
|
||||
### v1.11.13
|
||||
|
||||
**v1.11.13.9** *(2015-10-24)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.9/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.9/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
- Include /r9k/ mute time in cooldowns.
|
||||
|
||||
**v1.11.13.8** *(2015-10-23)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.8/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.8/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
- Bugfix: Fix case where LaTeX preview could not be turned off.
|
||||
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.13.8
|
||||
// @version 1.11.13.9
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.13.8
|
||||
// @version 1.11.13.9
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -413,7 +413,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.13.8',
|
||||
VERSION: '1.11.13.9',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -7709,7 +7709,7 @@
|
||||
return QR.status();
|
||||
},
|
||||
response: function() {
|
||||
var URL, _, ban, err, h1, isReply, lastPostToThread, m, open, post, postID, postsCount, ref, ref1, req, resDoc, threadID;
|
||||
var URL, _, ban, err, h1, isReply, lastPostToThread, m, open, post, postID, postsCount, ref, ref1, req, resDoc, seconds, threadID;
|
||||
req = QR.req;
|
||||
delete QR.req;
|
||||
post = QR.posts[0];
|
||||
@ -7741,9 +7741,14 @@
|
||||
}
|
||||
QR.cooldown.auto = QR.captcha.isEnabled ? !!QR.captcha.captchas.length : err === 'Connection error with sys.4chan.org.' ? true : false;
|
||||
QR.cooldown.addDelay(post, 2);
|
||||
} else if (err.textContent && (m = err.textContent.match(/wait\s+(\d+)\s+second/i)) && !/duplicate/i.test(err.textContent)) {
|
||||
QR.cooldown.auto = QR.captcha.isEnabled ? !!QR.captcha.captchas.length : true;
|
||||
QR.cooldown.addDelay(post, +m[1]);
|
||||
} else if (err.textContent && (m = err.textContent.match(/(?:(\d+)\s+minutes?\s+)?(\d+)\s+second/i)) && !/duplicate|hour/i.test(err.textContent)) {
|
||||
QR.cooldown.auto = (!QR.captcha.isEnabled || !!QR.captcha.captchas.length) && !/have\s+been\s+muted/i.test(err.textContent);
|
||||
seconds = 60 * (+(m[1] || 0)) + (+m[2]);
|
||||
if (/muted/i.test(err.textContent)) {
|
||||
QR.cooldown.addMute(seconds);
|
||||
} else {
|
||||
QR.cooldown.addDelay(post, seconds);
|
||||
}
|
||||
QR.captcha.setup(d.activeElement === QR.nodes.status);
|
||||
} else {
|
||||
QR.cooldown.auto = false;
|
||||
@ -8769,6 +8774,16 @@
|
||||
QR.cooldown.set(g.BOARD.ID, Date.now(), cooldown);
|
||||
return QR.cooldown.start();
|
||||
},
|
||||
addMute: function(delay) {
|
||||
if (!Conf['Cooldown']) {
|
||||
return;
|
||||
}
|
||||
QR.cooldown.set(g.BOARD.ID, Date.now(), {
|
||||
type: 'mute',
|
||||
delay: delay
|
||||
});
|
||||
return QR.cooldown.start();
|
||||
},
|
||||
"delete": function(post) {
|
||||
var base1, cooldown, cooldowns, id, name1;
|
||||
if (!Conf['Cooldown']) {
|
||||
@ -8854,7 +8869,7 @@
|
||||
if (cooldown.delay <= elapsed) {
|
||||
delete cooldowns[start];
|
||||
save.push(scope);
|
||||
} else if (cooldown.type === type && cooldown.threadID === threadID) {
|
||||
} else if ((cooldown.type === type && cooldown.threadID === threadID) || cooldown.type === 'mute') {
|
||||
seconds = Math.max(seconds, cooldown.delay - elapsed);
|
||||
}
|
||||
continue;
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.13.8
|
||||
// @version 1.11.13.9
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -413,7 +413,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.13.8',
|
||||
VERSION: '1.11.13.9',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -7709,7 +7709,7 @@
|
||||
return QR.status();
|
||||
},
|
||||
response: function() {
|
||||
var URL, _, ban, err, h1, isReply, lastPostToThread, m, open, post, postID, postsCount, ref, ref1, req, resDoc, threadID;
|
||||
var URL, _, ban, err, h1, isReply, lastPostToThread, m, open, post, postID, postsCount, ref, ref1, req, resDoc, seconds, threadID;
|
||||
req = QR.req;
|
||||
delete QR.req;
|
||||
post = QR.posts[0];
|
||||
@ -7741,9 +7741,14 @@
|
||||
}
|
||||
QR.cooldown.auto = QR.captcha.isEnabled ? !!QR.captcha.captchas.length : err === 'Connection error with sys.4chan.org.' ? true : false;
|
||||
QR.cooldown.addDelay(post, 2);
|
||||
} else if (err.textContent && (m = err.textContent.match(/wait\s+(\d+)\s+second/i)) && !/duplicate/i.test(err.textContent)) {
|
||||
QR.cooldown.auto = QR.captcha.isEnabled ? !!QR.captcha.captchas.length : true;
|
||||
QR.cooldown.addDelay(post, +m[1]);
|
||||
} else if (err.textContent && (m = err.textContent.match(/(?:(\d+)\s+minutes?\s+)?(\d+)\s+second/i)) && !/duplicate|hour/i.test(err.textContent)) {
|
||||
QR.cooldown.auto = (!QR.captcha.isEnabled || !!QR.captcha.captchas.length) && !/have\s+been\s+muted/i.test(err.textContent);
|
||||
seconds = 60 * (+(m[1] || 0)) + (+m[2]);
|
||||
if (/muted/i.test(err.textContent)) {
|
||||
QR.cooldown.addMute(seconds);
|
||||
} else {
|
||||
QR.cooldown.addDelay(post, seconds);
|
||||
}
|
||||
QR.captcha.setup(d.activeElement === QR.nodes.status);
|
||||
} else {
|
||||
QR.cooldown.auto = false;
|
||||
@ -8769,6 +8774,16 @@
|
||||
QR.cooldown.set(g.BOARD.ID, Date.now(), cooldown);
|
||||
return QR.cooldown.start();
|
||||
},
|
||||
addMute: function(delay) {
|
||||
if (!Conf['Cooldown']) {
|
||||
return;
|
||||
}
|
||||
QR.cooldown.set(g.BOARD.ID, Date.now(), {
|
||||
type: 'mute',
|
||||
delay: delay
|
||||
});
|
||||
return QR.cooldown.start();
|
||||
},
|
||||
"delete": function(post) {
|
||||
var base1, cooldown, cooldowns, id, name1;
|
||||
if (!Conf['Cooldown']) {
|
||||
@ -8854,7 +8869,7 @@
|
||||
if (cooldown.delay <= elapsed) {
|
||||
delete cooldowns[start];
|
||||
save.push(scope);
|
||||
} else if (cooldown.type === type && cooldown.threadID === threadID) {
|
||||
} else if ((cooldown.type === type && cooldown.threadID === threadID) || cooldown.type === 'mute') {
|
||||
seconds = Math.max(seconds, cooldown.delay - elapsed);
|
||||
}
|
||||
continue;
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.13.8
|
||||
// @version 1.11.13.9
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.13.8
|
||||
// @version 1.11.13.9
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -413,7 +413,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.13.8',
|
||||
VERSION: '1.11.13.9',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -7709,7 +7709,7 @@
|
||||
return QR.status();
|
||||
},
|
||||
response: function() {
|
||||
var URL, _, ban, err, h1, isReply, lastPostToThread, m, open, post, postID, postsCount, ref, ref1, req, resDoc, threadID;
|
||||
var URL, _, ban, err, h1, isReply, lastPostToThread, m, open, post, postID, postsCount, ref, ref1, req, resDoc, seconds, threadID;
|
||||
req = QR.req;
|
||||
delete QR.req;
|
||||
post = QR.posts[0];
|
||||
@ -7741,9 +7741,14 @@
|
||||
}
|
||||
QR.cooldown.auto = QR.captcha.isEnabled ? !!QR.captcha.captchas.length : err === 'Connection error with sys.4chan.org.' ? true : false;
|
||||
QR.cooldown.addDelay(post, 2);
|
||||
} else if (err.textContent && (m = err.textContent.match(/wait\s+(\d+)\s+second/i)) && !/duplicate/i.test(err.textContent)) {
|
||||
QR.cooldown.auto = QR.captcha.isEnabled ? !!QR.captcha.captchas.length : true;
|
||||
QR.cooldown.addDelay(post, +m[1]);
|
||||
} else if (err.textContent && (m = err.textContent.match(/(?:(\d+)\s+minutes?\s+)?(\d+)\s+second/i)) && !/duplicate|hour/i.test(err.textContent)) {
|
||||
QR.cooldown.auto = (!QR.captcha.isEnabled || !!QR.captcha.captchas.length) && !/have\s+been\s+muted/i.test(err.textContent);
|
||||
seconds = 60 * (+(m[1] || 0)) + (+m[2]);
|
||||
if (/muted/i.test(err.textContent)) {
|
||||
QR.cooldown.addMute(seconds);
|
||||
} else {
|
||||
QR.cooldown.addDelay(post, seconds);
|
||||
}
|
||||
QR.captcha.setup(d.activeElement === QR.nodes.status);
|
||||
} else {
|
||||
QR.cooldown.auto = false;
|
||||
@ -8769,6 +8774,16 @@
|
||||
QR.cooldown.set(g.BOARD.ID, Date.now(), cooldown);
|
||||
return QR.cooldown.start();
|
||||
},
|
||||
addMute: function(delay) {
|
||||
if (!Conf['Cooldown']) {
|
||||
return;
|
||||
}
|
||||
QR.cooldown.set(g.BOARD.ID, Date.now(), {
|
||||
type: 'mute',
|
||||
delay: delay
|
||||
});
|
||||
return QR.cooldown.start();
|
||||
},
|
||||
"delete": function(post) {
|
||||
var base1, cooldown, cooldowns, id, name1;
|
||||
if (!Conf['Cooldown']) {
|
||||
@ -8854,7 +8869,7 @@
|
||||
if (cooldown.delay <= elapsed) {
|
||||
delete cooldowns[start];
|
||||
save.push(scope);
|
||||
} else if (cooldown.type === type && cooldown.threadID === threadID) {
|
||||
} else if ((cooldown.type === type && cooldown.threadID === threadID) || cooldown.type === 'mute') {
|
||||
seconds = Math.max(seconds, cooldown.delay - elapsed);
|
||||
}
|
||||
continue;
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.13.8' />
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.13.9' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.13.8' />
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.13.9' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
"meta": {
|
||||
"name": "4chan X",
|
||||
"fork": "ccd0",
|
||||
"version": "1.11.13.8",
|
||||
"date": "2015-10-24T02:39:06.584Z",
|
||||
"version": "1.11.13.9",
|
||||
"date": "2015-10-25T00:38:31.311Z",
|
||||
"page": "https://www.4chan-x.net/",
|
||||
"downloads": "https://www.4chan-x.net/builds/",
|
||||
"oldVersions": "https://raw.githubusercontent.com/ccd0/4chan-x/",
|
||||
|
||||
@ -773,12 +773,13 @@ QR =
|
||||
# Too many frequent mistyped captchas will auto-ban you!
|
||||
# On connection error, the post most likely didn't go through.
|
||||
QR.cooldown.addDelay post, 2
|
||||
else if err.textContent and (m = err.textContent.match /wait\s+(\d+)\s+second/i) and !/duplicate/i.test err.textContent
|
||||
QR.cooldown.auto = if QR.captcha.isEnabled
|
||||
!!QR.captcha.captchas.length
|
||||
else if err.textContent and (m = err.textContent.match /(?:(\d+)\s+minutes?\s+)?(\d+)\s+second/i) and !/duplicate|hour/i.test(err.textContent)
|
||||
QR.cooldown.auto = (!QR.captcha.isEnabled or !!QR.captcha.captchas.length) and !/have\s+been\s+muted/i.test(err.textContent)
|
||||
seconds = 60 * (+(m[1]||0)) + (+m[2])
|
||||
if /muted/i.test err.textContent
|
||||
QR.cooldown.addMute seconds
|
||||
else
|
||||
true
|
||||
QR.cooldown.addDelay post, +m[1]
|
||||
QR.cooldown.addDelay post, seconds
|
||||
QR.captcha.setup (d.activeElement is QR.nodes.status)
|
||||
else # stop auto-posting
|
||||
QR.cooldown.auto = false
|
||||
|
||||
@ -60,6 +60,11 @@ QR.cooldown =
|
||||
QR.cooldown.set g.BOARD.ID, Date.now(), cooldown
|
||||
QR.cooldown.start()
|
||||
|
||||
addMute: (delay) ->
|
||||
return unless Conf['Cooldown']
|
||||
QR.cooldown.set g.BOARD.ID, Date.now(), {type: 'mute', delay}
|
||||
QR.cooldown.start()
|
||||
|
||||
delete: (post) ->
|
||||
return unless Conf['Cooldown']
|
||||
$.forceSync 'cooldowns'
|
||||
@ -121,7 +126,7 @@ QR.cooldown =
|
||||
if cooldown.delay <= elapsed
|
||||
delete cooldowns[start]
|
||||
save.push scope
|
||||
else if cooldown.type is type and cooldown.threadID is threadID
|
||||
else if (cooldown.type is type and cooldown.threadID is threadID) or cooldown.type is 'mute'
|
||||
# Delays only apply to the given post type and thread.
|
||||
seconds = Math.max seconds, cooldown.delay - elapsed
|
||||
continue
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user