배리앨런 (203.♡.92.163)
2024년 4월 19일 AM 08:14 · 수정됨(15:11)
클리앙 본인글 삭제하는 스크립트(콘솔탭 실행)
클리앙 본인글 삭제를 희망하시는 분들 중
아직 하지 않은 신 분들께
콘솔에서 실행하는 스크립트를 소개해 드립니다.
다모앙 아이디 "잡일전문가"님께서 댓글로 게시하신 내용인데
모르시는 분들이 많으신거 같아서 소개해 드립니다.
F12 콘솔탭에서 allow paste 를 먼저 하고 실행하시면 됩니다.
잡일전문가님(닉언일치 ㄷㄷㄷ)께 감사드립니다.
{emo:onion-072.gif:50}
출처 : https://damoang.net/qa/1513?sfl=wr_subject||wr_content&stx=콘솔 삭제&sop=and
하단 잡일전문가님 댓글 참조하세요
-------------------------------------------------------------------------------------------------------------------------
브라우저에서 그냥 하시는 방법도 좋습니다.
로그인 하신 뒤에 브라우저 콘솔에 아래 코드 붙여넣고 엔터 치시믄
브라우저 닫거나 다른 페이지로 이동하지 않는 이상 주욱 지워집니다. 빨라요.
async function getData(type, page) {
if (type === 'likeArticles' || type === 'likeComments') page = 0;
const html = await $.ajax(
`https://www.clien.net/service/mypage/myArticle?&type=${type}&po=${page}`
);
const parser = new DOMParser();
const doc = parser.parseFromString(html, 'text/html');
const pagination = doc.querySelector('.board-pagination');
const nextButton = pagination.querySelector('a.board-nav-next.ten');
const lastButton = Array.from(pagination.querySelectorAll('a.board-nav-page')).pop();
const lastPageNumber = lastButton.href.replace(/.*\D(\d+).*/, '$1');
const endpoints = Array.from(
doc.querySelectorAll(".list_myArticle a.list_subject")
)
.map((element) => {
if (element.getAttribute("href") === "#") {
return getEndpoint('deletedComments', element.getAttribute("onclick").match(/(?:')(.*?)(?:')(?:,)(.*?)(?:,)(.*?)(?:\))/))
} else {
return getEndpoint(type, element.href.match(/\/service\/board\/([^\/]+)\/(\d+)(?:\?[^#]+)?(?:#(\d+))?/))
}
}).filter(Boolean);
let next = !(!nextButton && page + 1 > lastPageNumber);
if (endpoints.length === 0 && (type === 'likeArticles' || type === 'likeComments')) {
next = false
}
return {
next: next,
title: getTitle(type),
endpoints: endpoints
};
}
function getEndpoint(type,[_,boardCd,boardSn,commentSn]) {
if (!boardCd || !boardSn) return;
if (type === 'articles') return `/board/${boardCd}/delete?boardSn=${boardSn}`
else if (type === 'comments') return `/board/${boardCd}/${boardSn}/comment/delete/${commentSn}`;
else if (type === 'deletedComments') return `/board/${boardCd}/${boardSn}/my/comment/delete/${commentSn}`;
else if (type === 'likeArticles') return `/board/like/${boardCd}/${boardSn}/delete`;
else if (type === 'likeComments') return `/comment/like/${boardCd}/${boardSn}/${commentSn}`;
}
function getTitle(type) {
if (type === 'articles') return '게시글'
else if (type === 'comments') return '코멘트'
else if (type === 'likeArticles') return '게시글 공감'
else if (type === 'likeComments') return `코멘트 공감`;
}
function sendRequest(title, endpoint) {
const url = `${API_HOST}${endpoint}`;
$.ajax({
url: url,
type: "POST",
success: function (result) {
console.log(title, "삭제 성공", url);
},
error: async function (request) {
var res = JSON.parse(request.responseText);
console.error(title, "삭제 실패", url);
console.error(res);
},
});
}
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function start(type, page = 1) {
console.log(`${type} ${page} 페이지 삭제 시작`);
const data = await getData(type, page -1);
for (let endpoint of data.endpoints) {
await delay(5500)
sendRequest(data.title,endpoint)
}
await delay(3000)
if (data.next) {
await start(type, ++page);
} else {
console.log(`${data.title} 삭제가 모두 완료 되었습니다.`);
}
}
await start('articles', 1);
await start('comments');
await start('likeArticles');
await start('likeComments');
댓글 (21)
-
후후니룰스
24.04.19 · 180.♡.69.216
와우 감사합니다!!! 드디어 탈퇴 할 수 있겠네요!! -
육육일사
24.04.19 · 49.♡.160.66
감사합니다 시도해 볼께요! -
유유죄
24.04.19 · 49.♡.128.193
역시 능력자는 많아요 ㅎㅎㅎ -
머머리에는뿔
24.04.19 · 106.♡.36.66
우와 콘솔 스크립트 매우 빠르네요? 감사합니다!! -
SSEAN
24.04.19 · 210.♡.247.160
이게 무슨 소린지 모르겠는 문과 출신.. ㅜㅜ -
엔엔뜨
→ SEAN
24.04.19 · 125.♡.47.14
그 브라우저에 사파리의 경우 ’요소 보기‘
크롬의 경우 개발자 도구 같은 개발자를 위한 모드가 다 있는데요. 거기에 콘솔이라는 탭이있어요.
거기에 본문에 있는 코드를 붙여넣기 하시면
창을 닫지 않는한 빠른 속도로 작업될거에요!
저도 문과 출신입니다 반가워용 ㅋㅋ
https://m.blog.naver.com/jsk6824/222109539509
요 링크 참고해보세요! -
SSEAN
→ 엔뜨
24.04.19 · 210.♡.247.160
역시 문과라고 다 같은 문과가 아니었어.. ㅜㅜ
감사합니다!!! -
엔엔뜨
→ SEAN
24.04.19 · 125.♡.47.14
allow pasting 을 먼저 넣고 본문 내용을 진행하는 이유는 붙여넣기 허용한다는 거라고 보시면 됩니당.!
그럼 소중한 시간 아끼세요! {emo:onion-002.gif:50} -
AASTERISK
24.04.19 · 221.♡.211.119
일단 와드 박습니다. -
사사이다s
24.04.19 · 121.♡.208.129
오 짱입니다.
댓글을 작성하려면 이 필요합니다.