// ==UserScript== // @name m.newsmth.net cross link // @description add cross links between mobile, www2 and nForum views // @include http://*.newsmth.net/* // @version 1.0 // @namespace https://greasyfork.org/users/5696 // @downloadURL none // ==/UserScript== function buildMobileArticleBoardLink(board, page) { page = (page !== null) ? "?p=" + page : ""; return '手机版'; } function buildWww2ArticleBoardLink(board) { return 'www2'; } function buildMobileArticleLink(board, tid) { return '手机版'; } function buildWww2ArticleLink(bid, tid) { return 'www2'; } function buildMobileThreadLink(board, gid, start, page) { if (start !== null) { return '手机版'; } page = (page !== null) ? "/?p=" + page : ""; return '手机版'; } function buildWww2ThreadLink(board, gid, start, page) { start = (start !== null) ? "&start=" + start : ""; page = (page !== null) ? "&pno=" + page : ""; return 'www2'; } function buildNforumThreadLink(board, tid, page) { page = (page !== null && !isNaN(page)) ? "?p=" + page : ""; return 'nForum'; } function buildMobileThreadBoardLink(board, page) { page = (page !== null) ? "/?p=" + page : ""; return '手机版'; } function buildWww2ThreadBoardLink(board) { return 'www2'; } function buildNforumThreadBoardLink(board, page) { page = (page !== null) ? "?p=" + page : ""; return 'nForum'; } function patchMobile() { document.getElementsByClassName("sec nav")[0].innerHTML += "||" + document.getElementsByClassName("menu nav")[0].innerHTML; } function patchMobileThreadBoard() { var match = /http:\/\/m\.newsmth\.net\/board\/(\w+)(\/?\?p=(\d+))?/.exec(document.URL); var board = match[1]; var page = match[3]; var nav = document.getElementsByClassName("nav sec")[0]; nav.innerHTML = nav.innerHTML + "||" + buildWww2ThreadBoardLink(board) + "||" + buildNforumThreadBoardLink(board, page); } function patchMobileThread() { var match = /http:\/\/m\.newsmth\.net\/article\/(\w+)\/(\d+)(\?p=(\d+))?/.exec(document.URL); var board = match[1]; var gid = match[2]; var page = match[4]; var articles = document.getElementsByClassName("nav hl"); var nav = document.getElementsByClassName("nav sec")[0]; for (var i = 0; i < articles.length; i++) { match = /\/article\/\w+\/post\/(\d+)/.exec(articles[i].childNodes[1].childNodes[0].href); var start = match[1]; if (i == 0) { nav.innerHTML = nav.innerHTML + "||" + buildWww2ThreadLink(board, gid, start, Math.ceil(parseInt(page, 0) / 2)) + "||" + buildNforumThreadLink(board, gid, page); } articles[i].childNodes[1].innerHTML += "|" + buildMobileArticleLink(board, start).replace("手机版", "单文"); } } function patchMobileArticle() { var match = /http:\/\/m\.newsmth\.net\/article\/(\w+)\/(\d+)\?s=(\d+)/.exec(document.getElementsByClassName("sec nav")[0].childNodes[2].href); var board = match[1]; var gid = match[2]; var start = match[3]; var nav = document.getElementsByClassName("nav sec")[0]; nav.innerHTML = nav.innerHTML + "||" + buildWww2ThreadLink(board, gid, start) + "||" + buildNforumThreadLink(board, gid); } function patchMobileArticleBoard() { var match = /http:\/\/m\.newsmth\.net\/board\/(\w+)\/0(\?p=(\d+))?/.exec(document.URL); var board = match[1]; var page = match[3]; var nav = document.getElementsByClassName("nav sec")[0]; nav.innerHTML = nav.innerHTML + "||" + buildWww2ArticleBoardLink(board) + "||" + buildNforumThreadBoardLink(board); } function patchWww2Thread() { var match = /http:\/\/www\.newsmth\.net\/bbstcon\.php\?board=(\w+)&gid=(\d+)(&start=\d+)?(&pno=(\d+))?/.exec(document.URL); var board = match[1]; var gid = match[2]; var page = match[5]; var nav = document.getElementsByClassName("tnav smaller")[0].childNodes[0]; nav.innerHTML = "[" + buildMobileThreadLink(board, gid, null, parseInt(page) * 2) + "][" + buildNforumThreadLink(board, gid, parseInt(page) * 2) + "]" + nav.innerHTML; } function patchWww2ThreadBoard() { var match = /http:\/\/www\.newsmth\.net\/bbsdoc\.php\?board=(\w+)/.exec(document.URL); var board = match[1]; var nav = document.getElementsByClassName("docTab smaller")[0]; nav.innerHTML += buildNforumThreadBoardLink(board) + buildMobileThreadBoardLink(board); } function patchWww2Article() { var nav = document.getElementsByClassName("oper smaller")[0]; var match = /bbstcon\.php\?board=(\w+)&gid=(\d+)/.exec(nav.childNodes[1].href); var board = match[1]; var gid = match[2]; match = /http:\/\/www\.newsmth\.net\/bbscon\.php\?bid=\d+&id=(\d+)/.exec(document.URL); var start = match[1]; nav.innerHTML = nav.innerHTML.replace("
", "
[" + buildMobileArticleLink(board, start) + "][" + buildNforumThreadLink(board, gid) + "]"); } function patchWww2ArticleBoard() { var match = /http:\/\/www\.newsmth\.net\/bbsdoc\.php\?board=(\w+)/.exec(document.URL); var board = match[1]; var nav = document.getElementsByClassName("docTab smaller")[0]; nav.innerHTML += buildNforumThreadBoardLink(board) + buildMobileArticleBoardLink(board); } function patchNforumThread() { var match = /http:\/\/www\.newsmth\.net\/nForum\/#!article\/(\w+)\/(\d+)(\?p=(\d+))?/.exec(document.URL); var board = match[1]; var gid = match[2]; var page = match[4]; var nav = document.getElementById("notice"); nav.innerHTML += "  【" + buildMobileThreadLink(board, gid, null, page).replace("href", 'onclick="javascript: window.location=this.href" href') + "】【" + buildWww2ThreadLink(board, gid, null, Math.ceil(parseInt(page, 0) / 2)).replace("href", 'onclick="javascript: window.location=this.href" href') + "】"; } function patchNforumThreadBoard() { var match = /http:\/\/www\.newsmth\.net\/nForum\/#!board\/(\w+)(\/?\?p=(\d+))?/.exec(document.URL); var board = match[1]; var page = match[3]; var nav = document.getElementById("notice"); nav.innerHTML += "  【" + buildMobileThreadBoardLink(board, page).replace("href", 'onclick="javascript: window.location=this.href" href') + "】【" + buildWww2ThreadBoardLink(board).replace("href", 'onclick="javascript: window.location=this.href" href') + "】"; } if (document.URL.match(/http:\/\/m\.newsmth\.net\/article\/\w+\/(\d+)/)) { patchMobileThread(); } else if (document.URL.match(/http:\/\/m\.newsmth\.net\/board\/\w+\/0(\?p=(\d+))?/)) { patchMobileArticleBoard(); } else if (document.URL.match(/http:\/\/m\.newsmth\.net\/board\/\w+(p=(\d+))?/)) { patchMobileThreadBoard(); } else if (document.URL.match(/http:\/\/m\.newsmth\.net\/article\/\w+\/single\/(\d+)/)) { patchMobileArticle(); } else if (document.URL.match(/http:\/\/www\.newsmth\.net\/bbstcon\.php\?board=(\w+)&gid=(\d+)/)) { patchWww2Thread(); } else if (document.URL.match(/http:\/\/www\.newsmth\.net\/bbsdoc\.php\?board=(\w+)&ftype=6/)) { patchWww2ThreadBoard(); } else if (document.URL.match(/http:\/\/www\.newsmth\.net\/bbsdoc\.php\?board=(\w+)/)) { patchWww2ArticleBoard(); } else if (document.URL.match(/http:\/\/www\.newsmth\.net\/bbscon\.php\?bid=\d+&id=(\d+)/)) { patchWww2Article(); } else if (document.URL.match(/http:\/\/www\.newsmth\.net\/nForum\/#!article\/(\w+)\/(\d+)/)) { patchNforumThread(); } else if (document.URL.match(/http:\/\/www\.newsmth\.net\/nForum\/#!board\/(\w+)/)) { patchNforumThreadBoard(); } if (document.URL.match(/http:\/\/m\.newsmth\.net/)) { patchMobile(); }