From e56d21fa04450d118f76347a96a12d1d5477958f Mon Sep 17 00:00:00 2001 From: hachem Date: Sat, 29 Aug 2026 02:17:12 +0200 Subject: setup: prepare go workspace --- lib/config.js | 62 --------------------------------------------------- lib/modrinth.js | 69 --------------------------------------------------------- 2 files changed, 131 deletions(-) delete mode 100644 lib/config.js delete mode 100644 lib/modrinth.js (limited to 'lib') diff --git a/lib/config.js b/lib/config.js deleted file mode 100644 index 9d2ed39..0000000 --- a/lib/config.js +++ /dev/null @@ -1,62 +0,0 @@ -const path = require("path") -const fs = require("fs-extra") - -const configPath = path.join(__dirname, "../config/config.json") -const apiPath = path.join(__dirname, "../config/api.json") -const cachePath = path.join(__dirname, "../cache/mod_versions.json") - -const LoadConfig = () => -{ - return require(configPath) -} - -const LoadApi = () => -{ - try - { - return require(apiPath) - } - catch - { - return {} - } -} - -const LoadCache = async () => -{ - try - { - if (await fs.pathExists(cachePath)) - return JSON.parse(await fs.readFile(cachePath, "utf8")) - } - catch (err) - { - console.error("[Cache] Failed to load:", err) - } - return {} -} - -const SaveCache = async cache => -{ - try - { - await fs.ensureDir(path.dirname(cachePath)) - await fs.writeFile(cachePath, JSON.stringify(cache, null, 2)) - } - catch (err) - { - console.error("[Cache] Failed to save:", err) - } -} - -module.exports = -{ - configPath, - apiPath, - cachePath, - LoadConfig, - LoadApi, - LoadCache, - SaveCache -} - diff --git a/lib/modrinth.js b/lib/modrinth.js deleted file mode 100644 index cf0f697..0000000 --- a/lib/modrinth.js +++ /dev/null @@ -1,69 +0,0 @@ -const axios = require("axios") - -const MODRINTH_API = "https://api.modrinth.com/v2" - -const GetModVersions = async slug => -{ - try - { - const response = await axios.get(`${MODRINTH_API}/project/${slug}/version`) - return response.data - } - catch (err) - { - console.error(`[Modrinth] Failed for ${slug}:`, err.message) - return null - } -} - -const GetLatestVersion = versions => -{ - if (!versions || !versions.length) - return null - return versions.sort((a, b) => new Date(b.date_published) - new Date(a.date_published))[0] -} - -const GetCompatibleVersion = (versions, minecraftVersion, loader = null) => -{ - if (!versions || !versions.length) - return null - - const compatible = versions.filter(v => - { - const hasVersion = v.game_versions.includes(minecraftVersion) - const hasLoader = loader ? v.loaders.includes(loader) : true - return hasVersion && hasLoader - }) - - if (!compatible.length) - return null - - return compatible.sort((a, b) => new Date(b.date_published) - new Date(a.date_published))[0] -} - -const DownloadFile = async (url, destPath) => -{ - const fs = require("fs-extra") - - try - { - const response = await axios.get(url, { responseType: "arraybuffer" }) - await fs.writeFile(destPath, response.data) - return true - } - catch (err) - { - console.error(`[Download] Failed:`, err.message) - return false - } -} - -module.exports = -{ - MODRINTH_API, - GetModVersions, - GetLatestVersion, - GetCompatibleVersion, - DownloadFile -} - -- cgit v1.3