SlackMediaDeletion

Delete media from Slack to save some space.

// ==UserScript==
// @name         SlackMediaDeletion
// @namespace    https://*.slack.com/messages/*
// @version      1.2
// @description  Delete media from Slack to save some space.
// @author       Matthew Beaudin
// @match        https://*.slack.com/messages/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function initButton() {
        const deleteButtonHTML = "<button id='deleteButton' class='btn btn_danger' style='margin-left: 30px;'> Delete Media in Channel</button>";

        document.getElementsByClassName('channel_header_drag_region')[0].innerHTML = deleteButtonHTML;
        var deleteButton = document.getElementById("deleteButton");

        deleteButton.addEventListener("click", function(e) {
            deleteProcess();
        });
    }

    function sleep(ms) {
        return new Promise(resolve => setTimeout(resolve, ms));
    }

    async function deleteProcess() {
        var messageList = document.querySelectorAll(".c-message");

        for (var i = 0; i < messageList.length; i++) {
            // If message is a file
            if (messageList[i].querySelector("button.c-button-unstyled.c-file__action_button.c-file__action_button--icon") !== null) {
                // Click action button to open up context menu
                messageList[i].querySelector("button.c-button-unstyled.c-file__action_button.c-file__action_button--icon").click();
                await sleep(500);
                // Click delete action in context menu
                document.querySelector("button.c-button-unstyled.c-menu_item__button.c-menu_item__button--danger").click();
                await sleep(500);

                // Click delete confirmation button
                document.querySelector("button.btn.dialog_go.c-modal_footer__go--default.btn_danger").click();
            }
        }

        await sleep(1000);
        alert("All media has been deleted from this channel.");
    }

    setInterval(() => {
        if (document.getElementById("deleteButton") === null) {
            initButton();
        }
    }, 2500);
})();

QingJ © 2025

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