Files
sapiens-mobile/find_duplicates.cjs
jungwoo choi 919afe56f2 feat: SAPIENS Mobile App - Initial commit
React Native mobile application for SAPIENS news platform.
Consolidated all previous history into single commit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 14:30:25 +09:00

48 lines
1.6 KiB
JavaScript

const fs = require('fs');
// Read the articles data
const articles = JSON.parse(fs.readFileSync('articles_temp.json', 'utf8'));
// Count thumbnail usage
const thumbnailCounts = {};
const thumbnailToArticles = {};
articles.forEach(article => {
const thumbnail = article.thumbnail || '';
if (thumbnail) {
thumbnailCounts[thumbnail] = (thumbnailCounts[thumbnail] || 0) + 1;
if (!thumbnailToArticles[thumbnail]) {
thumbnailToArticles[thumbnail] = [];
}
thumbnailToArticles[thumbnail].push({
id: article.id,
title: article.title.length > 60 ? article.title.substring(0, 60) + '...' : article.title,
outletId: article.outletId
});
}
});
// Find duplicates
console.log("=== DUPLICATE THUMBNAILS ===");
let duplicatesFound = false;
Object.entries(thumbnailCounts)
.sort((a, b) => b[1] - a[1])
.forEach(([thumbnail, count]) => {
if (count > 1) {
duplicatesFound = true;
console.log(`\n${thumbnail} (used ${count} times):`);
thumbnailToArticles[thumbnail].forEach(article => {
console.log(` - ${article.outletId}: ${article.title} (ID: ${article.id})`);
});
}
});
if (!duplicatesFound) {
console.log("No duplicate thumbnails found!");
}
// Show some stats
console.log(`\n=== STATISTICS ===`);
console.log(`Total articles: ${articles.length}`);
console.log(`Unique thumbnails: ${Object.keys(thumbnailCounts).length}`);
console.log(`Articles with duplicates: ${Object.values(thumbnailCounts).reduce((sum, count) => sum + (count > 1 ? count : 0), 0)}`);