다모앙 임시 저장글 목록에 모두 삭제 버튼 추가 (tampermonkey)

알림
|
X

페이지 정보

작성자 LiNE 210.♡.102.188
작성일 2024.08.23 09:08
분류 다모앙
314 조회
2 댓글
2 추천
글쓰기

본문

tampermonkey 스크립트이므로 해당 확장이 필요합니다.

 : https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo


기능 소개:

1. 임시 저장글 목록에 모두 삭제 버튼을 추가합니다. 끝.



소스코드는 댓글에..


  • 게시물이 없습니다.
댓글 2 / 1 페이지

LiNE님의 댓글

작성자 LiNE (210.♡.102.188)
작성일 08.23 09:08
// ==UserScript==
// @name        다모앙 임시저장글 모두 삭제 버튼 추가
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  임시 저장글 목록에 "모두 삭제" 버튼을 추가합니다.
// @author      LiNE
// @match        https://damoang.net/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // "임시 저장글 목록" 옆에 "모두 삭제" 버튼 추가
    const addDeleteAllButton = () => {
        const closeButton = document.querySelector('.btn-close[data-bs-dismiss="offcanvas"]');
        if (closeButton && !document.getElementById('deleteAllBtn')) {
            const deleteAllBtn = document.createElement('button');
            deleteAllBtn.textContent = '모두 삭제';
            deleteAllBtn.id = 'deleteAllBtn';
            deleteAllBtn.classList.add('btn', 'btn-danger', 'btn-sm', 'nofocus');
            deleteAllBtn.style.marginLeft = '10px';

            deleteAllBtn.addEventListener('click', deleteAllAutosave);

            // "모두 삭제" 버튼을 X 버튼 왼쪽에 삽입
            closeButton.parentNode.insertBefore(deleteAllBtn, closeButton);
        }
    };

    // 모든 임시 저장글 삭제 함수
    const deleteAllAutosave = () => {
        const g5_bbs_url = window.g5_bbs_url || 'https://www.damoang.net/bbs';
        const autosaveListUrl = g5_bbs_url + '/ajax.autosavelist.php';

        // 임시 저장글 목록을 가져옴
        $.get(autosaveListUrl, function(data) {
            const items = $(data).find('item');
            if (items.length === 0) {
                alert('삭제할 임시 저장글이 없습니다.');
                return;
            }

            items.each(function(index) {
                const as_id = $(this).find('id').text();

                // 각 항목 삭제 요청
                $.get(g5_bbs_url + "/ajax.autosavedel.php", {"as_id": as_id}, function(data) {
                    if (data != -1) {
                        console.log(`삭제 완료: ${as_id}`);
                    } else {
                        alert('임시 저장된글을 삭제하는 중에 오류가 발생하였습니다.');
                    }

                    // 마지막 항목 삭제 후 새로고침
                    if (index === items.length - 1) {
                        setTimeout(() => {
                            location.reload();
                        }, 500);
                    }
                });
            });
        }, 'xml');
    };

    // 페이지 로드 후 "모두 삭제" 버튼 추가
    const init = () => {
        const observer = new MutationObserver(() => {
            if (document.querySelector('#autoSaveLabel')) {
                addDeleteAllButton();
                observer.disconnect();
            }
        });

        observer.observe(document.body, { childList: true, subtree: true });
    };

    window.addEventListener('load', init);
})();

컨텍스트님의 댓글

작성자 컨텍스트 (125.♡.41.31)
작성일 08.24 03:07
깃허브 코드스니펫으로 남기시는 것도~
글쓰기
전체 검색