혹시 클리앙 글 지우는 매크로도 사용조건이 있나요?

알림
|
X

페이지 정보

작성자 castle 172.♡.223.75
작성일 2024.04.01 12:57
296 조회
0 추천
쓰기

본문

FineAsh.exe 20230327 파일을 실행헀습니다. 

여러번 실행하면 한번정도 삭제를 시작하더군요.

며칠 계속 컴퓨터를 켜놓기 그래서 

3일째 되는날 컴퓨터 끄고 다시 실행할려고 지금 여러번 시도중인데요.


삭제 시작이 안되는군요.

혹시 사용조건이 있을려나요?

댓글 7 / 1 페이지

shOOny님의 댓글

작성자 shOOny (172.♡.210.85)
작성일 04.01 13:06
그게 삭제가 안 되는것 같아도 지워집니다. 실행은 하나만 하시면 되고요.
도중에 끊고 다시 실행하면 처음부터 읽어오는지 삭제가 재개되기까지 시간이 조금 걸립니다. 냅두면 지워지긴 하요.
근데 제는 댓글이 5만개가 넘었었는데, 3.5만개쯤 남은 상태부터는 아예 안 지워지더라고요.
문의드렸더니 댓글 페이지수가 세자리를 넘어가면 지워지지 않는 경우가 있다고...
일단은 내일까지 픽스 버전 올려주신다고 하셨었습니다. 저와 비슷한 경우라면 일단 새버전 올라오는거 기다려보세요.

castle님의 댓글의 댓글

대댓글 작성자 castle (172.♡.63.124)
작성일 04.01 13:08
@shOOny님에게 답글 감사합니다.
일단기다려 봐야겠군요.

아직 2만개 정도 남은거 같군요 ㅎㅎㅎ

크리안님의 댓글

작성자 크리안 (162.♡.138.33)
작성일 04.01 13:27
글 만 먼저 삭제하고
다음에 댓글 하나씩 해야 빨라요

잡일전문가님의 댓글

작성자 잡일전문가 (172.♡.122.203)
작성일 04.01 13:54
브라우저에서 그냥 하시는 방법도 좋습니다.
로그인 하신 뒤에 브라우저 콘솔에 아래 코드 붙여넣고 엔터 치시믄 브라우저 닫거나 다른 페이지로 이동하지 않는 이상 주욱 지워집니다. 빨라요.

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');

castle님의 댓글의 댓글

대댓글 작성자 castle (172.♡.222.183)
작성일 04.01 14:16
@잡일전문가님에게 답글 감사합니다.
시도해 보겠습니다.

배리앨런님의 댓글의 댓글

대댓글 작성자 no_profile 배리앨런 (203.♡.92.163)
작성일 04.15 11:34
@잡일전문가님에게 답글 감사합니다. 잘 됩니다

상남자지님의 댓글

작성자 no_profile 상남자지 (89.♡.161.180)
작성일 04.19 09:49
오호~ 저도 잘 됩니다. 이제 참으로 rest in peace ! 입니다.
쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색