diff --git a/CHANGELOG.md b/CHANGELOG.md
index 659d853b0..253e01cf2 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@ The links to individual versions below are to copies of the script with the upda
## v1.11.0
+**v1.11.0.4** *(2015-06-20)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.0.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.0.4/builds/4chan-X-noupdate.crx "Chromium version")]
+- Noscript captcha improvements, including the ability to click the image rather than the little checkbox.
+
**v1.11.0.3** *(2015-06-19)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.0.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.0.3/builds/4chan-X-noupdate.crx "Chromium version")]
- Merge v1.10.14.4: Update script for new non-Javascript captcha using image selection.
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index 7a0d0365b..48d0d3022 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 fa3a21c18..fed862d07 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.0.3
+// @version 1.11.0.4
// @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 332fe7961..7d72315b5 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.0.3
+// @version 1.11.0.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -237,7 +237,7 @@
'Auto-load captcha': [false, 'Automatically load the captcha in the QR even if your post is empty.', 1],
'Post on Captcha Completion': [false, 'Submit the post immediately when the captcha is completed.', 1],
'Bottom QR Link': [true, 'Places a link on the bottom of threads to open the QR.', 1],
- 'Captcha Fixes': [true, 'Make captcha more keyboard-navigable.']
+ 'Captcha Fixes': [true, 'Make captcha easier to use, especially with the keyboard.']
},
'Quote Links': {
'Quote Backlinks': [true, 'Add quote backlinks.'],
@@ -399,7 +399,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.11.0.3',
+ VERSION: '1.11.0.4',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -7616,12 +7616,15 @@
Captcha.fixes = {
css: '.rc-imageselect-target > div:focus {\n outline: 2px solid #4a90e2;\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;}',
init: function() {
switch (location.pathname.split('/')[3]) {
case 'anchor':
return this.initMain();
case 'frame':
return this.initPopup();
+ case 'fallback':
+ return this.initNoscript();
}
},
initMain: function() {
@@ -7651,6 +7654,10 @@
});
return $.on(d, 'keydown', this.keybinds.bind(this));
},
+ initNoscript: function() {
+ $.addStyle(this.cssNoscript);
+ return this.addLabels();
+ },
fixImages: function() {
var img, k, len1, ref;
this.images = $$('.rc-imageselect-target > div');
@@ -7660,6 +7667,27 @@
img.tabIndex = 0;
}
},
+ addLabels: function() {
+ var checkbox, i, imageSelect, label, labels;
+ imageSelect = $('.fbc-payload-imageselect');
+ labels = (function() {
+ var k, len1, ref, results;
+ ref = $$('input', imageSelect);
+ results = [];
+ for (i = k = 0, len1 = ref.length; k < len1; i = ++k) {
+ checkbox = ref[i];
+ checkbox.id = "checkbox-" + i;
+ label = $.el('label', {
+ htmlFor: checkbox.id
+ });
+ label.dataset.row = Math.floor(i / 3);
+ label.dataset.col = i % 3;
+ results.push(label);
+ }
+ return results;
+ })();
+ return $.add(imageSelect, labels);
+ },
keybinds: function(e) {
var dx, reload, verify, x;
if (!(this.images && doc.contains(this.images[0]) && d.activeElement)) {
@@ -16063,17 +16091,16 @@
$.ready(function() {
return Captcha.noscript.initFrame();
});
- } else {
- $.get('Captcha Fixes', true, function(arg) {
- var enabled;
- enabled = arg['Captcha Fixes'];
- if (enabled) {
- return $.ready(function() {
- return Captcha.fixes.init();
- });
- }
- });
}
+ $.get('Captcha Fixes', true, function(arg) {
+ var enabled;
+ enabled = arg['Captcha Fixes'];
+ if (enabled) {
+ return $.ready(function() {
+ return Captcha.fixes.init();
+ });
+ }
+ });
return;
}
if (location.hostname === 'www.4chan.org') {
@@ -17223,6 +17250,9 @@
"#thread-watcher {\n" +
" z-index: 10;\n" +
"}\n" +
+":root.fixed:not(.gallery-open) #header-bar:not(.autohide) {\n" +
+" z-index: 5;\n" +
+"}\n" +
"/* Header */\n" +
".fixed.top-header body {\n" +
" padding-top: 2em;\n" +
@@ -18187,6 +18217,10 @@
" min-width: 300px;\n" +
" border-radius: 3px 3px 0 0;\n" +
"}\n" +
+"#qr > form {\n" +
+" max-height: calc(100vh - 75px);\n" +
+" overflow-y: auto;\n" +
+"}\n" +
"#qrtab {\n" +
" border-radius: 3px 3px 0 0;\n" +
"}\n" +
@@ -18285,9 +18319,9 @@
"#qr-captcha-iframe {\n" +
" width: 302px;\n" +
" height: 423px;\n" +
-" max-width: 100vw;\n" +
-" max-height: calc(100vh - 210px);\n" +
-" overflow: auto;\n" +
+" border: 0;\n" +
+" display: block;\n" +
+" margin: auto;\n" +
"}\n" +
".goog-bubble-content {\n" +
" max-width: 100vw;\n" +
@@ -18488,6 +18522,8 @@
"}\n" +
".textarea {\n" +
" position: relative;\n" +
+" display: -webkit-flex;\n" +
+" display: flex;\n" +
"}\n" +
":root.webkit .textarea {\n" +
" margin-bottom: -2px;\n" +
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index 9a36b3507..71f4745ef 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 86f63b52a..d61524182 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.0.3
+// @version 1.11.0.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -236,7 +236,7 @@
'Auto-load captcha': [false, 'Automatically load the captcha in the QR even if your post is empty.', 1],
'Post on Captcha Completion': [false, 'Submit the post immediately when the captcha is completed.', 1],
'Bottom QR Link': [true, 'Places a link on the bottom of threads to open the QR.', 1],
- 'Captcha Fixes': [true, 'Make captcha more keyboard-navigable.']
+ 'Captcha Fixes': [true, 'Make captcha easier to use, especially with the keyboard.']
},
'Quote Links': {
'Quote Backlinks': [true, 'Add quote backlinks.'],
@@ -398,7 +398,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.11.0.3',
+ VERSION: '1.11.0.4',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -7615,12 +7615,15 @@
Captcha.fixes = {
css: '.rc-imageselect-target > div:focus {\n outline: 2px solid #4a90e2;\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;}',
init: function() {
switch (location.pathname.split('/')[3]) {
case 'anchor':
return this.initMain();
case 'frame':
return this.initPopup();
+ case 'fallback':
+ return this.initNoscript();
}
},
initMain: function() {
@@ -7650,6 +7653,10 @@
});
return $.on(d, 'keydown', this.keybinds.bind(this));
},
+ initNoscript: function() {
+ $.addStyle(this.cssNoscript);
+ return this.addLabels();
+ },
fixImages: function() {
var img, k, len1, ref;
this.images = $$('.rc-imageselect-target > div');
@@ -7659,6 +7666,27 @@
img.tabIndex = 0;
}
},
+ addLabels: function() {
+ var checkbox, i, imageSelect, label, labels;
+ imageSelect = $('.fbc-payload-imageselect');
+ labels = (function() {
+ var k, len1, ref, results;
+ ref = $$('input', imageSelect);
+ results = [];
+ for (i = k = 0, len1 = ref.length; k < len1; i = ++k) {
+ checkbox = ref[i];
+ checkbox.id = "checkbox-" + i;
+ label = $.el('label', {
+ htmlFor: checkbox.id
+ });
+ label.dataset.row = Math.floor(i / 3);
+ label.dataset.col = i % 3;
+ results.push(label);
+ }
+ return results;
+ })();
+ return $.add(imageSelect, labels);
+ },
keybinds: function(e) {
var dx, reload, verify, x;
if (!(this.images && doc.contains(this.images[0]) && d.activeElement)) {
@@ -16062,17 +16090,16 @@
$.ready(function() {
return Captcha.noscript.initFrame();
});
- } else {
- $.get('Captcha Fixes', true, function(arg) {
- var enabled;
- enabled = arg['Captcha Fixes'];
- if (enabled) {
- return $.ready(function() {
- return Captcha.fixes.init();
- });
- }
- });
}
+ $.get('Captcha Fixes', true, function(arg) {
+ var enabled;
+ enabled = arg['Captcha Fixes'];
+ if (enabled) {
+ return $.ready(function() {
+ return Captcha.fixes.init();
+ });
+ }
+ });
return;
}
if (location.hostname === 'www.4chan.org') {
@@ -17222,6 +17249,9 @@
"#thread-watcher {\n" +
" z-index: 10;\n" +
"}\n" +
+":root.fixed:not(.gallery-open) #header-bar:not(.autohide) {\n" +
+" z-index: 5;\n" +
+"}\n" +
"/* Header */\n" +
".fixed.top-header body {\n" +
" padding-top: 2em;\n" +
@@ -18186,6 +18216,10 @@
" min-width: 300px;\n" +
" border-radius: 3px 3px 0 0;\n" +
"}\n" +
+"#qr > form {\n" +
+" max-height: calc(100vh - 75px);\n" +
+" overflow-y: auto;\n" +
+"}\n" +
"#qrtab {\n" +
" border-radius: 3px 3px 0 0;\n" +
"}\n" +
@@ -18284,9 +18318,9 @@
"#qr-captcha-iframe {\n" +
" width: 302px;\n" +
" height: 423px;\n" +
-" max-width: 100vw;\n" +
-" max-height: calc(100vh - 210px);\n" +
-" overflow: auto;\n" +
+" border: 0;\n" +
+" display: block;\n" +
+" margin: auto;\n" +
"}\n" +
".goog-bubble-content {\n" +
" max-width: 100vw;\n" +
@@ -18487,6 +18521,8 @@
"}\n" +
".textarea {\n" +
" position: relative;\n" +
+" display: -webkit-flex;\n" +
+" display: flex;\n" +
"}\n" +
":root.webkit .textarea {\n" +
" margin-bottom: -2px;\n" +
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index 5ad1bbc47..37b0eec39 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 5e115fc1b..7dc3ea6da 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.11.0.3
+// @version 1.11.0.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index 724d3c8cd..4ca73c5a7 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.0.3
+// @version 1.11.0.4
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -237,7 +237,7 @@
'Auto-load captcha': [false, 'Automatically load the captcha in the QR even if your post is empty.', 1],
'Post on Captcha Completion': [false, 'Submit the post immediately when the captcha is completed.', 1],
'Bottom QR Link': [true, 'Places a link on the bottom of threads to open the QR.', 1],
- 'Captcha Fixes': [true, 'Make captcha more keyboard-navigable.']
+ 'Captcha Fixes': [true, 'Make captcha easier to use, especially with the keyboard.']
},
'Quote Links': {
'Quote Backlinks': [true, 'Add quote backlinks.'],
@@ -399,7 +399,7 @@
doc = d.documentElement;
g = {
- VERSION: '1.11.0.3',
+ VERSION: '1.11.0.4',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -7616,12 +7616,15 @@
Captcha.fixes = {
css: '.rc-imageselect-target > div:focus {\n outline: 2px solid #4a90e2;\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;}',
init: function() {
switch (location.pathname.split('/')[3]) {
case 'anchor':
return this.initMain();
case 'frame':
return this.initPopup();
+ case 'fallback':
+ return this.initNoscript();
}
},
initMain: function() {
@@ -7651,6 +7654,10 @@
});
return $.on(d, 'keydown', this.keybinds.bind(this));
},
+ initNoscript: function() {
+ $.addStyle(this.cssNoscript);
+ return this.addLabels();
+ },
fixImages: function() {
var img, k, len1, ref;
this.images = $$('.rc-imageselect-target > div');
@@ -7660,6 +7667,27 @@
img.tabIndex = 0;
}
},
+ addLabels: function() {
+ var checkbox, i, imageSelect, label, labels;
+ imageSelect = $('.fbc-payload-imageselect');
+ labels = (function() {
+ var k, len1, ref, results;
+ ref = $$('input', imageSelect);
+ results = [];
+ for (i = k = 0, len1 = ref.length; k < len1; i = ++k) {
+ checkbox = ref[i];
+ checkbox.id = "checkbox-" + i;
+ label = $.el('label', {
+ htmlFor: checkbox.id
+ });
+ label.dataset.row = Math.floor(i / 3);
+ label.dataset.col = i % 3;
+ results.push(label);
+ }
+ return results;
+ })();
+ return $.add(imageSelect, labels);
+ },
keybinds: function(e) {
var dx, reload, verify, x;
if (!(this.images && doc.contains(this.images[0]) && d.activeElement)) {
@@ -16063,17 +16091,16 @@
$.ready(function() {
return Captcha.noscript.initFrame();
});
- } else {
- $.get('Captcha Fixes', true, function(arg) {
- var enabled;
- enabled = arg['Captcha Fixes'];
- if (enabled) {
- return $.ready(function() {
- return Captcha.fixes.init();
- });
- }
- });
}
+ $.get('Captcha Fixes', true, function(arg) {
+ var enabled;
+ enabled = arg['Captcha Fixes'];
+ if (enabled) {
+ return $.ready(function() {
+ return Captcha.fixes.init();
+ });
+ }
+ });
return;
}
if (location.hostname === 'www.4chan.org') {
@@ -17223,6 +17250,9 @@
"#thread-watcher {\n" +
" z-index: 10;\n" +
"}\n" +
+":root.fixed:not(.gallery-open) #header-bar:not(.autohide) {\n" +
+" z-index: 5;\n" +
+"}\n" +
"/* Header */\n" +
".fixed.top-header body {\n" +
" padding-top: 2em;\n" +
@@ -18187,6 +18217,10 @@
" min-width: 300px;\n" +
" border-radius: 3px 3px 0 0;\n" +
"}\n" +
+"#qr > form {\n" +
+" max-height: calc(100vh - 75px);\n" +
+" overflow-y: auto;\n" +
+"}\n" +
"#qrtab {\n" +
" border-radius: 3px 3px 0 0;\n" +
"}\n" +
@@ -18285,9 +18319,9 @@
"#qr-captcha-iframe {\n" +
" width: 302px;\n" +
" height: 423px;\n" +
-" max-width: 100vw;\n" +
-" max-height: calc(100vh - 210px);\n" +
-" overflow: auto;\n" +
+" border: 0;\n" +
+" display: block;\n" +
+" margin: auto;\n" +
"}\n" +
".goog-bubble-content {\n" +
" max-width: 100vw;\n" +
@@ -18488,6 +18522,8 @@
"}\n" +
".textarea {\n" +
" position: relative;\n" +
+" display: -webkit-flex;\n" +
+" display: flex;\n" +
"}\n" +
":root.webkit .textarea {\n" +
" margin-bottom: -2px;\n" +
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index 5f46a1c8f..ff42f9daa 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 09fe15f94..c1e8fd8d6 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 6a1685082..e67e4bc89 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/package.json b/package.json
index c759e5e08..9e8997215 100755
--- a/package.json
+++ b/package.json
@@ -3,8 +3,8 @@
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": {
"name": "4chan X",
- "version": "1.11.0.3",
- "date": "2015-06-19T22:55:10.677Z",
+ "version": "1.11.0.4",
+ "date": "2015-06-20T18:31:37.633Z",
"repo": "https://github.com/ccd0/4chan-x/",
"page": "https://github.com/ccd0/4chan-x",
"downloads": "https://ccd0.github.io/4chan-x/builds/",