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