mirror of
https://github.com/alexgo-io/DefiLlama-Adapters.git
synced 2026-01-12 16:53:02 +08:00
96 lines
2.8 KiB
JavaScript
96 lines
2.8 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// Function to convert Unix timestamp to 'YYYY-MM-DD' format
|
|
function convertTimestamp(unixTimestamp) {
|
|
const date = new Date(unixTimestamp * 1000);
|
|
const year = date.getFullYear();
|
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
const day = String(date.getDate()).padStart(2, '0');
|
|
return `${year}-${month}-${day}`;
|
|
}
|
|
|
|
// Function to process files in the given directory
|
|
function processFiles(dir) {
|
|
if (['node_modules', 'raindex', 'helper', 'exactly'].some(name => dir.includes(name))) {
|
|
return;
|
|
}
|
|
fs.readdir(dir, (err, files) => {
|
|
if (err) {
|
|
console.error(`Error reading directory ${dir}:`, err);
|
|
return;
|
|
}
|
|
|
|
files.forEach(file => {
|
|
const filePath = path.join(dir, file);
|
|
fs.stat(filePath, (err, stats) => {
|
|
if (err) {
|
|
console.error(`Error stating file ${filePath}:`, err);
|
|
return;
|
|
}
|
|
|
|
if (stats.isFile()) {
|
|
fs.readFile(filePath, 'utf8', (err, data) => {
|
|
if (err) {
|
|
console.error(`Error reading file ${filePath}:`, err);
|
|
return;
|
|
}
|
|
|
|
const regex = /start:\s*(\d+)/g;
|
|
const newData = data.replace(regex, (match, p1) => {
|
|
if (!/^\d{10}$/.test(p1)) {
|
|
console.error(`Invalid Unix timestamp ${p1} in file ${filePath}`);
|
|
return match;
|
|
}
|
|
|
|
const year = new Date(parseInt(p1, 10) * 1000).getFullYear();
|
|
if (year < 2005 || year > 2055) {
|
|
console.error(`Year ${year} out of range for timestamp ${p1} in file ${filePath}`);
|
|
return match;
|
|
}
|
|
const newTimestamp = convertTimestamp(parseInt(p1, 10));
|
|
return `start: '${newTimestamp}'`;
|
|
});
|
|
|
|
if (newData !== data) {
|
|
fs.writeFile(filePath, newData, 'utf8', err => {
|
|
if (err) {
|
|
console.error(`Error writing file ${filePath}:`, err);
|
|
} else {
|
|
console.log(`Updated file ${filePath}`);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} else if (stats.isDirectory()) {
|
|
processFiles(filePath);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
// Get the directory two levels up
|
|
const baseDir = path.resolve(__dirname, '../../projects');
|
|
|
|
// Process all directories two levels up
|
|
fs.readdir(baseDir, (err, dirs) => {
|
|
if (err) {
|
|
console.error(`Error reading base directory ${baseDir}:`, err);
|
|
return;
|
|
}
|
|
|
|
dirs.forEach(dir => {
|
|
const dirPath = path.join(baseDir, dir);
|
|
fs.stat(dirPath, (err, stats) => {
|
|
if (err) {
|
|
console.error(`Error stating directory ${dirPath}:`, err);
|
|
return;
|
|
}
|
|
|
|
if (stats.isDirectory()) {
|
|
processFiles(dirPath);
|
|
}
|
|
});
|
|
});
|
|
}); |