diff --git a/CHANGELOG.md b/CHANGELOG.md index c1a320e56..2f238129f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor ### v1.11.18 +**v1.11.18.3** *(2015-11-24)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.18.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.18.3/builds/4chan-X-noupdate.crx "Chromium version")] +- Merge v1.11.17.9: Support solving 4x4 image captchas with keys in 7-0-/-M square. + **v1.11.18.2** *(2015-11-23)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.18.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.18.2/builds/4chan-X-noupdate.crx "Chromium version")] - The `Use Recaptcha v1` setting takes priority over `Force Noscript Captcha` again. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index f6b2bff6f..dd4490f90 100644 Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js index 4bd73a43b..2d8422c92 100644 --- a/builds/4chan-X-beta.meta.js +++ b/builds/4chan-X-beta.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.11.18.2 +// @version 1.11.18.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js index c0a349d90..5cd96e02f 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X beta -// @version 1.11.18.2 +// @version 1.11.18.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -432,7 +432,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.18.2', + VERSION: '1.11.18.3', NAMESPACE: '4chan X.', boards: {} }; @@ -7957,6 +7957,7 @@ Captcha.fixes = { imageKeys: '789456123uiojklm'.split('').concat(['Comma', 'Period']), + imageKeys16: '7890uiopjkl'.split('').concat(['Semicolon', 'm', 'Comma', 'Period', 'Slash']), css: '.rc-imageselect-target > div:focus {\n outline: 2px solid #4a90e2;\n}\n.rc-imageselect-target td:focus {\n box-shadow: inset 0 0 0 2px #4a90e2;\n outline: none;\n}\n.rc-button-default:focus {\n box-shadow: inset 0 0 0 2px #0063d6;\n}', cssNoscript: '.fbc-payload-imageselect {\n position: relative;\n}\n.fbc-payload-imageselect > label {\n position: absolute;\n display: block;\n height: 93.3px;\n width: 93.3px;\n}\nlabel[data-row="0"] {top: 0px;}\nlabel[data-row="1"] {top: 93.3px;}\nlabel[data-row="2"] {top: 186.6px;}\nlabel[data-col="0"] {left: 0px;}\nlabel[data-col="1"] {left: 93.3px;}\nlabel[data-col="2"] {left: 186.6px;}\n.fbc-payload-imageselect > input:focus + label {\n outline: 2px solid #4a90e2;\n}\n.fbc-button-verify input:focus {\n box-shadow: inset 0 0 0 2px #0063d6;\n}\nbody.focus .fbc {\n box-shadow: inset 0 0 0 2px #4a90e2;\n}', init: function() { @@ -8029,6 +8030,9 @@ if (this.images.length === 9) { this.addTooltips(this.images); } + if (this.images.length === 16) { + this.addTooltips16(this.images); + } return this.complaintLinks(); }, complaintLinks: function() { @@ -8075,6 +8079,13 @@ node.title = this.imageKeys[i] + " or " + (this.imageKeys[i + 9][0].toUpperCase()) + this.imageKeys[i + 9].slice(1); } }, + addTooltips16: function(nodes) { + var i, k, len1, node; + for (i = k = 0, len1 = nodes.length; k < len1; i = ++k) { + node = nodes[i]; + node.title = "" + (this.imageKeys16[i][0].toUpperCase()) + this.imageKeys16[i].slice(1); + } + }, checkForm: function(e) { var checkbox, k, len1, n, ref; n = 0; @@ -8109,6 +8120,9 @@ } else if (n === 9 && (i = this.imageKeys.indexOf(key)) >= 0) { this.images[i % 9].click(); verify.focus(); + } else if (n === 16 && (i = this.imageKeys16.indexOf(key)) >= 0) { + this.images[i].click(); + verify.focus(); } else if (dx = { 'Up': n, 'Down': w, @@ -8706,10 +8720,8 @@ setupIFrame: function(iframe) { Captcha.replace.iframe(iframe); $.addClass(QR.nodes.el, 'captcha-open'); - if (QR.nodes.el.getBoundingClientRect().bottom > doc.clientHeight) { - QR.nodes.el.style.top = null; - QR.nodes.el.style.bottom = '0px'; - } + this.fixQRPosition(); + $.on(iframe, 'load', this.fixQRPosition); if (d.activeElement === this.nodes.counter) { iframe.focus(); } @@ -8719,6 +8731,12 @@ return f.focus = f.blur = function() {}; }); }, + fixQRPosition: function() { + if (QR.nodes.el.getBoundingClientRect().bottom > doc.clientHeight) { + QR.nodes.el.style.top = null; + return QR.nodes.el.style.bottom = '0px'; + } + }, setupTextArea: function(textarea) { return $.one(textarea, 'input', (function(_this) { return function() { @@ -16102,6 +16120,11 @@ return 'Comma'; case 190: return 'Period'; + case 191: + return 'Slash'; + case 59: + case 186: + return 'Semicolon'; default: if ((48 <= kc && kc <= 57) || (65 <= kc && kc <= 90)) { return String.fromCharCode(kc).toLowerCase(); diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 149a02a61..35114ec47 100644 Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js index 6a7338912..bba860379 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.11.18.2 +// @version 1.11.18.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -432,7 +432,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.18.2', + VERSION: '1.11.18.3', NAMESPACE: '4chan X.', boards: {} }; @@ -7957,6 +7957,7 @@ Captcha.fixes = { imageKeys: '789456123uiojklm'.split('').concat(['Comma', 'Period']), + imageKeys16: '7890uiopjkl'.split('').concat(['Semicolon', 'm', 'Comma', 'Period', 'Slash']), css: '.rc-imageselect-target > div:focus {\n outline: 2px solid #4a90e2;\n}\n.rc-imageselect-target td:focus {\n box-shadow: inset 0 0 0 2px #4a90e2;\n outline: none;\n}\n.rc-button-default:focus {\n box-shadow: inset 0 0 0 2px #0063d6;\n}', cssNoscript: '.fbc-payload-imageselect {\n position: relative;\n}\n.fbc-payload-imageselect > label {\n position: absolute;\n display: block;\n height: 93.3px;\n width: 93.3px;\n}\nlabel[data-row="0"] {top: 0px;}\nlabel[data-row="1"] {top: 93.3px;}\nlabel[data-row="2"] {top: 186.6px;}\nlabel[data-col="0"] {left: 0px;}\nlabel[data-col="1"] {left: 93.3px;}\nlabel[data-col="2"] {left: 186.6px;}\n.fbc-payload-imageselect > input:focus + label {\n outline: 2px solid #4a90e2;\n}\n.fbc-button-verify input:focus {\n box-shadow: inset 0 0 0 2px #0063d6;\n}\nbody.focus .fbc {\n box-shadow: inset 0 0 0 2px #4a90e2;\n}', init: function() { @@ -8029,6 +8030,9 @@ if (this.images.length === 9) { this.addTooltips(this.images); } + if (this.images.length === 16) { + this.addTooltips16(this.images); + } return this.complaintLinks(); }, complaintLinks: function() { @@ -8075,6 +8079,13 @@ node.title = this.imageKeys[i] + " or " + (this.imageKeys[i + 9][0].toUpperCase()) + this.imageKeys[i + 9].slice(1); } }, + addTooltips16: function(nodes) { + var i, k, len1, node; + for (i = k = 0, len1 = nodes.length; k < len1; i = ++k) { + node = nodes[i]; + node.title = "" + (this.imageKeys16[i][0].toUpperCase()) + this.imageKeys16[i].slice(1); + } + }, checkForm: function(e) { var checkbox, k, len1, n, ref; n = 0; @@ -8109,6 +8120,9 @@ } else if (n === 9 && (i = this.imageKeys.indexOf(key)) >= 0) { this.images[i % 9].click(); verify.focus(); + } else if (n === 16 && (i = this.imageKeys16.indexOf(key)) >= 0) { + this.images[i].click(); + verify.focus(); } else if (dx = { 'Up': n, 'Down': w, @@ -8706,10 +8720,8 @@ setupIFrame: function(iframe) { Captcha.replace.iframe(iframe); $.addClass(QR.nodes.el, 'captcha-open'); - if (QR.nodes.el.getBoundingClientRect().bottom > doc.clientHeight) { - QR.nodes.el.style.top = null; - QR.nodes.el.style.bottom = '0px'; - } + this.fixQRPosition(); + $.on(iframe, 'load', this.fixQRPosition); if (d.activeElement === this.nodes.counter) { iframe.focus(); } @@ -8719,6 +8731,12 @@ return f.focus = f.blur = function() {}; }); }, + fixQRPosition: function() { + if (QR.nodes.el.getBoundingClientRect().bottom > doc.clientHeight) { + QR.nodes.el.style.top = null; + return QR.nodes.el.style.bottom = '0px'; + } + }, setupTextArea: function(textarea) { return $.one(textarea, 'input', (function(_this) { return function() { @@ -16102,6 +16120,11 @@ return 'Comma'; case 190: return 'Period'; + case 191: + return 'Slash'; + case 59: + case 186: + return 'Semicolon'; default: if ((48 <= kc && kc <= 57) || (65 <= kc && kc <= 90)) { return String.fromCharCode(kc).toLowerCase(); diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 5ca0e3b5b..6f1f4600e 100644 Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js index 249288661..5e57fe102 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.11.18.2 +// @version 1.11.18.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index c54cb9325..653362317 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.11.18.2 +// @version 1.11.18.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -432,7 +432,7 @@ doc = d.documentElement; g = { - VERSION: '1.11.18.2', + VERSION: '1.11.18.3', NAMESPACE: '4chan X.', boards: {} }; @@ -7957,6 +7957,7 @@ Captcha.fixes = { imageKeys: '789456123uiojklm'.split('').concat(['Comma', 'Period']), + imageKeys16: '7890uiopjkl'.split('').concat(['Semicolon', 'm', 'Comma', 'Period', 'Slash']), css: '.rc-imageselect-target > div:focus {\n outline: 2px solid #4a90e2;\n}\n.rc-imageselect-target td:focus {\n box-shadow: inset 0 0 0 2px #4a90e2;\n outline: none;\n}\n.rc-button-default:focus {\n box-shadow: inset 0 0 0 2px #0063d6;\n}', cssNoscript: '.fbc-payload-imageselect {\n position: relative;\n}\n.fbc-payload-imageselect > label {\n position: absolute;\n display: block;\n height: 93.3px;\n width: 93.3px;\n}\nlabel[data-row="0"] {top: 0px;}\nlabel[data-row="1"] {top: 93.3px;}\nlabel[data-row="2"] {top: 186.6px;}\nlabel[data-col="0"] {left: 0px;}\nlabel[data-col="1"] {left: 93.3px;}\nlabel[data-col="2"] {left: 186.6px;}\n.fbc-payload-imageselect > input:focus + label {\n outline: 2px solid #4a90e2;\n}\n.fbc-button-verify input:focus {\n box-shadow: inset 0 0 0 2px #0063d6;\n}\nbody.focus .fbc {\n box-shadow: inset 0 0 0 2px #4a90e2;\n}', init: function() { @@ -8029,6 +8030,9 @@ if (this.images.length === 9) { this.addTooltips(this.images); } + if (this.images.length === 16) { + this.addTooltips16(this.images); + } return this.complaintLinks(); }, complaintLinks: function() { @@ -8075,6 +8079,13 @@ node.title = this.imageKeys[i] + " or " + (this.imageKeys[i + 9][0].toUpperCase()) + this.imageKeys[i + 9].slice(1); } }, + addTooltips16: function(nodes) { + var i, k, len1, node; + for (i = k = 0, len1 = nodes.length; k < len1; i = ++k) { + node = nodes[i]; + node.title = "" + (this.imageKeys16[i][0].toUpperCase()) + this.imageKeys16[i].slice(1); + } + }, checkForm: function(e) { var checkbox, k, len1, n, ref; n = 0; @@ -8109,6 +8120,9 @@ } else if (n === 9 && (i = this.imageKeys.indexOf(key)) >= 0) { this.images[i % 9].click(); verify.focus(); + } else if (n === 16 && (i = this.imageKeys16.indexOf(key)) >= 0) { + this.images[i].click(); + verify.focus(); } else if (dx = { 'Up': n, 'Down': w, @@ -8706,10 +8720,8 @@ setupIFrame: function(iframe) { Captcha.replace.iframe(iframe); $.addClass(QR.nodes.el, 'captcha-open'); - if (QR.nodes.el.getBoundingClientRect().bottom > doc.clientHeight) { - QR.nodes.el.style.top = null; - QR.nodes.el.style.bottom = '0px'; - } + this.fixQRPosition(); + $.on(iframe, 'load', this.fixQRPosition); if (d.activeElement === this.nodes.counter) { iframe.focus(); } @@ -8719,6 +8731,12 @@ return f.focus = f.blur = function() {}; }); }, + fixQRPosition: function() { + if (QR.nodes.el.getBoundingClientRect().bottom > doc.clientHeight) { + QR.nodes.el.style.top = null; + return QR.nodes.el.style.bottom = '0px'; + } + }, setupTextArea: function(textarea) { return $.one(textarea, 'input', (function(_this) { return function() { @@ -16102,6 +16120,11 @@ return 'Comma'; case 190: return 'Period'; + case 191: + return 'Slash'; + case 59: + case 186: + return 'Semicolon'; default: if ((48 <= kc && kc <= 57) || (65 <= kc && kc <= 90)) { return String.fromCharCode(kc).toLowerCase(); diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 4b3aa8ca9..590f96a23 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index 88e532450..cceb74949 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.xml b/builds/updates.xml index 035e44fe1..5463b50b3 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index 978679677..25a1b9600 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.11.18.2", - "date": "2015-11-24T06:48:15.178Z" + "version": "1.11.18.3", + "date": "2015-11-25T06:04:54.566Z" }