Created
December 31, 2021 00:07
-
-
Save ArcerionDev/3c0170ea3f8694461e8c0af7bfbcf7d7 to your computer and use it in GitHub Desktop.
scrape samples from vandalism packs to get them free
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const readline = require('readline').createInterface({ | |
input: process.stdin, | |
output: process.stdout | |
}) | |
const fs = require('fs') | |
const fetch = (...args) => import('node-fetch').then(({ default: fetch }) => fetch(...args)); | |
const JSDOM = require('jsdom').JSDOM | |
async function extract(pack) { | |
let url = `https://vandalism-sounds.com/${pack}.html` | |
const { document } = (new JSDOM(`...`)).window; | |
let site = document.createElement('html') | |
site.innerHTML = await (await (await fetch(url)).text()) | |
let items = Array.from(site.getElementsByClassName('waveform-item')) | |
let data = [] | |
items.forEach(i => { | |
function getmd(n) { | |
return i.children[0].children[n].children[0].innerHTML.replaceAll(' ', '').split('\n').filter(Boolean)[0] | |
} | |
data.push( | |
{ | |
url: i.children[0].children[0].dataset.link, | |
meta: { | |
name: getmd(0), | |
fileType: getmd(2).toLowerCase(), | |
key: getmd(3), | |
bpm: getmd(4), | |
genre: getmd(5), | |
} | |
} | |
) | |
}) | |
fs.mkdirSync(`./Vandalism/${pack}/`) | |
data.forEach(i => { | |
setTimeout(async function (){ | |
let name = `${i.meta.name}${(i.meta.bpm) ? `_${i.meta.bpm}bpm`: ''}${(i.meta.key.slice(0).replaceAll('-','')) ? `_${i.meta.key}`: ''}${(i.meta.genre.slice(0).replaceAll('-','')) ? `_${i.meta.genre}`: ''}${i.meta.fileType}` | |
const response = await fetch(i.url); | |
const buffer = await response.buffer(); | |
fs.writeFile(`./Vandalism/${pack}/${name}`, buffer, () => | |
console.log(`Saved ${i.meta.name} as ./Vandalism/${pack}/${name}`)); | |
},2500) | |
}) | |
} | |
readline.question(`Enter the pack name below:\n\n`, packname => { | |
extract(packname) | |
}) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment