您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
add cross links between mobile, www2 and nForum views
当前为
- // ==UserScript==
- // @name m.mysmth.net cross link
- // @description add cross links between mobile, www2 and nForum views
- // @include https://*.mysmth.net/*
- // @version 1.3.2
- // @namespace https://greasyfork.org/users/5696
- // @grant none
- // @require https://code.jquery.com/jquery-3.5.1.min.js
- // ==/UserScript==
- function buildWww2BoardSearch(board) {
- return '<a href="https://www.mysmth.net/bbsbfind.php?board=' + board + '">搜索</a>';
- }
- function buildMobileArticleLink(board, tid) {
- return '<a href="https://m.mysmth.net/article/' + board + '/single/' + tid + '/0">手机版</a>';
- }
- function buildWww2ArticleDeleteLink(bid, tid) {
- return '<a href="https://www.mysmth.net/bbsdel.php?bid=' + bid + '&id=' + tid + '">www2</a>';
- }
- function buildMobileThreadLink(board, gid, start, page) {
- if (start !== null) {
- return '<a href="https://m.mysmth.net/article/' + board + '/' + gid + '/?s=' + start + '">手机版</a>';
- }
- page = (page !== null) ? '/?p=' + page : '';
- return '<a href="https://m.mysmth.net/article/' + board + '/' + gid + page + '">手机版</a>';
- }
- function buildNforumThreadLink(board, tid, page) {
- page = (page !== null && !isNaN(page)) ? '?p=' + page : '';
- return '<a href="https://www.mysmth.net/nForum/#!article/' + board + '/' + tid + page + '">nForum</a>';
- }
- function buildMobileThreadBoardLink(board, page) {
- page = (page !== null) ? '/?p=' + page : '';
- return '<a href="https://m.mysmth.net/board/' + board + page + '">手机版</a>';
- }
- function buildNforumThreadBoardLink(board, page) {
- page = (page !== null) ? '?p=' + page : '';
- return '<a href="https://www.mysmth.net/nForum/#!board/' + board + page + '">nForum</a>';
- }
- function buildLoginForm(multiline) {
- $form = $('<form id="loginform" action="/user/login" method="post"></form>');
- $form.append('用户: <input id="userid" name="id" type="input" value="moudy">');
- $form.append((multiline)?'<br/>':' ');
- $form.append('密码: <input id="passwd" name="passwd" type="password">');
- $form.append((multiline)?'<br/>':' ');
- $form.append('<input id="TencentCaptcha" data-appid="2068091125" data-cbfn="captchaSuccess" type="button" value="刷新">');
- $form.append('<input name="ticket" id="ticket2" value="" type="hidden">');
- $form.append('<input name="randstr" id="randstr2" value="" type="hidden">');
- return $form;
- }
- function mobileLogin() {
- $("#TencentCaptcha").attr("value", "正在登陆");
- $.ajax({
- url: "https://m.mysmth.net/user/login",
- method: "POST",
- data: $('form').serialize(),
- complete: function() { window.location.href = window.location.href+(window.location.href.includes("?")?"&":"?") + "reload="+Date.parse(new Date()); },
- error: function(xhr, status, error) { console.log(status); alert(error); },
- success: function(doc, status, xhr) { $("#TencentCaptcha").attr("value", "登陆成功"); }
- });
- }
- function patchMobile() {
- if(!$("#TencentCaptcha").length) {
- var e = $(".sp.hl.f");
- if (e.length) {
- if ( e.text() == "您没有绑定手机号码,没有发表文章的权限"
- || e.text() == "您无权阅读此版面"
- ) {
- e.append(buildLoginForm(true));
- $("#TencentCaptcha").click(mobileLogin);
- return
- }
- }
- if(!$(".menu.nav").children("a[href*='logout']").length) {
- $(".menu.nav").prepend(buildLoginForm(false));
- }
- }
- e = document.getElementsByClassName('menu nav') [0];
- if (e.children.length == 9) {
- var str = '';
- if (e.children[4].innerHTML.length > 2)
- str += e.children[4].outerHTML + '|';
- if (e.children[5].innerHTML.length > 2)
- str += e.children[5].outerHTML + '|';
- if (e.children[6].innerHTML.length > 2)
- str += e.children[6].outerHTML;
- if (str.length > 0)
- document.getElementsByClassName('sec nav') [0].innerHTML += '||' + str;
- }
- $(".menu.sp").append(e.outerHTML);
- $("#TencentCaptcha").click(mobileLogin);
- $("form input[value='快速回复']").closest("div").remove();
- s = document.getElementsByTagName('script');
- for (var i = 1; i < s.length; i++) {
- s[i].parentNode.removeChild(s[i]);
- }
- var slist = document.getElementsByClassName('slist sec') [1];
- var linklist = {
- links: [],
- ptr: -1
- };
- var httpRequest = new XMLHttpRequest();
- httpRequest.responseType = 'document';
- httpRequest.onreadystatechange = function () {
- if (httpRequest.readyState === 4 && httpRequest.status === 200) {
- if(linklist.ptr < 0)
- {
- linklist.links = httpRequest.response.getElementsByClassName('nav sec') [0].children;
- linklist.ptr++;
- }
- else
- {
- var slist2 = httpRequest.response.getElementsByClassName('slist sec') [0];
- slist.parentNode.insertBefore(slist2, slist.nextSibling);
- slist = slist2;
- }
- if (linklist.ptr >= linklist.links.length)
- {
- return;
- }
- linklist.ptr++;
- var url = "https://m.mysmth.net" + linklist.links[linklist.ptr].getAttribute('href');
- httpRequest.open('GET', url, true);
- httpRequest.send();
- }
- };
- var url = "https://m.mysmth.net/hot";
- httpRequest.open('GET', url, true);
- httpRequest.send();
- }
- function patchMobileThreadBoard() {
- var match = /https?:\/\/m\.mysmth\.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 + '||' + buildNforumThreadBoardLink(board, page) + '||' + buildWww2BoardSearch(board);
- //list
- list = document.getElementsByClassName('list sec') [0].children;
- for (var i = 0; i < list.length; i++) {
- li = list[i];
- t = li.children[0];
- a = li.children[1];
- d = a.textContent.substring(0, 10);
- var ta1 = t.childNodes[0];
- var ta2 = document.createElement('a');
- var ta3 = a.children[0];
- var ta4 = a.children[1];
- var span = document.createElement('span');
- ta1.title = li.textContent;
- if(d.match(/^\d{4}-\d{2}-\d{2}$/) && Date.now()-Date.parse(d) > 7*24*60*60*1000) {
- ta1.text = "(坟)"+ta1.text;
- }
- ta2.text = t.childNodes[1].textContent;
- ta2.href = ta1.href + '?p=' + Math.floor(parseInt(/\((\d+)\)/.exec(t.childNodes[1].textContent) [1]) / 10 + 1);
- t.replaceChild(ta2, t.childNodes[1]);
- t.appendChild(span);
- span.appendChild(ta3);
- span.appendChild(ta4);
- $(span).css("font-size", "x-small");
- $(span).find("a").css("margin-left", "5px");
- li.removeChild(a);
- }
- }
- function patchMobileThread() {
- var match = /https?:\/\/m\.mysmth\.net\/article\/(\w+)\/(\d+)(\?p=(\d+))?/.exec(document.URL);
- var board = match[1];
- var gid = match[2];
- var page = match[4];
- var start = 0;
- $('.nav.hl').each(function() {
- $(this).find("a[href*='/forward/']").each(function() {
- match = /\/\w+\/forward\/(\d+)/.exec($(this).attr("href"));
- start = match[1];
- $(this).append('|' + buildMobileArticleLink(board, start).replace('手机版', '单文'))
- $(this).append('|' + buildWww2ArticleDeleteLink(board, start).replace('www2', '删除'))
- });
- });
- $(".nav.sec").first().append('||' + buildNforumThreadLink(board, gid, page) + '||' + buildWww2BoardSearch(board));
- }
- function patchMobileArticle() {
- var match = /https?:\/\/m\.mysmth\.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 + '||' + buildNforumThreadLink(board, gid) + '||' + buildWww2BoardSearch(board);
- }
- function patchMobileArticleBoard() {
- var match = /https?:\/\/m\.mysmth\.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 + '||' + buildNforumThreadBoardLink(board) + '||' + buildWww2BoardSearch(board);
- }
- function patchMobilePost() {
- var btns = document.getElementsByClassName('btn') [0].parentElement;
- var button = document.createElement('input');
- button.type = 'button';
- button.value = 'IMG';
- button.className = 'btn';
- button.onclick = function () {
- var textarea = document.getElementsByName('content') [0];
- var newvalue = textarea.value.substring(0, textarea.selectionStart);
- newvalue += '[img=';
- newvalue += textarea.value.substring(textarea.selectionStart, textarea.selectionEnd);
- newvalue += '][/img]'
- newvalue += textarea.value.substring(textarea.selectionEnd);
- textarea.value = newvalue;
- }
- }
- function patchWww2FindResult() {
- var match = /https?:\/\/www\.mysmth\.net\/bbsbfind\.php\?.*\bboard=(\w+)\b/.exec(document.URL);
- var board = match[1];
- var links = $("a[href*='bbscon']").each(function() {
- var id = /\bid=(\d+)/.exec($(this).attr("href"))[1]
- $(this).attr("href", "https://m.mysmth.net/article/"+board+"/single/"+id+"/0");
- });
- }
- function patchNforumThread() {
- var match = /https?:\/\/www\.mysmth\.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') + '】';
- }
- function patchNforumThreadBoard() {
- var match = /https?:\/\/www\.mysmth\.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') + '】';
- }
- if (document.URL.match(/^https?:\/\/m\.mysmth\.net\/\W?/)) {
- patchMobile();
- }
- if($(".menu.sp").text().includes("发生错误")) {
- // do nothing
- } else if (document.URL.match(/https?:\/\/wap\.mysmth\.net\/index/)) {
- window.location.href = "https://m.mysmth.net/index";
- } else if (document.URL.match(/https?:\/\/m\.mysmth\.net\/article\/\w+\/(\d+)/)) {
- patchMobileThread();
- } else if (document.URL.match(/https?:\/\/m\.mysmth\.net\/board\/\w+\/0(\?p=(\d+))?/)) {
- patchMobileArticleBoard();
- } else if (document.URL.match(/https?:\/\/m\.mysmth\.net\/board\/\w+(p=(\d+))?/)) {
- patchMobileThreadBoard();
- } else if (document.URL.match(/https?:\/\/m\.mysmth\.net\/article\/\w+\/single\/(\d+)/)) {
- patchMobileArticle();
- } else if (document.URL.match(/https?:\/\/m\.mysmth\.net\/article\/\w+\/post/)) {
- patchMobilePost();
- } else if (document.URL.match(/https?:\/\/m\.mysmth\.net\/article\/\w+\/edit/)) {
- patchMobilePost();
- } else if (document.URL.match(/https?:\/\/www\.mysmth\.net\/bbsbfind\.php\?.*\bboard=(\w+)\b/)) {
- patchWww2FindResult();
- } else if (document.URL.match(/https?:\/\/www\.mysmth\.net\/nForum\/#!article\/(\w+)\/(\d+)/)) {
- patchNforumThread();
- } else if (document.URL.match(/https?:\/\/www\.mysmth\.net\/nForum\/#!board\/(\w+)/)) {
- patchNforumThreadBoard();
- }