const BLOG_ID = 4962889; // 내 블로그 ID
async function fetchSubscribers() {
let page = 1;
let allSubscribers = new Set();
// 첫 요청에서 totalCount 가져오기
let firstResponse = await fetch(`https://www.tistory.com/legacy/subscription/blog/${BLOG_ID}/followers?page=${page}&sortType=recency`);
let firstData = await firstResponse.json();
if (!firstResponse.ok) {
console.error(`HTTP error! Status: ${firstResponse.status}`);
return new Set();
}
let totalCount = firstData.data.totalCount;
let pageSize = firstData.data.data.length;
let totalPages = Math.ceil(totalCount / pageSize);
// 모든 페이지 요청하여 구독자 리스트 수집
for (let i = 1; i <= totalPages; i++) {
let response = await fetch(`https://www.tistory.com/legacy/subscription/blog/${BLOG_ID}/followers?page=${i}&sortType=recency`);
let data = await response.json();
if (!response.ok) {
console.error(`HTTP error on page ${i}! Status: ${response.status}`);
continue;
}
data.data.data.forEach(sub => {
allSubscribers.add(sub.blogId);
});
}
return allSubscribers;
}
async function fetchMyFollowings() {
let response = await fetch("https://www.tistory.com/legacy/subscription/user/followings?isSummary=false");
let data = await response.json();
if (!response.ok) {
console.error(`HTTP error! Status: ${response.status}`);
return new Map();
}
let myFollowings = new Map();
data.data.forEach(following => {
myFollowings.set(following.id, { name: following.nickname, url: following.defaultUrl });
});
return myFollowings;
}
async function findNotFollowingMeBack() {
let mySubscribers = await fetchSubscribers();
let myFollowings = await fetchMyFollowings();
let notFollowingMeBack = [...myFollowings.entries()]
.filter(([followingId, _]) => !mySubscribers.has(followingId))
.map(([followingId, info]) => ({
id: followingId,
name: info.name,
url: info.url
}));
console.log("내가 구독 중이지만, 나를 구독하지 않은 블로그 목록:");
notFollowingMeBack.forEach(blog => {
console.log(`Name: ${blog.name}, BlogId: ${blog.id}, URL: ${blog.url}`);
});
}
// 실행
findNotFollowingMeBack();
이전에 올린 나를 구독 중인데 내가 구독하지 않은 리스트 추출하는 게 반응이 좋아 그 반대인 내가 구독 중인데 나를 구독하지 않은 리스트를 추출하는 소스코드를 가지고 왔습니다.
소스코드에 겁먹지 말고 한번 따라 해 보세요.
우선 티스토리 메인 화면에서 로그인 후 F12를 눌려 관리자 도구를 여세요.
요소 탭에서 컨트롤+F를 눌려 blogid라고 검색하여 본인 블로그 고유 아이디를 찾으세요.
숫자로 이루어진 본인의 블로그 아이디를 소스코드 최상단 변수에 입력하세요.
const BLOG_ID = 4962889; <<< 이 숫자를 본인 숫자로 변경
해당 변수 숫자를 본인 블로그 아이디로 바꿔준다.
콘솔 탭으로 이동해서 소스코드를 붙여 넣고 엔터를 치고 기다리면 '내가 구독 중이지만, 나를 구독하지 않은 블로그 목록: '이라는 문구가 표출되고 그 아래 닉네임, 블로그 아이디, 블로그 URL 리스트가 뜹니다. 하나도 없을 경우 아무것도 뜨지 않습니다.
구독이 많은 경우 시간이 오래 걸릴 수 있으니 5분 정도 기다려 보시고 잘 안되실 경우 댓글로 문의하시면 친절히 알려드립니다!
끝.
+ 추가된 내용 - 자주 하는 질문 리스트
1.
질문 : 콘솔 탭으로 이동해서 소스코드 붙여 넣으면,
"경고: 이해할 수 없거나 직접 검토하지 않은 코드를 DevTools 콘솔에 붙여 넣지 마세요. 공격자가 ID를 도용하거나 컴퓨터를 제어할 수 있습니다. 아래에 {PH1}을 입력하고 Enter 키를 눌러 붙여넣기를 허용하세요." 이렇게 떠요.
답변 : 콘솔 창에 "붙여넣기 허용"이라고 입력하시면 제한이 풀립니다.
↓ 아래는 그 반대의 경우 바로 가기 링크입니다.
2025.03.05 - [IT/IT 인터넷] - 티스토리 블로그에서 나를 구독 중이지만 내가 구독하지 않은 블로그 찾는 방법 (맞구독 작업 시 유용하게 사용하세요)
티스토리 블로그에서 나를 구독 중이지만 내가 구독하지 않은 블로그 찾는 방법 (맞구독 작업 시
const BLOG_ID = 4962889; // 내 블로그 IDasync function fetchSubscribers() { let page = 1; let allSubscribers = new Map(); // 첫 요청에서 totalCount 가져오기 let firstResponse = await fetch(`https://www.tistory.com/legacy/subscription/blog/${BL
codejjang.tistory.com
'IT > IT 인터넷' 카테고리의 다른 글
티스토리 블로그에서 나를 구독 중이지만 내가 구독하지 않은 블로그 찾는 방법 (맞구독 작업 시 유용하게 사용하세요) (38) | 2025.03.05 |
---|---|
[자바스크립트] 내가 뽑은 비트 연산자에 대한 활용 베스트 TOP 3와 정성 가득 설명글 (6) | 2025.02.25 |
[자바스크립트] JavaScript에서 var, let, const 차이 및 가이드 (8) | 2025.02.21 |
[자바스크립트] 키워드에 대한 완벽한 가이드 (2) | 2025.02.19 |
[자바스크립트] 디버깅 로그 개발자 도구에서 확인하기 (0) | 2025.02.19 |