diff options
| author | hachem <im@hachem.wtf> | 2026-08-29 02:17:12 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-29 02:17:12 +0200 |
| commit | e56d21fa04450d118f76347a96a12d1d5477958f (patch) | |
| tree | 06d590ef64153e2ab92306a4a7cc63d6fef47286 /lib | |
| parent | 43d92fd60d75c4a1260757c75b1e1eefc0ea8952 (diff) | |
setup: prepare go workspace
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/config.js | 62 | ||||
| -rw-r--r-- | lib/modrinth.js | 69 |
2 files changed, 0 insertions, 131 deletions
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 -} - |
