- cleanup per network folder for playworks converter
- loosen mraid checker file and folder scanning
This commit is contained in:
2026-05-27 19:08:15 +08:00
parent 78578cec16
commit 92de00b52e
6 changed files with 132 additions and 34 deletions

View File

@@ -94,6 +94,17 @@ export function openPlayworksConverter(_context: vscode.ExtensionContext) {
}
const ZIPPED_NETWORKS = new Set(['gg', 'vu', 'mtg']);
const NETWORK_OUTPUT_FOLDERS: Record<string, string> = {
al: 'Applovin',
is: 'Ironsource',
un: 'Unity',
fb: 'Facebook',
gg: 'GoogleAds',
mo: 'Moloco',
vu: 'Vungle',
mtg: 'Mintegral',
tt: 'TikTok',
};
function sourceBaseName(sourcePath: string): string {
return path.basename(sourcePath, path.extname(sourcePath))
@@ -105,10 +116,12 @@ async function convertNetwork(html: string, opts: ConvertOptions, network: strin
const needsZip = ZIPPED_NETWORKS.has(network);
const baseName = sourceBaseName(opts.sourcePath);
const htmlFileName = `${baseName}_${network}.html`;
const outputDir = path.join(opts.outputDir, NETWORK_OUTPUT_FOLDERS[network] ?? network);
fs.mkdirSync(outputDir, { recursive: true });
if (needsZip) {
const tmpPath = path.join(opts.outputDir, `_tmp_${Date.now()}_${network}.html`);
const zipPath = path.join(opts.outputDir, `${baseName}_${network}.zip`);
const tmpPath = path.join(outputDir, `_tmp_${Date.now()}_${network}.html`);
const zipPath = path.join(outputDir, `${baseName}_${network}.zip`);
fs.writeFileSync(tmpPath, transformed, 'utf8');
try {
await createZip(tmpPath, 'index.html', zipPath);
@@ -118,7 +131,7 @@ async function convertNetwork(html: string, opts: ConvertOptions, network: strin
return zipPath;
}
const outPath = path.join(opts.outputDir, htmlFileName);
const outPath = path.join(outputDir, htmlFileName);
fs.writeFileSync(outPath, transformed, 'utf8');
return outPath;
}
@@ -431,6 +444,11 @@ function getHtml(): string {
if (outputDir) vscode.postMessage({ type: 'openOutput', dir: outputDir });
});
function outputDisplayName(file) {
const parts = file.split(/[\\\\/]/).filter(Boolean);
return parts.slice(-2).join('/');
}
document.getElementById('convert').addEventListener('click', () => {
const networks = [...document.querySelectorAll('.net-cb')]
.filter(c => c.checked).map(c => c.dataset.tag);
@@ -484,7 +502,7 @@ function getHtml(): string {
const detail = document.createElement('span');
if (r.ok) {
detail.className = 'res-file';
detail.textContent = r.file.split(/[\\\\/]/).pop();
detail.textContent = outputDisplayName(r.file);
} else {
detail.className = 'res-err';
detail.textContent = r.error || 'Unknown error';