diff options
author | Minteck <minteck@phoenixnet.tech> | 2021-11-03 12:11:04 +0100 |
---|---|---|
committer | Minteck <minteck@phoenixnet.tech> | 2021-11-03 12:11:04 +0100 |
commit | 79f4b6c75e6dcdf10167f7e6e6c52db8f23bde83 (patch) | |
tree | 8553583a19ba2388f728c5bce541add45d5d7408 /server | |
parent | e35f78637bceb6bbc7085dd837cd1fb1b0166818 (diff) | |
download | rainbow-79f4b6c75e6dcdf10167f7e6e6c52db8f23bde83.tar.gz rainbow-79f4b6c75e6dcdf10167f7e6e6c52db8f23bde83.tar.bz2 rainbow-79f4b6c75e6dcdf10167f7e6e6c52db8f23bde83.zip |
Fix Gitea
Diffstat (limited to 'server')
-rw-r--r-- | server/gitea.js | 19 | ||||
-rw-r--r-- | server/gitea.old.js | 116 |
2 files changed, 129 insertions, 6 deletions
diff --git a/server/gitea.js b/server/gitea.js index 314fca8..983b291 100644 --- a/server/gitea.js +++ b/server/gitea.js @@ -3,16 +3,23 @@ global.serverRoot = __dirname + "/.."; global.fs = require('fs') log.info("Reading configuration...") global.config = require('../global/config.json') +global.mpws = require('./version'); log.verbose("Initializing Gitea projects refresh...") +function get(url) { + return { + stdout: require('child_process').execSync("curl -s -A \"Sattelite/" + mpws.version + "\" -X GET \"https://source.minteck.org/" + url + "\" -H \"accept: application/json\" -H \"authorization: Basic " + fs.readFileSync(serverRoot + "/auth.txt") + "\"") + }; +} + function giteaRefresh() { giteaDataTmp = []; repos = []; log.info("Refreshing Gitea cache...") - orgs_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/orgs', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + orgs_raw = JSON.parse(get("/api/v1/orgs").stdout.toString()); let orgs = []; for (let org of orgs_raw) { @@ -24,7 +31,7 @@ function giteaRefresh() { let orgs_mtk = []; for (let org of orgs) { log.verbose("Gathering members of '" + org + "'..."); - members_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/orgs/' + org + '/members', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + members_raw = JSON.parse(get("/api/v1/orgs/" + org + "/members").stdout.toString()); let members = []; for (let member of members_raw) { @@ -44,7 +51,7 @@ function giteaRefresh() { log.verbose("Minteck part of " + orgs_mtk.length + "/" + orgs.length + " orgs, exclusing themself"); log.verbose("Gathering personal projects"); - personal_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/users/minteck/repos', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + personal_raw = JSON.parse(get("/api/v1/users/minteck/repos").stdout.toString()); for (let repo of personal_raw) { repos.push(repo.full_name); @@ -53,7 +60,7 @@ function giteaRefresh() { for (let org of orgs_mtk) { log.verbose("Gathering projects from '" + org + "'"); - org_projects_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/users/' + org + '/repos', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + org_projects_raw = JSON.parse(get("/api/v1/users/" + org + "/repos").stdout.toString()); for (let repo of org_projects_raw) { repos.push(repo.full_name); @@ -66,7 +73,7 @@ function giteaRefresh() { thisRepo = {}; log.verbose("Gathering info about " + repo); - repo_data = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/repos/' + repo, '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + repo_data = JSON.parse(get('/api/v1/repos/' + repo).stdout.toString()); if (!thisRepo.empty && !thisRepo.private && !thisRepo.internal) { thisRepo.name = repo_data.full_name.trim() !== "" ? repo_data.full_name : null; @@ -75,7 +82,7 @@ function giteaRefresh() { thisRepo.website = repo_data.website.trim() !== "" ? repo_data.website : null; thisRepo.update = repo_data.updated_at.trim() !== "" ? repo_data.updated_at : null; - sattelite_data = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/repos/' + repo + '/contents/SatteliteGiteaData.txt', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + sattelite_data = JSON.parse(get("/api/v1/repos/" + repo + "/contents/SatteliteGiteaData.txt").stdout.toString()); if (!sattelite_data.documentation_url) { thisRepo.name = Buffer.from(sattelite_data.content, "base64").toString(); diff --git a/server/gitea.old.js b/server/gitea.old.js new file mode 100644 index 0000000..42ab251 --- /dev/null +++ b/server/gitea.old.js @@ -0,0 +1,116 @@ +global.log = require('./log') +global.serverRoot = __dirname + "/.."; +global.fs = require('fs') +log.info("Reading configuration...") +global.config = require('../global/config.json') + +log.verbose("Initializing Gitea projects refresh...") + +function get(url) { + if (require('os').platform() === "win32") { + return require('child_process').spawnSync("curl", ["-X", 'GET', url, '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]); + } else { + return { + stdout: require('child_process').execSync("curl -X GET \"" + url + "\" -H \"accept: application/json\" -H \"authorization: Basic " + fs.readFileSync(serverRoot + "/auth.txt") + "\"") + } + } +} + +function giteaRefresh() { + giteaDataTmp = []; + repos = []; + + log.info("Refreshing Gitea cache...") + + orgs_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/orgs', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + + let orgs = []; + for (let org of orgs_raw) { + orgs.push(org.username); + } + + log.verbose("Found " + orgs.length + " orgs"); + + let orgs_mtk = []; + for (let org of orgs) { + log.verbose("Gathering members of '" + org + "'..."); + members_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/orgs/' + org + '/members', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + + let members = []; + for (let member of members_raw) { + members.push(member.login); + } + + log.verbose("Has " + members.length + " members"); + + if (members.includes("minteck")) { + log.verbose("Includes Minteck, adding to list"); + orgs_mtk.push(org); + } else { + log.verbose("Doesn't include Minteck, not adding to list"); + } + } + + log.verbose("Minteck part of " + orgs_mtk.length + "/" + orgs.length + " orgs, exclusing themself"); + + log.verbose("Gathering personal projects"); + personal_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/users/minteck/repos', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + + for (let repo of personal_raw) { + repos.push(repo.full_name); + } + + for (let org of orgs_mtk) { + log.verbose("Gathering projects from '" + org + "'"); + + org_projects_raw = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/users/' + org + '/repos', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + + for (let repo of org_projects_raw) { + repos.push(repo.full_name); + } + } + + log.verbose("Found " + repos.length + " projects: " + repos.join(", ")); + + for (let repo of repos) { + thisRepo = {}; + + log.verbose("Gathering info about " + repo); + repo_data = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/repos/' + repo, '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + + if (!thisRepo.empty && !thisRepo.private && !thisRepo.internal) { + thisRepo.name = repo_data.full_name.trim() !== "" ? repo_data.full_name : null; + thisRepo.icon = repo_data.avatar_url.trim() !== "" ? repo_data.avatar_url : null; + thisRepo.size = repo_data.size; + thisRepo.website = repo_data.website.trim() !== "" ? repo_data.website : null; + thisRepo.update = repo_data.updated_at.trim() !== "" ? repo_data.updated_at : null; + + sattelite_data = JSON.parse(require('child_process').spawnSync("curl", ["-X", 'GET', 'https://source.minteck.org/api/v1/repos/' + repo + '/contents/SatteliteGiteaData.txt', '-H', 'accept: application/json', '-H', 'authorization: Basic ' + fs.readFileSync(serverRoot + "/auth.txt")]).stdout.toString()); + + if (!sattelite_data.documentation_url) { + thisRepo.name = Buffer.from(sattelite_data.content, "base64").toString(); + } + + giteaDataTmp.push(thisRepo); + } + } + + fs.writeFileSync("../global/gitea.json", JSON.stringify(giteaDataTmp, null, 4)); + log.info("Gitea cache successfully refreshed"); +} + +setInterval(() => { + try { + giteaRefresh() + } catch (e) { + log.error("Gitea projects refresh failed: " + e.message) + } +}, 3600000) + +setTimeout(() => { + try { + giteaRefresh() + } catch (e) { + log.error("Gitea projects refresh failed: " + e.message) + } +}, 1000)
\ No newline at end of file |