57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
import { v2 as cloudinary } from 'cloudinary';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const envPath = path.resolve(__dirname, '../.env.local');
|
|
const envContent = fs.readFileSync(envPath, 'utf8');
|
|
|
|
const env = {};
|
|
envContent.split('\n').forEach(line => {
|
|
const [key, ...valueParts] = line.split('=');
|
|
if (key && valueParts.length > 0) {
|
|
let value = valueParts.join('=').trim();
|
|
if (value.startsWith('"') && value.endsWith('"')) {
|
|
value = value.substring(1, value.length - 1);
|
|
}
|
|
env[key] = value;
|
|
}
|
|
});
|
|
|
|
cloudinary.config({
|
|
cloud_name: env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME,
|
|
api_key: env.CLOUDINARY_API_KEY,
|
|
api_secret: env.CLOUDINARY_API_SECRET
|
|
});
|
|
|
|
async function listAllImages() {
|
|
let allImages = [];
|
|
let nextCursor = null;
|
|
|
|
console.log('Fetching image list from Cloudinary...');
|
|
|
|
do {
|
|
const result = await cloudinary.api.resources({
|
|
type: 'upload',
|
|
prefix: 'aydogan/',
|
|
max_results: 500,
|
|
next_cursor: nextCursor
|
|
});
|
|
|
|
allImages = allImages.concat(result.resources.map(res => res.secure_url));
|
|
nextCursor = result.next_cursor;
|
|
} while (nextCursor);
|
|
|
|
console.log(`Found ${allImages.length} images.`);
|
|
|
|
// Format the output for data.ts
|
|
const formattedList = allImages.map(url => ` "${url}",`).join('\n');
|
|
const fileContent = `export const ALL_CLOUDINARY_IMAGES = [\n${formattedList}\n];`;
|
|
|
|
fs.writeFileSync(path.resolve(__dirname, '../lib/gallery_data.ts'), fileContent);
|
|
console.log('Gallery data saved to lib/gallery_data.ts');
|
|
}
|
|
|
|
listAllImages().catch(err => console.error(err));
|