mt_文章解析

文章解析为添加到剪切板

目前为 2023-10-13 提交的版本。查看 最新版本

// ==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://gf.qytechs.cn/users/1194653
// ==/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;
        // <span data-testid="author-name" class="_2gGWi">星星谈娱乐呀</span>
        result.authorName = document.querySelector('span[data-testid="author-name"]').innerText;
        result.authorId = unsafeWindow.jsonData.bsData.profitLog.contentAccId;
        // <div class="_18p7x" data-testid="article">
        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]);
            }
        });
    });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址