diff options
-rw-r--r-- | .DS_Store | bin | 0 -> 6148 bytes | |||
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | .idea/.gitignore | 5 | ||||
-rw-r--r-- | .idea/Argon3PAD.iml | 12 | ||||
-rw-r--r-- | .idea/deployment.xml | 14 | ||||
-rw-r--r-- | .idea/jsLibraryMappings.xml | 6 | ||||
-rw-r--r-- | .idea/modules.xml | 8 | ||||
-rw-r--r-- | index.js | 50 | ||||
-rw-r--r-- | package-lock.json | 54 | ||||
-rw-r--r-- | package.json | 5 |
10 files changed, 156 insertions, 0 deletions
diff --git a/.DS_Store b/.DS_Store Binary files differnew file mode 100644 index 0000000..6d6132e --- /dev/null +++ b/.DS_Store diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1406277 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +output diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Argon3PAD.iml b/.idea/Argon3PAD.iml new file mode 100644 index 0000000..0c8867d --- /dev/null +++ b/.idea/Argon3PAD.iml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="WEB_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$"> + <excludeFolder url="file://$MODULE_DIR$/temp" /> + <excludeFolder url="file://$MODULE_DIR$/.tmp" /> + <excludeFolder url="file://$MODULE_DIR$/tmp" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module>
\ No newline at end of file diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..71b61ad --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="PublishConfigData" serverName="Minteck" remoteFilesAllowedToDisappearOnAutoupload="false"> + <serverData> + <paths name="Minteck"> + <serverdata> + <mappings> + <mapping deploy="/mnt/argon-cdn/3pad" local="$PROJECT_DIR$/output" web="/" /> + </mappings> + </serverdata> + </paths> + </serverData> + </component> +</project>
\ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 0000000..d23208f --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptLibraryMappings"> + <includedPredefinedLibrary name="Node.js Core" /> + </component> +</project>
\ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..583c11e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/Argon3PAD.iml" filepath="$PROJECT_DIR$/.idea/Argon3PAD.iml" /> + </modules> + </component> +</project>
\ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..d3206cf --- /dev/null +++ b/index.js @@ -0,0 +1,50 @@ +(async () => { + const fs = require('fs'); + const axios = require('axios'); + const child_process = require('child_process'); + + if (fs.existsSync("./output")) fs.rmSync("./output", { recursive: true }); + fs.mkdirSync("./output"); + + let output = {}; + let total = 0; + console.log("Fetching server..."); + const songs = (await axios.get("https://argon.minteck.org/api/get_list.php")).data.songs; + + console.log("Processing songs..."); + for (let id of Object.keys(songs)) { + if (!id.startsWith(":")) { + const song = songs[id]; + console.log(id + " (" + song.author + " - " + song.name + ")") + let o = { + _total: -1, + local: song._localViews, + youtube: null, + soundcloud: null + } + + if (song.external.youtube) { + let dl = JSON.parse(child_process.execFileSync("yt-dlp", ["-j", "https://youtu.be/" + song.external.youtube]).toString()); + console.log(" " + dl.view_count + " view(s) on YouTube"); + o.youtube = dl.view_count; + } else { + console.log(" Song is not on YouTube"); + } + + if (song.external.soundcloud) { + let dl = JSON.parse(child_process.execFileSync("yt-dlp", ["-j", "https://soundcloud.com/" + song.external.soundcloud]).toString()); + console.log(" " + dl.view_count + " view(s) on SoundCloud"); + o.soundcloud = dl.view_count; + } else { + console.log(" Song is not on SoundCloud"); + } + + o._total = o.local + o.youtube + o.soundcloud + total += o._total; + output[id] = o; + } + } + + fs.writeFileSync("./output/data.json", JSON.stringify(output, null, 2)); + fs.writeFileSync("./output/total.json", JSON.stringify(total, null, 2)); +})()
\ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..632bf70 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,54 @@ +{ + "name": "Argon3PAD", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "axios": "^0.26.0" + } + }, + "node_modules/axios": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz", + "integrity": "sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + } + }, + "dependencies": { + "axios": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.0.tgz", + "integrity": "sha512-lKoGLMYtHvFrPVt3r+RBMp9nh34N0M8zEfCWqdWZx6phynIEhQqAdydpyBAAG211zlhX9Rgu08cOamy6XjE5Og==", + "requires": { + "follow-redirects": "^1.14.8" + } + }, + "follow-redirects": { + "version": "1.14.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", + "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..fa7a0ea --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "axios": "^0.26.0" + } +} |