diff --git a/CHANGELOG.md b/CHANGELOG.md index 32ed3acb3..3096e12e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ## v1.14.0 +**v1.14.0.3** *(2018-01-25)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.0.3/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.0.3/builds/4chan-X-noupdate.crx)] +- Merge v1.13.15.6: Bugfix to captcha opening logic. Don't ask user for new captchas when we have a bypass cookie or at least one captcha, even when many posts are queued. +- Merge v1.13.15.6: Do not save captchas to disk or share them between tabs. They are too short-lived to be worth it now. This should reduce associated I/O errors. + **v1.14.0.2** *(2018-01-24)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.0.2/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.0.2/builds/4chan-X-noupdate.crx)] - Small bugfixes for Tinyboard. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index 5595c11a0..37c85826a 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 fe7ecaa6d..5a7355d7c 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.14.0.2 +// @version 1.14.0.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 9dd79bece..d36aa77a6 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.14.0.2 +// @version 1.14.0.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -157,7 +157,7 @@ docSet = function() { }; g = { - VERSION: '1.14.0.2', + VERSION: '1.14.0.3', NAMESPACE: '4chan X.', boards: {} }; @@ -5274,7 +5274,7 @@ $ = (function() { }); $.clear = function(cb) { $["delete"](Object.keys(Conf)); - $["delete"](['previousversion', 'QR Size', 'captchas', 'QR.persona', 'hiddenPSA']); + $["delete"](['previousversion', 'QR Size', 'QR.persona', 'hiddenPSA']); try { $["delete"]($.listValues().map(function(key) { return key.replace(g.NAMESPACE, ''); @@ -20579,15 +20579,6 @@ Captcha = {}; (function() { Captcha.cache = { init: function() { - $.get('captchas', [], (function(_this) { - return function(arg) { - var captchas; - captchas = arg.captchas; - _this.sync(captchas); - return _this.clear(); - }; - })(this)); - $.sync('captchas', this.sync.bind(this)); return $.on(d, 'SaveCaptcha', (function(_this) { return function(e) { return _this.save(e.detail); @@ -20599,26 +20590,7 @@ Captcha = {}; return this.captchas.length; }, needed: function() { - var captchaCount, postsCount; - captchaCount = this.captchas.length; - if (QR.req || /\b_ct=/.test(d.cookie)) { - captchaCount++; - } - postsCount = QR.posts.length; - if (postsCount === 1 && !Conf['Auto-load captcha'] && !QR.posts[0].com && !QR.posts[0].file) { - postsCount = 0; - } - return captchaCount < postsCount; - }, - sync: function(captchas) { - if (captchas == null) { - captchas = []; - } - if (!(captchas instanceof Array)) { - captchas = []; - } - this.captchas = captchas; - return this.count(); + return !(/\b_ct=/.test(d.cookie) || this.captchas.length || QR.req) && (QR.posts.length > 1 || Conf['Auto-load captcha'] || QR.posts[0].com || QR.posts[0].file); }, getOne: function(isReply) { var captcha, i; @@ -20628,7 +20600,6 @@ Captcha = {}; }); if (i >= 0) { captcha = this.captchas.splice(i, 1)[0]; - $.set('captchas', this.captchas); this.count(); return captcha; } else { @@ -20636,17 +20607,14 @@ Captcha = {}; } }, save: function(captcha) { - $.forceSync('captchas'); this.captchas.push(captcha); this.captchas.sort(function(a, b) { return a.timeout - b.timeout; }); - $.set('captchas', this.captchas); return this.count(); }, clear: function() { var captcha, i, j, len, now, ref; - $.forceSync('captchas'); if (this.captchas.length) { now = Date.now(); ref = this.captchas; @@ -20658,7 +20626,6 @@ Captcha = {}; } if (i) { this.captchas = this.captchas.slice(i); - $.set('captchas', this.captchas); return this.count(); } } diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index d5f1065c0..4332f5f83 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 c46507eff..eb756a24a 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.0.2 +// @version 1.14.0.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -157,7 +157,7 @@ docSet = function() { }; g = { - VERSION: '1.14.0.2', + VERSION: '1.14.0.3', NAMESPACE: '4chan X.', boards: {} }; @@ -5274,7 +5274,7 @@ $ = (function() { }); $.clear = function(cb) { $["delete"](Object.keys(Conf)); - $["delete"](['previousversion', 'QR Size', 'captchas', 'QR.persona', 'hiddenPSA']); + $["delete"](['previousversion', 'QR Size', 'QR.persona', 'hiddenPSA']); try { $["delete"]($.listValues().map(function(key) { return key.replace(g.NAMESPACE, ''); @@ -20579,15 +20579,6 @@ Captcha = {}; (function() { Captcha.cache = { init: function() { - $.get('captchas', [], (function(_this) { - return function(arg) { - var captchas; - captchas = arg.captchas; - _this.sync(captchas); - return _this.clear(); - }; - })(this)); - $.sync('captchas', this.sync.bind(this)); return $.on(d, 'SaveCaptcha', (function(_this) { return function(e) { return _this.save(e.detail); @@ -20599,26 +20590,7 @@ Captcha = {}; return this.captchas.length; }, needed: function() { - var captchaCount, postsCount; - captchaCount = this.captchas.length; - if (QR.req || /\b_ct=/.test(d.cookie)) { - captchaCount++; - } - postsCount = QR.posts.length; - if (postsCount === 1 && !Conf['Auto-load captcha'] && !QR.posts[0].com && !QR.posts[0].file) { - postsCount = 0; - } - return captchaCount < postsCount; - }, - sync: function(captchas) { - if (captchas == null) { - captchas = []; - } - if (!(captchas instanceof Array)) { - captchas = []; - } - this.captchas = captchas; - return this.count(); + return !(/\b_ct=/.test(d.cookie) || this.captchas.length || QR.req) && (QR.posts.length > 1 || Conf['Auto-load captcha'] || QR.posts[0].com || QR.posts[0].file); }, getOne: function(isReply) { var captcha, i; @@ -20628,7 +20600,6 @@ Captcha = {}; }); if (i >= 0) { captcha = this.captchas.splice(i, 1)[0]; - $.set('captchas', this.captchas); this.count(); return captcha; } else { @@ -20636,17 +20607,14 @@ Captcha = {}; } }, save: function(captcha) { - $.forceSync('captchas'); this.captchas.push(captcha); this.captchas.sort(function(a, b) { return a.timeout - b.timeout; }); - $.set('captchas', this.captchas); return this.count(); }, clear: function() { var captcha, i, j, len, now, ref; - $.forceSync('captchas'); if (this.captchas.length) { now = Date.now(); ref = this.captchas; @@ -20658,7 +20626,6 @@ Captcha = {}; } if (i) { this.captchas = this.captchas.slice(i); - $.set('captchas', this.captchas); return this.count(); } } diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 7264f3f72..12acfcda8 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 20379c580..ed3cdd40e 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.0.2 +// @version 1.14.0.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 3941bc9a1..ce237c9e5 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.0.2 +// @version 1.14.0.3 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -157,7 +157,7 @@ docSet = function() { }; g = { - VERSION: '1.14.0.2', + VERSION: '1.14.0.3', NAMESPACE: '4chan X.', boards: {} }; @@ -5274,7 +5274,7 @@ $ = (function() { }); $.clear = function(cb) { $["delete"](Object.keys(Conf)); - $["delete"](['previousversion', 'QR Size', 'captchas', 'QR.persona', 'hiddenPSA']); + $["delete"](['previousversion', 'QR Size', 'QR.persona', 'hiddenPSA']); try { $["delete"]($.listValues().map(function(key) { return key.replace(g.NAMESPACE, ''); @@ -20579,15 +20579,6 @@ Captcha = {}; (function() { Captcha.cache = { init: function() { - $.get('captchas', [], (function(_this) { - return function(arg) { - var captchas; - captchas = arg.captchas; - _this.sync(captchas); - return _this.clear(); - }; - })(this)); - $.sync('captchas', this.sync.bind(this)); return $.on(d, 'SaveCaptcha', (function(_this) { return function(e) { return _this.save(e.detail); @@ -20599,26 +20590,7 @@ Captcha = {}; return this.captchas.length; }, needed: function() { - var captchaCount, postsCount; - captchaCount = this.captchas.length; - if (QR.req || /\b_ct=/.test(d.cookie)) { - captchaCount++; - } - postsCount = QR.posts.length; - if (postsCount === 1 && !Conf['Auto-load captcha'] && !QR.posts[0].com && !QR.posts[0].file) { - postsCount = 0; - } - return captchaCount < postsCount; - }, - sync: function(captchas) { - if (captchas == null) { - captchas = []; - } - if (!(captchas instanceof Array)) { - captchas = []; - } - this.captchas = captchas; - return this.count(); + return !(/\b_ct=/.test(d.cookie) || this.captchas.length || QR.req) && (QR.posts.length > 1 || Conf['Auto-load captcha'] || QR.posts[0].com || QR.posts[0].file); }, getOne: function(isReply) { var captcha, i; @@ -20628,7 +20600,6 @@ Captcha = {}; }); if (i >= 0) { captcha = this.captchas.splice(i, 1)[0]; - $.set('captchas', this.captchas); this.count(); return captcha; } else { @@ -20636,17 +20607,14 @@ Captcha = {}; } }, save: function(captcha) { - $.forceSync('captchas'); this.captchas.push(captcha); this.captchas.sort(function(a, b) { return a.timeout - b.timeout; }); - $.set('captchas', this.captchas); return this.count(); }, clear: function() { var captcha, i, j, len, now, ref; - $.forceSync('captchas'); if (this.captchas.length) { now = Date.now(); ref = this.captchas; @@ -20658,7 +20626,6 @@ Captcha = {}; } if (i) { this.captchas = this.captchas.slice(i); - $.set('captchas', this.captchas); return this.count(); } } diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 56ae83920..1be7d7a04 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.json b/builds/updates-beta.json index 46dbc6f77..220488929 100644 --- a/builds/updates-beta.json +++ b/builds/updates-beta.json @@ -3,7 +3,7 @@ "4chan-x@4chan-x.net": { "updates": [ { - "version": "1.14.0.2", + "version": "1.14.0.3", "update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx" } ] diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index 57c730706..c14b3da5a 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.json b/builds/updates.json index f65a79e38..f32d6bce2 100644 --- a/builds/updates.json +++ b/builds/updates.json @@ -3,7 +3,7 @@ "4chan-x@4chan-x.net": { "updates": [ { - "version": "1.14.0.2", + "version": "1.14.0.3", "update_link": "https://www.4chan-x.net/builds/4chan-X.crx" } ] diff --git a/builds/updates.xml b/builds/updates.xml index 39bfedf1b..e655b2bb7 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index ac049cb46..12930c9e2 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.14.0.2", - "date": "2018-01-24T22:15:19.430Z" + "version": "1.14.0.3", + "date": "2018-01-25T00:58:59.931Z" } \ No newline at end of file