53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import { NaverRealEstate } from "./src/services/naver.service";
|
|
import { realtorIds } from "./config";
|
|
|
|
// 사용 예제
|
|
async function main() {
|
|
for (const realtorId of realtorIds) {
|
|
const naver = new NaverRealEstate({
|
|
realtorId: realtorId,
|
|
});
|
|
try {
|
|
// 2. DB에서 Seed 불러오기 시도
|
|
console.log("Seed 불러오는 중...");
|
|
let seed = await naver.fetchSeed();
|
|
|
|
console.log("Seed:", seed);
|
|
|
|
// await naver.resetActiveStatus();
|
|
|
|
// 3. 등록된 매물(Article) 목록 가져오기 (자동으로 DB에 저장됨)
|
|
console.log("\n매물 목록 가져오는 중...");
|
|
// const articles = await naver.getArticlesAndSave();
|
|
// console.log(`\n총 ${articles.length}개의 매물 발견`);
|
|
|
|
// 삭제된 매물 삭제
|
|
// await naver.deleteUnactiveArticles();
|
|
|
|
// 삭제되지 않은 매물 가져옴
|
|
let activeArticles = await naver.getActiveArticles(realtorId);
|
|
activeArticles = activeArticles.filter(
|
|
(article) => article.brokerName === null
|
|
);
|
|
|
|
console.log(`\n총 ${activeArticles.length}개의 매물 발견`);
|
|
|
|
let cookie = await naver.getApiCookie();
|
|
|
|
for (let i = 0; i < activeArticles.length; i += 30) {
|
|
const batch = activeArticles.slice(i, i + 30);
|
|
await Promise.all(
|
|
batch.map(async (article) => {
|
|
await naver.updateBrokerInfo(article.articleNumber, cookie);
|
|
})
|
|
);
|
|
}
|
|
} catch (error) {
|
|
console.error("오류 발생:", error);
|
|
}
|
|
}
|
|
}
|
|
|
|
// 실행
|
|
main();
|