diff --git a/CHANGELOG.md b/CHANGELOG.md index f98959388..f15acb73a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ ### v1.14.10 +**v1.14.10.2** *(2019-07-23)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.10.2/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.10.2/builds/4chan-X-noupdate.crx)] +- Limit number of autoretries on posting error to reduce likelihood of "excessive server request" bans. #1302 +- Fix bug from v1.14.10.0 causing full image and thumbnail to briefly appear simultaneously while contracting images and causing unwanted scrolling. +- Fix bug causing issues in inlined quotes such as "You" in post menu being unchecked and posts sometimes being wrongly marked as deleted. + **v1.14.10.1** *(2019-07-19)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.10.1/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.10.1/builds/4chan-X-noupdate.crx)] - Merge v1.14.9.2: Fix regression causing thread watcher to stop highlighting active thread. - Add option `Filter in Native Catalog` to apply 4chan X filters on native catalog. Also works on vichan sites. Enabled by default for new installs only. #2351 diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index c28209d87..105484d42 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 18edf0ba0..eb8f32147 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.10.1 +// @version 1.14.10.2 // @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 c54635703..bdf49234c 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.10.1 +// @version 1.14.10.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -199,7 +199,7 @@ docSet = function() { }; g = { - VERSION: '1.14.10.1', + VERSION: '1.14.10.2', NAMESPACE: '4chan X.', sites: {}, boards: {} @@ -2617,7 +2617,7 @@ textarea.copy-text-element {\n\ .expanded-image > .post > .file > .fileThumb > img[data-md5] {\n\ display: none;\n\ }\n\ -.full-image[data-full-i-d] {\n\ +.full-image[data-file-i-d] {\n\ display: none;\n\ cursor: pointer;\n\ }\n\ @@ -7172,7 +7172,7 @@ Post = (function() { var base, file, fileRoot, fileRoots, i, inline, inlined, j, k, key, l, len, len1, len2, len3, len4, m, node, nodes, originFile, ref, ref1, ref2, ref3, ref4, ref5, ref6, root, selector, val; this.origin = origin; this.context = context; - ref = ['ID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; + ref = ['ID', 'postID', 'threadID', 'boardID', 'siteID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; for (i = 0, len = ref.length; i < len; i++) { key = ref[i]; this[key] = this.origin[key]; @@ -24479,14 +24479,19 @@ QR = (function() { } delete QR.currentCaptcha; if (err) { + QR.errorCount = (QR.errorCount || 0) + 1; if (/captcha|verification/i.test(err.textContent) || connErr) { if (/mistyped/i.test(err.textContent)) { err = 'You mistyped the CAPTCHA, or the CAPTCHA malfunctioned.'; } else if (/expired/i.test(err.textContent)) { err = 'This CAPTCHA is no longer valid because it has expired.'; } - QR.cooldown.auto = QR.captcha.isEnabled || connErr; - QR.cooldown.addDelay(post, 2); + if (QR.errorCount >= 5) { + QR.cooldown.auto = false; + } else { + QR.cooldown.auto = QR.captcha.isEnabled || connErr; + QR.cooldown.addDelay(post, 2); + } } 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 = !/have\s+been\s+muted/i.test(err.textContent); seconds = 60 * (+(m[1] || 0)) + (+m[2]); @@ -24503,6 +24508,7 @@ QR = (function() { QR.error(err); return; } + delete QR.errorCount; h1 = $('h1', this.response); ref3 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref3[0], threadID = ref3[1], postID = ref3[2]; postID = +postID; diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 351c04719..ed7927129 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 90758dbc5..f07e42347 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.10.1 +// @version 1.14.10.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -199,7 +199,7 @@ docSet = function() { }; g = { - VERSION: '1.14.10.1', + VERSION: '1.14.10.2', NAMESPACE: '4chan X.', sites: {}, boards: {} @@ -2617,7 +2617,7 @@ textarea.copy-text-element {\n\ .expanded-image > .post > .file > .fileThumb > img[data-md5] {\n\ display: none;\n\ }\n\ -.full-image[data-full-i-d] {\n\ +.full-image[data-file-i-d] {\n\ display: none;\n\ cursor: pointer;\n\ }\n\ @@ -7172,7 +7172,7 @@ Post = (function() { var base, file, fileRoot, fileRoots, i, inline, inlined, j, k, key, l, len, len1, len2, len3, len4, m, node, nodes, originFile, ref, ref1, ref2, ref3, ref4, ref5, ref6, root, selector, val; this.origin = origin; this.context = context; - ref = ['ID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; + ref = ['ID', 'postID', 'threadID', 'boardID', 'siteID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; for (i = 0, len = ref.length; i < len; i++) { key = ref[i]; this[key] = this.origin[key]; @@ -24479,14 +24479,19 @@ QR = (function() { } delete QR.currentCaptcha; if (err) { + QR.errorCount = (QR.errorCount || 0) + 1; if (/captcha|verification/i.test(err.textContent) || connErr) { if (/mistyped/i.test(err.textContent)) { err = 'You mistyped the CAPTCHA, or the CAPTCHA malfunctioned.'; } else if (/expired/i.test(err.textContent)) { err = 'This CAPTCHA is no longer valid because it has expired.'; } - QR.cooldown.auto = QR.captcha.isEnabled || connErr; - QR.cooldown.addDelay(post, 2); + if (QR.errorCount >= 5) { + QR.cooldown.auto = false; + } else { + QR.cooldown.auto = QR.captcha.isEnabled || connErr; + QR.cooldown.addDelay(post, 2); + } } 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 = !/have\s+been\s+muted/i.test(err.textContent); seconds = 60 * (+(m[1] || 0)) + (+m[2]); @@ -24503,6 +24508,7 @@ QR = (function() { QR.error(err); return; } + delete QR.errorCount; h1 = $('h1', this.response); ref3 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref3[0], threadID = ref3[1], postID = ref3[2]; postID = +postID; diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 41dbca539..dbdbc92d8 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 307b34edf..5e854be89 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.10.1 +// @version 1.14.10.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 4ad39eba8..eb4de880f 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.14.10.1 +// @version 1.14.10.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -199,7 +199,7 @@ docSet = function() { }; g = { - VERSION: '1.14.10.1', + VERSION: '1.14.10.2', NAMESPACE: '4chan X.', sites: {}, boards: {} @@ -2617,7 +2617,7 @@ textarea.copy-text-element {\n\ .expanded-image > .post > .file > .fileThumb > img[data-md5] {\n\ display: none;\n\ }\n\ -.full-image[data-full-i-d] {\n\ +.full-image[data-file-i-d] {\n\ display: none;\n\ cursor: pointer;\n\ }\n\ @@ -7172,7 +7172,7 @@ Post = (function() { var base, file, fileRoot, fileRoots, i, inline, inlined, j, k, key, l, len, len1, len2, len3, len4, m, node, nodes, originFile, ref, ref1, ref2, ref3, ref4, ref5, ref6, root, selector, val; this.origin = origin; this.context = context; - ref = ['ID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; + ref = ['ID', 'postID', 'threadID', 'boardID', 'siteID', 'fullID', 'board', 'thread', 'info', 'quotes', 'isReply']; for (i = 0, len = ref.length; i < len; i++) { key = ref[i]; this[key] = this.origin[key]; @@ -24479,14 +24479,19 @@ QR = (function() { } delete QR.currentCaptcha; if (err) { + QR.errorCount = (QR.errorCount || 0) + 1; if (/captcha|verification/i.test(err.textContent) || connErr) { if (/mistyped/i.test(err.textContent)) { err = 'You mistyped the CAPTCHA, or the CAPTCHA malfunctioned.'; } else if (/expired/i.test(err.textContent)) { err = 'This CAPTCHA is no longer valid because it has expired.'; } - QR.cooldown.auto = QR.captcha.isEnabled || connErr; - QR.cooldown.addDelay(post, 2); + if (QR.errorCount >= 5) { + QR.cooldown.auto = false; + } else { + QR.cooldown.auto = QR.captcha.isEnabled || connErr; + QR.cooldown.addDelay(post, 2); + } } 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 = !/have\s+been\s+muted/i.test(err.textContent); seconds = 60 * (+(m[1] || 0)) + (+m[2]); @@ -24503,6 +24508,7 @@ QR = (function() { QR.error(err); return; } + delete QR.errorCount; h1 = $('h1', this.response); ref3 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref3[0], threadID = ref3[1], postID = ref3[2]; postID = +postID; diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 3e491d86e..899ee5469 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 0eebd052a..09d28a3a0 100644 --- a/builds/updates-beta.json +++ b/builds/updates-beta.json @@ -3,7 +3,7 @@ "4chan-x@4chan-x.net": { "updates": [ { - "version": "1.14.10.1", + "version": "1.14.10.2", "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 f1e0c45fd..00895350c 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 67401d5de..747a8068a 100644 --- a/builds/updates.json +++ b/builds/updates.json @@ -3,7 +3,7 @@ "4chan-x@4chan-x.net": { "updates": [ { - "version": "1.14.10.1", + "version": "1.14.10.2", "update_link": "https://www.4chan-x.net/builds/4chan-X.crx" } ] diff --git a/builds/updates.xml b/builds/updates.xml index 7a53d5b33..803470d91 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index 4bfbdba1e..31915929d 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.14.10.1", - "date": "2019-07-19T02:39:09.742Z" + "version": "1.14.10.2", + "date": "2019-07-23T20:21:29.383Z" } \ No newline at end of file