Files
modstagram-next/scripts/apply-settings-icons.mjs
2026-07-08 21:01:18 +03:30

67 lines
2.3 KiB
JavaScript

import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const root = path.join(__dirname, "..");
const incoming = path.join(root, "public/images/icons/_incoming_settings");
const iconsDir = path.join(root, "public/images/icons");
function findSvg(folderKeyword, fileName) {
const dirs = fs.readdirSync(incoming, { withFileTypes: true });
const match = dirs.find((d) => d.isDirectory() && d.name.includes(folderKeyword));
if (!match) {
console.warn(`Folder not found for: ${folderKeyword}`);
return null;
}
const p = path.join(incoming, match.name, "vuesax", "bold", fileName);
return fs.existsSync(p) ? p : null;
}
function normalizeSvg(content, fill = "#292D32") {
return content
.replace(/#292D32/gi, fill)
.replace(/fill="#9A9A9A"/gi, `fill="${fill}"`)
.replace(/stroke="#9A9A9A"/gi, `stroke="${fill}"`);
}
function copyFrom(src, destName, fill) {
if (!src) return false;
const content = normalizeSvg(fs.readFileSync(src, "utf8"), fill);
fs.writeFileSync(path.join(iconsDir, destName), content, "utf8");
return true;
}
const jobs = [
["اشتراک", "share.svg", "share.svg"],
["seting", "setting.svg", "edit.svg"],
["درباره", "info-circle.svg", "contact.svg"],
["verify", "verify.svg", "verify.svg"],
["verify", "verify.svg", "verify2.svg"],
["verify", "verify.svg", "verify3.svg"],
["like", "heart.svg", "heart.svg"],
["like", "heart.svg", "red-heart.svg", "#EF4444"],
["درخواست", "document-normal.svg", "offer.svg"],
["عمکاری", "link-square.svg", "link-square.svg"],
["عمکاری", "link-square.svg", "celo-(celo).svg"],
["تاریک", "moon.svg", "moon.svg"],
["روشن", "sun.svg", "sun.svg"],
["احراز", "user-square.svg", "user-square.svg"],
["بیلبورد", "flash-circle.svg", "flash-circle.svg"],
["شبا", "user-tick.svg", "user-tick.svg"],
["تخصص", "instagram.svg", "instagram.svg"],
["کامنت", "message-text.svg", "message-text.svg"],
];
let n = 0;
for (const [folder, file, dest, fill] of jobs) {
const src = findSvg(folder, file);
if (copyFrom(src, dest, fill || "#292D32")) {
n++;
console.log(`OK ${dest}`);
}
}
fs.rmSync(incoming, { recursive: true, force: true });
console.log(`Applied ${n} icon files.`);