umami/scripts/update-icons.js
2024-04-04 11:05:13 -04:00

40 lines
1.1 KiB
JavaScript

const fs = require('fs');
const { Readable } = require('stream');
const { finished } = require('stream/promises');
// missing mappings: android, beaker, blackberry, curl, facebook,
// ie, instagram, ios-webview, miui, searchbot, silk, unknown
const mappings = {
'android-webview': 'android-webview',
aol: 'archive/aol-explorer',
brave: 'brave',
chrome: 'chrome',
'chromium-webview': 'chromium',
crios: 'chrome',
'edge-chromium': 'edge',
'edge-ios': 'edge',
edge: 'archive/edge_12-18',
firefox: 'firefox',
fxios: 'firefox',
'opera-mini': 'opera-mini',
opera: 'opera',
safari: 'safari',
samsung: 'samsung-internet',
silk: 'silk',
yandexbrowser: 'yandex',
};
async function main() {
for (const [k, v] of Object.entries(mappings)) {
// eslint-disable-next-line no-console
console.log(k, v);
let res = await fetch(
`https://raw.githubusercontent.com/alrra/browser-logos/main/src/${v}/${v
.split('/')
.at(-1)}_48x48.png`,
);
const w = fs.createWriteStream(`./public/images/browsers/${k}.png`);
await finished(Readable.fromWeb(res.body).pipe(w));
}
}
main();