// ==UserScript== // @name mt_文章解析 // @version 1.0 // @license MIT // @description 文章解析为添加到剪切板 // @author leeshuailing // @match https://mp.weixin.qq.com/* // @match https://mbd.baidu.com/* // @match https://baijiahao.baidu.com/s?id=* // @grant GM_setClipboard // @grant unsafeWindow // @namespace https://greasyfork.org/users/1194653 // @downloadURL none // ==/UserScript== (function () { 'use strict'; function timestampToTime(timestamp) { // 如果不是纯数字 就直接返回 if (isNaN(timestamp)) { return timestamp; } // 如果是10位数字 就乘以1000 if (timestamp.toString().length === 10) { timestamp = timestamp * 1000; } const date = new Date(timestamp); // 将秒数转换为毫秒数 const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1 const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0'); return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; } var result = { title: "", publistTime: "", link: "", authorName: "", authorId: "", content: "" }; var chinaseKeyMap = { result: "复制全部", title: "标题", publistTime: "发布时间", link: "链接", authorName: "作者", authorId: "作者ID", content: "内容" } function parseWechatArticle() { result.title = unsafeWindow.globalThis.msg_title; result.publistTime = unsafeWindow.globalThis.create_time; result.link = unsafeWindow.globalThis.msg_link; result.authorName = unsafeWindow.globalThis.nickname; result.authorId = unsafeWindow.globalThis.user_name; result.content = document.querySelector('#js_content').innerHTML; } function parseBaiduArticle() { result.title = unsafeWindow.jsonData.bsData.title; result.publistTime = unsafeWindow.jsonData.bsData.timestamp; result.link = unsafeWindow.jsonData.bsData.profitLog.contentUrl; // 星星谈娱乐呀 result.authorName = document.querySelector('span[data-testid="author-name"]').innerText; result.authorId = unsafeWindow.jsonData.bsData.profitLog.contentAccId; //
result.content = document.querySelector('div[data-testid="article"]').innerHTML; } // 获取url let url = unsafeWindow.location.href; if (url.indexOf('mp.weixin.qq.com') > -1) { parseWechatArticle(); } else if (url.indexOf('mbd.baidu.com') > -1) { // 如果unsafeWindow.jsonData有值 执行parseBaiduArticle函数 否则循环等待1秒 while (!unsafeWindow.jsonData) { setTimeout(function () { }, 1000); } parseBaiduArticle(); } function getRandomColor() { var color1 = Math.floor(Math.random() * 256); // 0-255 var color2 = Math.floor(Math.random() * 256); // 0-255 var color3 = Math.floor(Math.random() * 256); // 0-255 return 'rgb(' + color1 + ', ' + color2 + ', ' + color3 + ')'; } function createCopyButton(text, content) { var copyButton = document.createElement('button'); copyButton.innerText = text; copyButton.style.position = 'fixed'; copyButton.style.top = (50 + 60 * (document.querySelectorAll('button.copy-button').length)) + 'px'; copyButton.style.right = '0'; copyButton.style.transform = 'translateY(-50%)'; copyButton.style.zIndex = '9999'; copyButton.style.fontSize = '16px'; copyButton.style.padding = '10px'; copyButton.style.backgroundColor = getRandomColor(); copyButton.style.color = 'white'; copyButton.style.border = 'none'; copyButton.style.borderRadius = '10px'; // 添加圆角样式 copyButton.style.cursor = 'pointer'; copyButton.style.width = '100px'; copyButton.style.textAlign = 'center'; copyButton.classList.add('copy-button'); copyButton.addEventListener('click', function () { GM_setClipboard(content); }); document.body.appendChild(copyButton); } result.publistTime = timestampToTime(result.publistTime); // 在result第一个位置添加result属性 result.result = JSON.stringify(result); window.addEventListener('load', function () { setTimeout(function () { for (let key in chinaseKeyMap) { createCopyButton(chinaseKeyMap[key], result[key]); } }); }); })();