diff --git a/CHANGELOG.md b/CHANGELOG.md index 38e9afcaf..938ff8d1c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### v1.8.8.1 +*2014-07-28* + **ccd0** - Fix for image 404 redirection which was broken in v1.8.8. diff --git a/LICENSE b/LICENSE index b42c23359..a0e689465 100755 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ /* -* 4chan X - Version 1.8.8 - 2014-07-27 +* 4chan X - Version 1.8.8.1 - 2014-07-28 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index 7e7638852..839b96a49 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 4aa250a00..9cfa4f89b 100644 --- a/builds/4chan-X-beta.meta.js +++ b/builds/4chan-X-beta.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.8.8 +// @version 1.8.8.1 // @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 7a9482f13..f7935b8b8 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 -// @version 1.8.8 +// @version 1.8.8.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -24,7 +24,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.8.8 - 2014-07-27 +* 4chan X - Version 1.8.8.1 - 2014-07-28 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -378,7 +378,7 @@ doc = d.documentElement; g = { - VERSION: '1.8.8', + VERSION: '1.8.8.1', NAMESPACE: '4chan X.', boards: {} }; @@ -7816,7 +7816,7 @@ if (((_ref = file.error) != null ? _ref.code : void 0) === MediaError.MEDIA_ERR_DECODE) { return new Notice('error', 'Corrupt or unplayable video', 30); } - return ImageCommon.error(g.posts[file.dataset.post], null, function() { + return ImageCommon.error(file, g.posts[file.dataset.post], null, function(URL) { if (!URL) { return; } @@ -7993,8 +7993,11 @@ message.textContent = 'Error: Corrupt or unplayable video'; return true; }, - error: function(post, delay, cb) { + error: function(file, post, delay, cb) { var kill, timeoutID; + if ((post.isDead || post.file.isDead) && file.src.split('/')[2] === 'i.4cdn.org') { + ImageCommon.retry(post, cb); + } if (delay != null) { timeoutID = setTimeout(ImageCommon.retry, delay, post, cb); } @@ -8009,6 +8012,9 @@ return $.ajax("//a.4cdn.org/" + post.board + "/thread/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; + if (this.status === 404) { + return kill(); + } if (this.status !== 200) { return; } @@ -8028,13 +8034,14 @@ }); }, retry: function(post, cb) { - var URL; + var URL, src; if (!(post.isDead || post.file.isDead)) { return cb(post.file.URL + '?' + Date.now()); } + src = post.file.URL.split('/'); URL = Redirect.to('file', { boardID: post.board.ID, - filename: post.file.URL + filename: src[src.length - 1] }); if (URL && (/^https:\/\//.test(URL) || location.protocol === 'http:')) { return cb(URL); @@ -8382,7 +8389,7 @@ return; } if (post.file.isExpanding || post.file.isExpanded) { - return ImageCommon.error(post, 10 * $.SECOND, function(URL) { + return ImageCommon.error(this, post, 10 * $.SECOND, function(URL) { if (post.file.isExpanding || post.file.isExpanded) { ImageExpand.contract(post); if (URL) { @@ -8506,11 +8513,13 @@ if (ImageCommon.decodeError(this, post)) { return; } - return ImageCommon.error(post, 3 * $.SECOND, function() { - if (URL) { - return this.src = URL; - } - }); + return ImageCommon.error(this, post, 3 * $.SECOND, (function(_this) { + return function(URL) { + if (URL) { + return _this.src = URL; + } + }; + })(this)); } }; @@ -12570,7 +12579,7 @@ Settings.dialog = dialog = $.el('div', { id: 'fourchanx-settings', className: 'dialog', - innerHTML: '
' + innerHTML: '
' }); $.on($('.export', Settings.dialog), 'click', Settings["export"]); $.on($('.import', Settings.dialog), 'click', Settings["import"]); @@ -13412,7 +13421,7 @@ } if (previousversion) { el = $.el('span', { - innerHTML: '4chan X has been updated to version 1.8.8.' + innerHTML: '4chan X has been updated to version 1.8.8.1.' }); new Notice('info', el, 15); } else { diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 19bcb96f8..401304f35 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 46e4c3eaf..75bee2d76 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.8.8 +// @version 1.8.8.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -23,7 +23,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.8.8 - 2014-07-27 +* 4chan X - Version 1.8.8.1 - 2014-07-28 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -377,7 +377,7 @@ doc = d.documentElement; g = { - VERSION: '1.8.8', + VERSION: '1.8.8.1', NAMESPACE: '4chan X.', boards: {} }; @@ -7815,7 +7815,7 @@ if (((_ref = file.error) != null ? _ref.code : void 0) === MediaError.MEDIA_ERR_DECODE) { return new Notice('error', 'Corrupt or unplayable video', 30); } - return ImageCommon.error(g.posts[file.dataset.post], null, function() { + return ImageCommon.error(file, g.posts[file.dataset.post], null, function(URL) { if (!URL) { return; } @@ -7992,8 +7992,11 @@ message.textContent = 'Error: Corrupt or unplayable video'; return true; }, - error: function(post, delay, cb) { + error: function(file, post, delay, cb) { var kill, timeoutID; + if ((post.isDead || post.file.isDead) && file.src.split('/')[2] === 'i.4cdn.org') { + ImageCommon.retry(post, cb); + } if (delay != null) { timeoutID = setTimeout(ImageCommon.retry, delay, post, cb); } @@ -8008,6 +8011,9 @@ return $.ajax("//a.4cdn.org/" + post.board + "/thread/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; + if (this.status === 404) { + return kill(); + } if (this.status !== 200) { return; } @@ -8027,13 +8033,14 @@ }); }, retry: function(post, cb) { - var URL; + var URL, src; if (!(post.isDead || post.file.isDead)) { return cb(post.file.URL + '?' + Date.now()); } + src = post.file.URL.split('/'); URL = Redirect.to('file', { boardID: post.board.ID, - filename: post.file.URL + filename: src[src.length - 1] }); if (URL && (/^https:\/\//.test(URL) || location.protocol === 'http:')) { return cb(URL); @@ -8381,7 +8388,7 @@ return; } if (post.file.isExpanding || post.file.isExpanded) { - return ImageCommon.error(post, 10 * $.SECOND, function(URL) { + return ImageCommon.error(this, post, 10 * $.SECOND, function(URL) { if (post.file.isExpanding || post.file.isExpanded) { ImageExpand.contract(post); if (URL) { @@ -8505,11 +8512,13 @@ if (ImageCommon.decodeError(this, post)) { return; } - return ImageCommon.error(post, 3 * $.SECOND, function() { - if (URL) { - return this.src = URL; - } - }); + return ImageCommon.error(this, post, 3 * $.SECOND, (function(_this) { + return function(URL) { + if (URL) { + return _this.src = URL; + } + }; + })(this)); } }; @@ -12569,7 +12578,7 @@ Settings.dialog = dialog = $.el('div', { id: 'fourchanx-settings', className: 'dialog', - innerHTML: '
' + innerHTML: '
' }); $.on($('.export', Settings.dialog), 'click', Settings["export"]); $.on($('.import', Settings.dialog), 'click', Settings["import"]); @@ -13411,7 +13420,7 @@ } if (previousversion) { el = $.el('span', { - innerHTML: '4chan X has been updated to version 1.8.8.' + innerHTML: '4chan X has been updated to version 1.8.8.1.' }); new Notice('info', el, 15); } else { diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index fd204d661..f9dfff425 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 fc67a021a..71585655c 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.8.8 +// @version 1.8.8.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 21f96529e..d7a89daf4 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.8.8 +// @version 1.8.8.1 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -24,7 +24,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.8.8 - 2014-07-27 +* 4chan X - Version 1.8.8.1 - 2014-07-28 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -378,7 +378,7 @@ doc = d.documentElement; g = { - VERSION: '1.8.8', + VERSION: '1.8.8.1', NAMESPACE: '4chan X.', boards: {} }; @@ -7816,7 +7816,7 @@ if (((_ref = file.error) != null ? _ref.code : void 0) === MediaError.MEDIA_ERR_DECODE) { return new Notice('error', 'Corrupt or unplayable video', 30); } - return ImageCommon.error(g.posts[file.dataset.post], null, function() { + return ImageCommon.error(file, g.posts[file.dataset.post], null, function(URL) { if (!URL) { return; } @@ -7993,8 +7993,11 @@ message.textContent = 'Error: Corrupt or unplayable video'; return true; }, - error: function(post, delay, cb) { + error: function(file, post, delay, cb) { var kill, timeoutID; + if ((post.isDead || post.file.isDead) && file.src.split('/')[2] === 'i.4cdn.org') { + ImageCommon.retry(post, cb); + } if (delay != null) { timeoutID = setTimeout(ImageCommon.retry, delay, post, cb); } @@ -8009,6 +8012,9 @@ return $.ajax("//a.4cdn.org/" + post.board + "/thread/" + post.thread + ".json", { onload: function() { var postObj, _i, _len, _ref; + if (this.status === 404) { + return kill(); + } if (this.status !== 200) { return; } @@ -8028,13 +8034,14 @@ }); }, retry: function(post, cb) { - var URL; + var URL, src; if (!(post.isDead || post.file.isDead)) { return cb(post.file.URL + '?' + Date.now()); } + src = post.file.URL.split('/'); URL = Redirect.to('file', { boardID: post.board.ID, - filename: post.file.URL + filename: src[src.length - 1] }); if (URL && (/^https:\/\//.test(URL) || location.protocol === 'http:')) { return cb(URL); @@ -8382,7 +8389,7 @@ return; } if (post.file.isExpanding || post.file.isExpanded) { - return ImageCommon.error(post, 10 * $.SECOND, function(URL) { + return ImageCommon.error(this, post, 10 * $.SECOND, function(URL) { if (post.file.isExpanding || post.file.isExpanded) { ImageExpand.contract(post); if (URL) { @@ -8506,11 +8513,13 @@ if (ImageCommon.decodeError(this, post)) { return; } - return ImageCommon.error(post, 3 * $.SECOND, function() { - if (URL) { - return this.src = URL; - } - }); + return ImageCommon.error(this, post, 3 * $.SECOND, (function(_this) { + return function(URL) { + if (URL) { + return _this.src = URL; + } + }; + })(this)); } }; @@ -12570,7 +12579,7 @@ Settings.dialog = dialog = $.el('div', { id: 'fourchanx-settings', className: 'dialog', - innerHTML: '
' + innerHTML: '
' }); $.on($('.export', Settings.dialog), 'click', Settings["export"]); $.on($('.import', Settings.dialog), 'click', Settings["import"]); @@ -13412,7 +13421,7 @@ } if (previousversion) { el = $.el('span', { - innerHTML: '4chan X has been updated to version 1.8.8.' + innerHTML: '4chan X has been updated to version 1.8.8.1.' }); new Notice('info', el, 15); } else { diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 395536c0d..b8807b75d 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 8847a0fa4..0c8109998 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 25e51913d..f14de1330 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/package.json b/package.json index deb8a1d44..c91cfd1b5 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "4chan-X", - "version": "1.8.8", + "version": "1.8.8.1", "description": "Cross-browser userscript for maximum lurking on 4chan.", "meta": { "name": "4chan X",