洛谷专栏/剪贴板保存站跳转

在洛谷专栏/剪贴板页面添加保存站跳转按钮

// ==UserScript==
// @name         洛谷专栏/剪贴板保存站跳转
// @namespace    http://tampermonkey.net/
// @version      1.14514
// @description  在洛谷专栏/剪贴板页面添加保存站跳转按钮
// @author       Federico2903
// @match        https://www.luogu.com.cn/article/*
// @match        https://www.luogu.com/article/*
// @match        https://www.luogu.com.cn/paste/*
// @match        https://www.luogu.com/paste/*
// @icon         https://www.luogu.com.cn/favicon.ico
// @grant        GM_addStyle
// @license      GPL-3.0-or-later
// ==/UserScript==

(function() {
    'use strict';
    let loc = 0;
    const checkContainer = setInterval(() => {
        const metasContainer = document.querySelector('.meta .metas');
        if (metasContainer) {
            clearInterval(checkContainer);
            const articleId = window.location.pathname.split('/')[2];
            const mirrorContainer = document.createElement('div');
            mirrorContainer.setAttribute('data-v-076e399a', '');
            mirrorContainer.setAttribute('style', 'margin-left: 1.5em');
            mirrorContainer.innerHTML = `
                <div data-v-076e399a class="label">保存站</div>
                <a class="mirror-link"
                   href="https://www.luogu.me/article/${articleId}"
                   target="_blank"
                   style="color: var(--lfe-color--blue-3);
                          text-decoration: none;
                          cursor: pointer;
                          transition: color 0.2s;">
                    前往专栏保存站
                </a>
            `;
            const link = mirrorContainer.querySelector('.mirror-link');
            link.addEventListener('mouseover', () => {
                link.style.color = 'var(--lfe-color--blue-2)';
            });
            link.addEventListener('mouseout', () => {
                link.style.color = 'var(--lfe-color--blue-3)';
            });

            metasContainer.appendChild(mirrorContainer);
        }
    }, 100);
    let cnt = 0;
    const checkUrl = setInterval(() => {
        const cont = document.querySelector('#url');
        if (!cont) return;
        if (cnt++ == 1) clearInterval(checkUrl);
        cont.innerHTML = cont.innerHTML.replaceAll('.com', '.me');
        const articleId = window.location.pathname.split('/')[2];
        const link = document.querySelector('a[href^="https://www.luogu.com/article/"]');
        if(link) link.setAttribute('href', link.href.replaceAll('.com', '.me'));
        const link2 = document.querySelector('a[href^="https://www.luogu.com/paste/"]');
        if(link2) link2.setAttribute('href', link2.href.replaceAll('.com', '.me'));
    }, 100);
})();