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

알림
|
X

페이지 정보

작성자 castle 172.♡.223.75
작성일 2024.04.01 12:57
290 조회
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 ! 입니다.
글쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색