Release 4chan X v1.11.6.0.

This commit is contained in:
ccd0 2015-07-19 19:06:40 -07:00
parent 5c3417c6b7
commit 3118bcc55e
13 changed files with 97 additions and 51 deletions

View File

@ -2,6 +2,13 @@
Sometimes the changelog has notes (not comprehensive) acknowledging people's work. This does not mean the changes are their fault, only that their code was used. All changes to the script are chosen by and the fault of the maintainer (ccd0). Sometimes the changelog has notes (not comprehensive) acknowledging people's work. This does not mean the changes are their fault, only that their code was used. All changes to the script are chosen by and the fault of the maintainer (ccd0).
### v1.11.6
**v1.11.6.0** *(2015-07-19)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.6.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.6.0/builds/4chan-X-noupdate.crx "Chromium version")]
- Based on v1.11.5.2.
- Implement 404 Redirect for `sys.4chan.org/board/imgboard.php?res=` URLs.
- Index navigation bugfixes.
### v1.11.5 ### v1.11.5
**v1.11.5.2** *(2015-07-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.5.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.5.2/builds/4chan-X-noupdate.crx "Chromium version")] **v1.11.5.2** *(2015-07-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.5.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.5.2/builds/4chan-X-noupdate.crx "Chromium version")]

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.11.5.2 // @version 1.11.6.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.11.5.2 // @version 1.11.6.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -411,7 +411,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.5.2', VERSION: '1.11.6.0',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -3407,7 +3407,6 @@
var mode, page, ref, ref1, search, state; var mode, page, ref, ref1, search, state;
if (e != null ? e.state : void 0) { if (e != null ? e.state : void 0) {
ref = e.state, search = ref.search, mode = ref.mode; ref = e.state, search = ref.search, mode = ref.mode;
page = Index.getCurrentPage();
state = {}; state = {};
if (Index.search !== search) { if (Index.search !== search) {
state.search = Index.search = search; state.search = Index.search = search;
@ -3416,6 +3415,7 @@
state.mode = mode; state.mode = mode;
Index.saveMode(mode); Index.saveMode(mode);
} }
page = Index.getCurrentPage();
if (Index.currentPage !== page) { if (Index.currentPage !== page) {
state.page = Index.currentPage = page; state.page = Index.currentPage = page;
} }
@ -3974,6 +3974,7 @@
Index.pushState({ Index.pushState({
page: page page: page
}); });
Index.setPage();
} }
} }
nodes = Index.buildSinglePage(Index.getCurrentPage()); nodes = Index.buildSinglePage(Index.getCurrentPage());
@ -14362,9 +14363,14 @@
securityCheck: function(URL) { securityCheck: function(URL) {
return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption']; return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption'];
}, },
navigate: function(URL, alternative) { navigate: function(dest, data, alternative) {
if (URL && (Redirect.securityCheck(URL) || confirm("Redirect to " + URL + "?\n\nYour connection will not be encrypted."))) { var url;
return location.replace(URL); if (!Redirect.data) {
Redirect.init();
}
url = Redirect.to(dest, data);
if (url && (Redirect.securityCheck(url) || confirm("Redirect to " + url + "?\n\nYour connection will not be encrypted."))) {
return location.replace(url);
} else if (alternative) { } else if (alternative) {
return location.replace(alternative); return location.replace(alternative);
} }
@ -17065,7 +17071,7 @@
}); });
}, },
initFeatures: function() { initFeatures: function() {
var err, feature, k, len1, name, pathname, ref, ref1, ref2; var err, feature, k, len1, match, name, pathname, ref, ref1, ref2;
if ((ref = location.hostname) === 'boards.4chan.org' || ref === 'sys.4chan.org' || ref === 'www.4chan.org') { if ((ref = location.hostname) === 'boards.4chan.org' || ref === 'sys.4chan.org' || ref === 'www.4chan.org') {
$.globalEval('document.documentElement.classList.add("js-enabled");'); $.globalEval('document.documentElement.classList.add("js-enabled");');
} }
@ -17080,20 +17086,29 @@
if (g.VIEW === 'post') { if (g.VIEW === 'post') {
PostSuccessful.init(); PostSuccessful.init();
} }
if (Conf['404 Redirect'] && /\/imgboard\.php$/.test(location.pathname) && (match = location.search.match(/\bres=(\d+)/))) {
$.ready(function() {
var ref1;
if (((ref1 = $.id('errmsg')) != null ? ref1.textContent : void 0) === 'Error: Specified thread does not exist.') {
return Redirect.navigate('thread', {
boardID: g.BOARD.ID,
postID: +match[1]
});
}
});
}
return; return;
case 'i.4cdn.org': case 'i.4cdn.org':
$.asap((function() { $.asap((function() {
return d.readyState !== 'loading'; return d.readyState !== 'loading';
}), function() { }), function() {
var URL, pathname, ref1, video; var pathname, ref1, video;
if (Conf['404 Redirect'] && ((ref1 = d.title) === '4chan - Temporarily Offline' || ref1 === '4chan - 404 Not Found')) { if (Conf['404 Redirect'] && ((ref1 = d.title) === '4chan - Temporarily Offline' || ref1 === '4chan - 404 Not Found')) {
Redirect.init();
pathname = location.pathname.split('/'); pathname = location.pathname.split('/');
URL = Redirect.to('file', { return Redirect.navigate('file', {
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
filename: pathname[pathname.length - 1] filename: pathname[pathname.length - 1]
}); });
return Redirect.navigate(URL);
} else if (video = $('video')) { } else if (video = $('video')) {
if (Conf['Volume in New Tab']) { if (Conf['Volume in New Tab']) {
Volume.setup(video); Volume.setup(video);
@ -17196,14 +17211,12 @@
if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') { if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') {
if (g.VIEW === 'thread') { if (g.VIEW === 'thread') {
ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() { ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() {
var href;
if (Conf['404 Redirect']) { if (Conf['404 Redirect']) {
href = Redirect.to('thread', { return Redirect.navigate('thread', {
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
threadID: g.THREADID, threadID: g.THREADID,
postID: +location.hash.match(/\d+/) postID: +location.hash.match(/\d+/)
}); }, "/" + g.BOARD + "/");
return Redirect.navigate(href, "/" + g.BOARD + "/");
} }
}); });
} }

Binary file not shown.

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.5.2 // @version 1.11.6.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -410,7 +410,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.5.2', VERSION: '1.11.6.0',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -3406,7 +3406,6 @@
var mode, page, ref, ref1, search, state; var mode, page, ref, ref1, search, state;
if (e != null ? e.state : void 0) { if (e != null ? e.state : void 0) {
ref = e.state, search = ref.search, mode = ref.mode; ref = e.state, search = ref.search, mode = ref.mode;
page = Index.getCurrentPage();
state = {}; state = {};
if (Index.search !== search) { if (Index.search !== search) {
state.search = Index.search = search; state.search = Index.search = search;
@ -3415,6 +3414,7 @@
state.mode = mode; state.mode = mode;
Index.saveMode(mode); Index.saveMode(mode);
} }
page = Index.getCurrentPage();
if (Index.currentPage !== page) { if (Index.currentPage !== page) {
state.page = Index.currentPage = page; state.page = Index.currentPage = page;
} }
@ -3973,6 +3973,7 @@
Index.pushState({ Index.pushState({
page: page page: page
}); });
Index.setPage();
} }
} }
nodes = Index.buildSinglePage(Index.getCurrentPage()); nodes = Index.buildSinglePage(Index.getCurrentPage());
@ -14361,9 +14362,14 @@
securityCheck: function(URL) { securityCheck: function(URL) {
return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption']; return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption'];
}, },
navigate: function(URL, alternative) { navigate: function(dest, data, alternative) {
if (URL && (Redirect.securityCheck(URL) || confirm("Redirect to " + URL + "?\n\nYour connection will not be encrypted."))) { var url;
return location.replace(URL); if (!Redirect.data) {
Redirect.init();
}
url = Redirect.to(dest, data);
if (url && (Redirect.securityCheck(url) || confirm("Redirect to " + url + "?\n\nYour connection will not be encrypted."))) {
return location.replace(url);
} else if (alternative) { } else if (alternative) {
return location.replace(alternative); return location.replace(alternative);
} }
@ -17064,7 +17070,7 @@
}); });
}, },
initFeatures: function() { initFeatures: function() {
var err, feature, k, len1, name, pathname, ref, ref1, ref2; var err, feature, k, len1, match, name, pathname, ref, ref1, ref2;
if ((ref = location.hostname) === 'boards.4chan.org' || ref === 'sys.4chan.org' || ref === 'www.4chan.org') { if ((ref = location.hostname) === 'boards.4chan.org' || ref === 'sys.4chan.org' || ref === 'www.4chan.org') {
$.globalEval('document.documentElement.classList.add("js-enabled");'); $.globalEval('document.documentElement.classList.add("js-enabled");');
} }
@ -17079,20 +17085,29 @@
if (g.VIEW === 'post') { if (g.VIEW === 'post') {
PostSuccessful.init(); PostSuccessful.init();
} }
if (Conf['404 Redirect'] && /\/imgboard\.php$/.test(location.pathname) && (match = location.search.match(/\bres=(\d+)/))) {
$.ready(function() {
var ref1;
if (((ref1 = $.id('errmsg')) != null ? ref1.textContent : void 0) === 'Error: Specified thread does not exist.') {
return Redirect.navigate('thread', {
boardID: g.BOARD.ID,
postID: +match[1]
});
}
});
}
return; return;
case 'i.4cdn.org': case 'i.4cdn.org':
$.asap((function() { $.asap((function() {
return d.readyState !== 'loading'; return d.readyState !== 'loading';
}), function() { }), function() {
var URL, pathname, ref1, video; var pathname, ref1, video;
if (Conf['404 Redirect'] && ((ref1 = d.title) === '4chan - Temporarily Offline' || ref1 === '4chan - 404 Not Found')) { if (Conf['404 Redirect'] && ((ref1 = d.title) === '4chan - Temporarily Offline' || ref1 === '4chan - 404 Not Found')) {
Redirect.init();
pathname = location.pathname.split('/'); pathname = location.pathname.split('/');
URL = Redirect.to('file', { return Redirect.navigate('file', {
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
filename: pathname[pathname.length - 1] filename: pathname[pathname.length - 1]
}); });
return Redirect.navigate(URL);
} else if (video = $('video')) { } else if (video = $('video')) {
if (Conf['Volume in New Tab']) { if (Conf['Volume in New Tab']) {
Volume.setup(video); Volume.setup(video);
@ -17195,14 +17210,12 @@
if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') { if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') {
if (g.VIEW === 'thread') { if (g.VIEW === 'thread') {
ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() { ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() {
var href;
if (Conf['404 Redirect']) { if (Conf['404 Redirect']) {
href = Redirect.to('thread', { return Redirect.navigate('thread', {
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
threadID: g.THREADID, threadID: g.THREADID,
postID: +location.hash.match(/\d+/) postID: +location.hash.match(/\d+/)
}); }, "/" + g.BOARD + "/");
return Redirect.navigate(href, "/" + g.BOARD + "/");
} }
}); });
} }

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.5.2 // @version 1.11.6.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.5.2 // @version 1.11.6.0
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -411,7 +411,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.5.2', VERSION: '1.11.6.0',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -3407,7 +3407,6 @@
var mode, page, ref, ref1, search, state; var mode, page, ref, ref1, search, state;
if (e != null ? e.state : void 0) { if (e != null ? e.state : void 0) {
ref = e.state, search = ref.search, mode = ref.mode; ref = e.state, search = ref.search, mode = ref.mode;
page = Index.getCurrentPage();
state = {}; state = {};
if (Index.search !== search) { if (Index.search !== search) {
state.search = Index.search = search; state.search = Index.search = search;
@ -3416,6 +3415,7 @@
state.mode = mode; state.mode = mode;
Index.saveMode(mode); Index.saveMode(mode);
} }
page = Index.getCurrentPage();
if (Index.currentPage !== page) { if (Index.currentPage !== page) {
state.page = Index.currentPage = page; state.page = Index.currentPage = page;
} }
@ -3974,6 +3974,7 @@
Index.pushState({ Index.pushState({
page: page page: page
}); });
Index.setPage();
} }
} }
nodes = Index.buildSinglePage(Index.getCurrentPage()); nodes = Index.buildSinglePage(Index.getCurrentPage());
@ -14362,9 +14363,14 @@
securityCheck: function(URL) { securityCheck: function(URL) {
return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption']; return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption'];
}, },
navigate: function(URL, alternative) { navigate: function(dest, data, alternative) {
if (URL && (Redirect.securityCheck(URL) || confirm("Redirect to " + URL + "?\n\nYour connection will not be encrypted."))) { var url;
return location.replace(URL); if (!Redirect.data) {
Redirect.init();
}
url = Redirect.to(dest, data);
if (url && (Redirect.securityCheck(url) || confirm("Redirect to " + url + "?\n\nYour connection will not be encrypted."))) {
return location.replace(url);
} else if (alternative) { } else if (alternative) {
return location.replace(alternative); return location.replace(alternative);
} }
@ -17065,7 +17071,7 @@
}); });
}, },
initFeatures: function() { initFeatures: function() {
var err, feature, k, len1, name, pathname, ref, ref1, ref2; var err, feature, k, len1, match, name, pathname, ref, ref1, ref2;
if ((ref = location.hostname) === 'boards.4chan.org' || ref === 'sys.4chan.org' || ref === 'www.4chan.org') { if ((ref = location.hostname) === 'boards.4chan.org' || ref === 'sys.4chan.org' || ref === 'www.4chan.org') {
$.globalEval('document.documentElement.classList.add("js-enabled");'); $.globalEval('document.documentElement.classList.add("js-enabled");');
} }
@ -17080,20 +17086,29 @@
if (g.VIEW === 'post') { if (g.VIEW === 'post') {
PostSuccessful.init(); PostSuccessful.init();
} }
if (Conf['404 Redirect'] && /\/imgboard\.php$/.test(location.pathname) && (match = location.search.match(/\bres=(\d+)/))) {
$.ready(function() {
var ref1;
if (((ref1 = $.id('errmsg')) != null ? ref1.textContent : void 0) === 'Error: Specified thread does not exist.') {
return Redirect.navigate('thread', {
boardID: g.BOARD.ID,
postID: +match[1]
});
}
});
}
return; return;
case 'i.4cdn.org': case 'i.4cdn.org':
$.asap((function() { $.asap((function() {
return d.readyState !== 'loading'; return d.readyState !== 'loading';
}), function() { }), function() {
var URL, pathname, ref1, video; var pathname, ref1, video;
if (Conf['404 Redirect'] && ((ref1 = d.title) === '4chan - Temporarily Offline' || ref1 === '4chan - 404 Not Found')) { if (Conf['404 Redirect'] && ((ref1 = d.title) === '4chan - Temporarily Offline' || ref1 === '4chan - 404 Not Found')) {
Redirect.init();
pathname = location.pathname.split('/'); pathname = location.pathname.split('/');
URL = Redirect.to('file', { return Redirect.navigate('file', {
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
filename: pathname[pathname.length - 1] filename: pathname[pathname.length - 1]
}); });
return Redirect.navigate(URL);
} else if (video = $('video')) { } else if (video = $('video')) {
if (Conf['Volume in New Tab']) { if (Conf['Volume in New Tab']) {
Volume.setup(video); Volume.setup(video);
@ -17196,14 +17211,12 @@
if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') { if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') {
if (g.VIEW === 'thread') { if (g.VIEW === 'thread') {
ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() { ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() {
var href;
if (Conf['404 Redirect']) { if (Conf['404 Redirect']) {
href = Redirect.to('thread', { return Redirect.navigate('thread', {
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
threadID: g.THREADID, threadID: g.THREADID,
postID: +location.hash.match(/\d+/) postID: +location.hash.match(/\d+/)
}); }, "/" + g.BOARD + "/");
return Redirect.navigate(href, "/" + g.BOARD + "/");
} }
}); });
} }

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='lacclbnghgdicfifcamcmcnilckjamag'> <app appid='lacclbnghgdicfifcamcmcnilckjamag'>
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.11.5.2' /> <updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.11.6.0' />
</app> </app>
</gupdate> </gupdate>

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'> <gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='lacclbnghgdicfifcamcmcnilckjamag'> <app appid='lacclbnghgdicfifcamcmcnilckjamag'>
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.11.5.2' /> <updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.11.6.0' />
</app> </app>
</gupdate> </gupdate>

View File

@ -3,8 +3,8 @@
"description": "Cross-browser userscript for maximum lurking on 4chan.", "description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": { "meta": {
"name": "4chan X", "name": "4chan X",
"version": "1.11.5.2", "version": "1.11.6.0",
"date": "2015-07-15T21:17:03.431Z", "date": "2015-07-20T02:05:39.061Z",
"repo": "https://github.com/ccd0/4chan-x/", "repo": "https://github.com/ccd0/4chan-x/",
"page": "https://github.com/ccd0/4chan-x", "page": "https://github.com/ccd0/4chan-x",
"downloads": "https://ccd0.github.io/4chan-x/builds/", "downloads": "https://ccd0.github.io/4chan-x/builds/",