Greasy Fork

Greasy Fork is available in English.

Bilibili清空消息记录

清空回复、艾特记录、消息或私信,不可恢复,慎用

当前为 2019-07-15 提交的版本,查看 最新版本

// ==UserScript==
// @name         Bilibili清空消息记录
// @description  清空回复、艾特记录、消息或私信,不可恢复,慎用
// @namespace    http://greasyfork.icu/users/197529
// @author       kkocdko
// @license      Unlicense
// @version      0.3.4
// @include      *://message.bilibili.com/*
// @noframes
// ==/UserScript==
'use strict';

let FloatButton = initFloatButton();

new FloatButton('清空回复', () => clickAllEl('.reply-item .bl-button--primary'));
new FloatButton('清空艾特记录', () => clickAllEl('.at-item .bl-button--primary'));
new FloatButton('清空我的消息', () => clickAllEl('.close-icon'));
new FloatButton('清空私信存档', () => clickAllEl('.popup-btn-ctnr>.bl-button--primary'));

function clickAllEl(selector, parentNode = document) {
    parentNode.querySelectorAll(selector).forEach(el => el.click());
}

function initFloatButton() {
    document.FloatButton = document.FloatButton || (() => {
        let buttonBarShadow = document.createElement('div').attachShadow({ mode: 'open' });
        buttonBarShadow.innerHTML = '<style>:host{position:fixed;top:3px;left:3px;z-index:9999999999;height:0}input{display:none}input~*{float:left;margin:3px;padding:1em;outline:0;border:0;border-radius:4px;background:#2196f3;box-shadow:0 1px 3px 0 #00000022;color:#fff;font-size:14px;line-height:0;transition:.3s}:active{background:#63b5f7;box-shadow:0 2px 5px 0 #00000033}label{border-radius:50%}input:checked~label{opacity:.3;transform:translateY(3em)}button:active{transition:0s}input:checked~button{visibility:hidden;opacity:0;transform:translateY(-3em)}</style><input id=hidebtns type=checkbox><label for=hidebtns></label>';
        document.body.appendChild(buttonBarShadow.host);
        return function(text, onclick) {
            let button = document.createElement('button');
            button.textContent = text;
            button.addEventListener('click', onclick);
            return buttonBarShadow.appendChild(button);
        };
    })();
    return document.FloatButton;
}