다모앙 임시 저장글 목록에 모두 삭제 버튼 추가 (tampermonkey)
알림
|
페이지 정보
작성일
2024.08.23 09:08
본문
tampermonkey 스크립트이므로 해당 확장이 필요합니다.
: https://chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo
기능 소개:
1. 임시 저장글 목록에 모두 삭제 버튼을 추가합니다. 끝.
소스코드는 댓글에..
- 게시물이 없습니다.
LiNE님의 댓글
// @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);
})();