Merge branch 'master' into index
This commit is contained in:
commit
2ba6e4f9c3
@ -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).
|
||||
|
||||
### 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.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")]
|
||||
|
||||
@ -20,8 +20,8 @@ Install [Greasemonkey](https://addons.mozilla.org/en-US/firefox/addon/greasemonk
|
||||
4chan X is available as a Chrome extension. The Chrome extension has the additional feature of being able to sync your settings and data with other devices via Chrome Sync.
|
||||
|
||||
- **Chromium**, **Chrome**, and **Vivaldi** users can **[install 4chan X from the Chrome store](https://chrome.google.com/webstore/detail/4chan-x/ohnjgmpcibpbafdlkimncjhflgedgpam)**.
|
||||
- **Chromium** users can alternately **[download 4chan X from Github](https://ccd0.github.io/4chan-x/builds/4chan-X.crx)**, then drag it to your `chrome://extensions` page. This will also work for Chrome dev/canary, and Chrome on platforms other than Windows.
|
||||
- **Opera** users can click to **[download 4chan X from Github](https://ccd0.github.io/4chan-x/builds/4chan-X.crx)**, then follow the prompts to activate it in your extension manager. Note: This version does not work with Opera 12; try [loadletter's fork](https://github.com/loadletter/4chan-x) instead.
|
||||
- You can alternately **[download 4chan X from Github](https://ccd0.github.io/4chan-x/builds/4chan-X.crx)**, then drag it to your `chrome://extensions` page. This will not work for the stable or beta versions of Chrome on Windows, which block extensions not from the Chrome store.
|
||||
|
||||
You can also use the [userscript version of 4chan X](https://ccd0.github.io/4chan-x/builds/4chan-X.user.js) with [Tampermonkey](https://tampermonkey.net/).
|
||||
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.5.2
|
||||
// @version 1.11.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.5.2
|
||||
// @version 1.11.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -411,7 +411,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.5.2',
|
||||
VERSION: '1.11.6.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -3407,7 +3407,6 @@
|
||||
var mode, page, ref, ref1, search, state;
|
||||
if (e != null ? e.state : void 0) {
|
||||
ref = e.state, search = ref.search, mode = ref.mode;
|
||||
page = Index.getCurrentPage();
|
||||
state = {};
|
||||
if (Index.search !== search) {
|
||||
state.search = Index.search = search;
|
||||
@ -3416,6 +3415,7 @@
|
||||
state.mode = mode;
|
||||
Index.saveMode(mode);
|
||||
}
|
||||
page = Index.getCurrentPage();
|
||||
if (Index.currentPage !== page) {
|
||||
state.page = Index.currentPage = page;
|
||||
}
|
||||
@ -3974,6 +3974,7 @@
|
||||
Index.pushState({
|
||||
page: page
|
||||
});
|
||||
Index.setPage();
|
||||
}
|
||||
}
|
||||
nodes = Index.buildSinglePage(Index.getCurrentPage());
|
||||
@ -14362,9 +14363,14 @@
|
||||
securityCheck: function(URL) {
|
||||
return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption'];
|
||||
},
|
||||
navigate: function(URL, alternative) {
|
||||
if (URL && (Redirect.securityCheck(URL) || confirm("Redirect to " + URL + "?\n\nYour connection will not be encrypted."))) {
|
||||
return location.replace(URL);
|
||||
navigate: function(dest, data, alternative) {
|
||||
var 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) {
|
||||
return location.replace(alternative);
|
||||
}
|
||||
@ -17065,7 +17071,7 @@
|
||||
});
|
||||
},
|
||||
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') {
|
||||
$.globalEval('document.documentElement.classList.add("js-enabled");');
|
||||
}
|
||||
@ -17080,20 +17086,29 @@
|
||||
if (g.VIEW === 'post') {
|
||||
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;
|
||||
case 'i.4cdn.org':
|
||||
$.asap((function() {
|
||||
return d.readyState !== 'loading';
|
||||
}), 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')) {
|
||||
Redirect.init();
|
||||
pathname = location.pathname.split('/');
|
||||
URL = Redirect.to('file', {
|
||||
return Redirect.navigate('file', {
|
||||
boardID: g.BOARD.ID,
|
||||
filename: pathname[pathname.length - 1]
|
||||
});
|
||||
return Redirect.navigate(URL);
|
||||
} else if (video = $('video')) {
|
||||
if (Conf['Volume in New Tab']) {
|
||||
Volume.setup(video);
|
||||
@ -17196,14 +17211,12 @@
|
||||
if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') {
|
||||
if (g.VIEW === 'thread') {
|
||||
ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() {
|
||||
var href;
|
||||
if (Conf['404 Redirect']) {
|
||||
href = Redirect.to('thread', {
|
||||
return Redirect.navigate('thread', {
|
||||
boardID: g.BOARD.ID,
|
||||
threadID: g.THREADID,
|
||||
postID: +location.hash.match(/\d+/)
|
||||
});
|
||||
return Redirect.navigate(href, "/" + g.BOARD + "/");
|
||||
}, "/" + g.BOARD + "/");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.5.2
|
||||
// @version 1.11.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -410,7 +410,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.5.2',
|
||||
VERSION: '1.11.6.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -3406,7 +3406,6 @@
|
||||
var mode, page, ref, ref1, search, state;
|
||||
if (e != null ? e.state : void 0) {
|
||||
ref = e.state, search = ref.search, mode = ref.mode;
|
||||
page = Index.getCurrentPage();
|
||||
state = {};
|
||||
if (Index.search !== search) {
|
||||
state.search = Index.search = search;
|
||||
@ -3415,6 +3414,7 @@
|
||||
state.mode = mode;
|
||||
Index.saveMode(mode);
|
||||
}
|
||||
page = Index.getCurrentPage();
|
||||
if (Index.currentPage !== page) {
|
||||
state.page = Index.currentPage = page;
|
||||
}
|
||||
@ -3973,6 +3973,7 @@
|
||||
Index.pushState({
|
||||
page: page
|
||||
});
|
||||
Index.setPage();
|
||||
}
|
||||
}
|
||||
nodes = Index.buildSinglePage(Index.getCurrentPage());
|
||||
@ -14361,9 +14362,14 @@
|
||||
securityCheck: function(URL) {
|
||||
return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption'];
|
||||
},
|
||||
navigate: function(URL, alternative) {
|
||||
if (URL && (Redirect.securityCheck(URL) || confirm("Redirect to " + URL + "?\n\nYour connection will not be encrypted."))) {
|
||||
return location.replace(URL);
|
||||
navigate: function(dest, data, alternative) {
|
||||
var 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) {
|
||||
return location.replace(alternative);
|
||||
}
|
||||
@ -17064,7 +17070,7 @@
|
||||
});
|
||||
},
|
||||
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') {
|
||||
$.globalEval('document.documentElement.classList.add("js-enabled");');
|
||||
}
|
||||
@ -17079,20 +17085,29 @@
|
||||
if (g.VIEW === 'post') {
|
||||
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;
|
||||
case 'i.4cdn.org':
|
||||
$.asap((function() {
|
||||
return d.readyState !== 'loading';
|
||||
}), 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')) {
|
||||
Redirect.init();
|
||||
pathname = location.pathname.split('/');
|
||||
URL = Redirect.to('file', {
|
||||
return Redirect.navigate('file', {
|
||||
boardID: g.BOARD.ID,
|
||||
filename: pathname[pathname.length - 1]
|
||||
});
|
||||
return Redirect.navigate(URL);
|
||||
} else if (video = $('video')) {
|
||||
if (Conf['Volume in New Tab']) {
|
||||
Volume.setup(video);
|
||||
@ -17195,14 +17210,12 @@
|
||||
if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') {
|
||||
if (g.VIEW === 'thread') {
|
||||
ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() {
|
||||
var href;
|
||||
if (Conf['404 Redirect']) {
|
||||
href = Redirect.to('thread', {
|
||||
return Redirect.navigate('thread', {
|
||||
boardID: g.BOARD.ID,
|
||||
threadID: g.THREADID,
|
||||
postID: +location.hash.match(/\d+/)
|
||||
});
|
||||
return Redirect.navigate(href, "/" + g.BOARD + "/");
|
||||
}, "/" + g.BOARD + "/");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.5.2
|
||||
// @version 1.11.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.5.2
|
||||
// @version 1.11.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -411,7 +411,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.5.2',
|
||||
VERSION: '1.11.6.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -3407,7 +3407,6 @@
|
||||
var mode, page, ref, ref1, search, state;
|
||||
if (e != null ? e.state : void 0) {
|
||||
ref = e.state, search = ref.search, mode = ref.mode;
|
||||
page = Index.getCurrentPage();
|
||||
state = {};
|
||||
if (Index.search !== search) {
|
||||
state.search = Index.search = search;
|
||||
@ -3416,6 +3415,7 @@
|
||||
state.mode = mode;
|
||||
Index.saveMode(mode);
|
||||
}
|
||||
page = Index.getCurrentPage();
|
||||
if (Index.currentPage !== page) {
|
||||
state.page = Index.currentPage = page;
|
||||
}
|
||||
@ -3974,6 +3974,7 @@
|
||||
Index.pushState({
|
||||
page: page
|
||||
});
|
||||
Index.setPage();
|
||||
}
|
||||
}
|
||||
nodes = Index.buildSinglePage(Index.getCurrentPage());
|
||||
@ -14362,9 +14363,14 @@
|
||||
securityCheck: function(URL) {
|
||||
return /^https:\/\//.test(URL) || location.protocol === 'http:' || Conf['Except Archives from Encryption'];
|
||||
},
|
||||
navigate: function(URL, alternative) {
|
||||
if (URL && (Redirect.securityCheck(URL) || confirm("Redirect to " + URL + "?\n\nYour connection will not be encrypted."))) {
|
||||
return location.replace(URL);
|
||||
navigate: function(dest, data, alternative) {
|
||||
var 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) {
|
||||
return location.replace(alternative);
|
||||
}
|
||||
@ -17065,7 +17071,7 @@
|
||||
});
|
||||
},
|
||||
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') {
|
||||
$.globalEval('document.documentElement.classList.add("js-enabled");');
|
||||
}
|
||||
@ -17080,20 +17086,29 @@
|
||||
if (g.VIEW === 'post') {
|
||||
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;
|
||||
case 'i.4cdn.org':
|
||||
$.asap((function() {
|
||||
return d.readyState !== 'loading';
|
||||
}), 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')) {
|
||||
Redirect.init();
|
||||
pathname = location.pathname.split('/');
|
||||
URL = Redirect.to('file', {
|
||||
return Redirect.navigate('file', {
|
||||
boardID: g.BOARD.ID,
|
||||
filename: pathname[pathname.length - 1]
|
||||
});
|
||||
return Redirect.navigate(URL);
|
||||
} else if (video = $('video')) {
|
||||
if (Conf['Volume in New Tab']) {
|
||||
Volume.setup(video);
|
||||
@ -17196,14 +17211,12 @@
|
||||
if ((ref = d.title) === '4chan - Temporarily Offline' || ref === '4chan - 404 Not Found') {
|
||||
if (g.VIEW === 'thread') {
|
||||
ThreadWatcher.set404(g.BOARD.ID, g.THREADID, function() {
|
||||
var href;
|
||||
if (Conf['404 Redirect']) {
|
||||
href = Redirect.to('thread', {
|
||||
return Redirect.navigate('thread', {
|
||||
boardID: g.BOARD.ID,
|
||||
threadID: g.THREADID,
|
||||
postID: +location.hash.match(/\d+/)
|
||||
});
|
||||
return Redirect.navigate(href, "/" + g.BOARD + "/");
|
||||
}, "/" + g.BOARD + "/");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<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>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<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>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -33,8 +33,8 @@ Previously developed by <a href="https://github.com/aeosynth/4chan-x">aeosynth</
|
||||
<p>4chan X is available as a Chrome extension. The Chrome extension has the additional feature of being able to sync your settings and data with other devices via Chrome Sync.</p>
|
||||
<ul>
|
||||
<li><strong>Chromium</strong>, <strong>Chrome</strong>, and <strong>Vivaldi</strong> users can <strong><a href="https://chrome.google.com/webstore/detail/4chan-x/ohnjgmpcibpbafdlkimncjhflgedgpam">install 4chan X from the Chrome store</a></strong>.</li>
|
||||
<li><strong>Chromium</strong> users can alternately <strong><a href="https://ccd0.github.io/4chan-x/builds/4chan-X.crx">download 4chan X from Github</a></strong>, then drag it to your <code>chrome://extensions</code> page. This will also work for Chrome dev/canary, and Chrome on platforms other than Windows.</li>
|
||||
<li><strong>Opera</strong> users can click to <strong><a href="https://ccd0.github.io/4chan-x/builds/4chan-X.crx">download 4chan X from Github</a></strong>, then follow the prompts to activate it in your extension manager. Note: This version does not work with Opera 12; try <a href="https://github.com/loadletter/4chan-x">loadletter's fork</a> instead.</li>
|
||||
<li>You can alternately <strong><a href="https://ccd0.github.io/4chan-x/builds/4chan-X.crx">download 4chan X from Github</a></strong>, then drag it to your <code>chrome://extensions</code> page. This will not work for the stable or beta versions of Chrome on Windows, which block extensions not from the Chrome store.</li>
|
||||
</ul>
|
||||
<p>You can also use the <a href="https://ccd0.github.io/4chan-x/builds/4chan-X.user.js">userscript version of 4chan X</a> with <a href="https://tampermonkey.net/">Tampermonkey</a>.</p>
|
||||
</div><input hidden type="checkbox" id="safari-hide"><div><label for="safari-hide"><h3 id="safari">Safari</h3></label>
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
"description": "Cross-browser userscript for maximum lurking on 4chan.",
|
||||
"meta": {
|
||||
"name": "4chan X",
|
||||
"version": "1.11.5.2",
|
||||
"date": "2015-07-15T21:17:03.431Z",
|
||||
"version": "1.11.6.0",
|
||||
"date": "2015-07-20T02:05:39.061Z",
|
||||
"repo": "https://github.com/ccd0/4chan-x/",
|
||||
"page": "https://github.com/ccd0/4chan-x",
|
||||
"downloads": "https://ccd0.github.io/4chan-x/builds/",
|
||||
|
||||
@ -75,7 +75,7 @@ Main =
|
||||
when 'sys.4chan.org'
|
||||
Report.init()
|
||||
PostSuccessful.init() if g.VIEW is 'post'
|
||||
if /\/imgboard\.php$/.test(location.pathname) and (match = location.search.match /\bres=(\d+)/)
|
||||
if Conf['404 Redirect'] and /\/imgboard\.php$/.test(location.pathname) and (match = location.search.match /\bres=(\d+)/)
|
||||
$.ready ->
|
||||
if $.id('errmsg')?.textContent is 'Error: Specified thread does not exist.'
|
||||
Redirect.navigate 'thread',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user