xiaohongshu Collect

xiaohongshu collect shortcut

// ==UserScript==
// @name         xiaohongshu Collect
// @namespace    http://tampermonkey.net/
// @version      0.1.0
// @description  xiaohongshu collect shortcut
// @author       onionycs
// @match        https://www.xiaohongshu.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=xiaohongshu.com
// @require      http://code.jquery.com/jquery-3.x-git.min.js
// @grant        none
// @license      mit
// ==/UserScript==

(function () {
    "use strict";
    /* globals jQuery, $, waitForKeyElements */

    document.addEventListener("keydown", function (event) {
        const pElement = document.getElementById('content-textarea');
        const target = event.target;
        // 判断当前焦点元素是否是input元素
        if (target.tagName !== "INPUT" && target.tagName !== "TEXTAREA" && event.target!== pElement) {
            if (event.key === "a" || event.key === "A") {
                document.getElementsByClassName('feeds-container')[0].style.display = 'none';
                document.getElementsByClassName('information-wrapper')[0].click();
                setTimeout(function() {
                    document.getElementById('access-min-window').click();
                }, 500);
            }

            if (event.key === "s" || event.key === "S") {
                document.getElementsByClassName("collect-wrapper")[0].click();
                setTimeout(function () {
                    document.getElementsByClassName("right-area")[0].click();
                }, 500);
            }
            
            if (event.key === "t" || event.key === "T") {
                // 获取第一个具有 'feeds-container' 类名的元素
                const element = document.getElementsByClassName('feeds-container')[0];
                // 检查元素是否存在
                if (element) {
                    // 如果元素当前的 display 属性为 'none'
                    if (element.style.display === 'none') {
                        // 则将其设置为 'block'
                        element.style.display = 'block';
                    } else {
                        // 否则将其设置为 'none'
                        element.style.display = 'none';
                    }
                }
            }

            if (event.key === "z" || event.key === "Z") {
                // 获取 .btn-wrapper 的第一个元素中的 <use> 标签
                var useElement = document.getElementsByClassName('btn-wrapper')[0].querySelector('use');

                // 获取 <use> 标签的 xlink:href 属性值
                var xlinkHref = useElement.getAttribute('xlink:href');

                // 判断 xlink:href 的值并执行操作
                if (xlinkHref === '#imgNote') {
                    // 图文没有被选中且会包含短视频,执行点击操作
                    document.getElementsByClassName('btn-wrapper')[0].click();
                }
                showNotification("已经为您过滤短视频内容");
            }
        }
    });

    // 函数:在页面右上方显示提示信息
    function showNotification(message,topp) {
        // 创建通知元素
        const $notification = $("<div></div>")
        .text(message)
        .css({
            position: "fixed",
            top: topp,
            right: "20px",
            padding: "10px 20px",
            backgroundColor: "#f44336", // 红色背景
            color: "white",
            borderRadius: "5px",
            boxShadow: "0 2px 5px rgba(0, 0, 0, 0.3)",
            zIndex: 1000,
            fontSize: "14px",
            opacity: 0,
        });

        // 将通知元素添加到页面
        $("body").append($notification);

        // 动画显示通知
        $notification.animate({ opacity: 1 }, 500, function() {
            // 3秒后自动隐藏通知
            setTimeout(function() {
                $notification.animate({ opacity: 0 }, 500, function() {
                    $notification.remove();
                });
            }, 3000);
        });
    }
})();