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/",