support tagging as lsposed module, move db files to /data

This commit is contained in:
Aidan 2024-12-22 18:43:28 -05:00
parent 45b9794ddb
commit ae9c6f9f76
No known key found for this signature in database
GPG Key ID: 1773A01F0EFE4FC1
5 changed files with 20 additions and 5 deletions

10
app.js
View File

@ -30,7 +30,7 @@ app.get('/', (req, res) => {
}); });
app.get('/apps', (req, res) => { app.get('/apps', (req, res) => {
fs.readFile('apps.json', (err, data) => { fs.readFile('data/apps.json', (err, data) => {
if (err) throw err; if (err) throw err;
const apps = JSON.parse(data); const apps = JSON.parse(data);
res.render('pages/apps', { title: 'Apps', apps: apps }); res.render('pages/apps', { title: 'Apps', apps: apps });
@ -38,7 +38,7 @@ app.get('/apps', (req, res) => {
}); });
app.get('/modules', (req, res) => { app.get('/modules', (req, res) => {
fs.readFile('modules.json', (err, data) => { fs.readFile('data/modules.json', (err, data) => {
if (err) throw err; if (err) throw err;
const modules = JSON.parse(data); const modules = JSON.parse(data);
res.render('pages/modules', { title: 'Modules | modules.', modules: modules }); res.render('pages/modules', { title: 'Modules | modules.', modules: modules });
@ -46,7 +46,7 @@ app.get('/modules', (req, res) => {
}); });
app.get('/modules/:id', (req, res) => { app.get('/modules/:id', (req, res) => {
fs.readFile('modules.json', (err, data) => { fs.readFile('data/modules.json', (err, data) => {
if (err) throw err; if (err) throw err;
const modules = JSON.parse(data); const modules = JSON.parse(data);
const module = modules.find(m => m.id === req.params.id); const module = modules.find(m => m.id === req.params.id);
@ -59,7 +59,7 @@ app.get('/modules/:id', (req, res) => {
}); });
app.get('/apps/:id', (req, res) => { app.get('/apps/:id', (req, res) => {
fs.readFile('apps.json', (err, data) => { fs.readFile('data/apps.json', (err, data) => {
if (err) throw err; if (err) throw err;
const apps = JSON.parse(data); const apps = JSON.parse(data);
const app = apps.find(m => m.id === req.params.id); const app = apps.find(m => m.id === req.params.id);
@ -76,7 +76,7 @@ app.get('/download', (req, res) => {
if (!validator.isAlphanumeric(name.replace(/\s/g, '')) || !validator.isAlphanumeric(type) || !validator.isAlphanumeric(version.replace(/\./g, '')) || !/^[a-zA-Z0-9-]+$/.test(arch)) { if (!validator.isAlphanumeric(name.replace(/\s/g, '')) || !validator.isAlphanumeric(type) || !validator.isAlphanumeric(version.replace(/\./g, '')) || !/^[a-zA-Z0-9-]+$/.test(arch)) {
return res.status(400).send('Invalid input, mister!'); return res.status(400).send('Invalid input, mister!');
} }
fs.readFile(`${type}s.json`, (err, data) => { fs.readFile(`data/${type}s.json`, (err, data) => {
if (err) throw err; if (err) throw err;
const items = JSON.parse(data); const items = JSON.parse(data);
const item = items.find(i => i.name === name); const item = items.find(i => i.name === name);

View File

@ -6,6 +6,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v19.16.39": { "v19.16.39": {
"all": "https://github.com/NoName-exe/revanced-extended/releases/download/126/youtube-revanced-extended-magisk-v19.16.39-all.zip" "all": "https://github.com/NoName-exe/revanced-extended/releases/download/126/youtube-revanced-extended-magisk-v19.16.39-all.zip"
@ -24,6 +25,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v7.16.53": { "v7.16.53": {
"arm-v7a": "https://github.com/NoName-exe/revanced-extended/releases/download/126/youtube-music-revanced-extended-magisk-v7.16.53-arm-v7a.zip", "arm-v7a": "https://github.com/NoName-exe/revanced-extended/releases/download/126/youtube-music-revanced-extended-magisk-v7.16.53-arm-v7a.zip",
@ -44,6 +46,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v1.2.0": { "v1.2.0": {
"all": "https://github.com/5ec1cff/TrickyStore/releases/download/1.2.0/Tricky-Store-v1.2.0-155-331f6fe-release.zip" "all": "https://github.com/5ec1cff/TrickyStore/releases/download/1.2.0/Tricky-Store-v1.2.0-155-331f6fe-release.zip"
@ -65,6 +68,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v1.2.0": { "v1.2.0": {
"all": "https://github.com/5ec1cff/TrickyStore/releases/download/1.2.0/Tricky-Store-v1.2.0-155-331f6fe-release.zip" "all": "https://github.com/5ec1cff/TrickyStore/releases/download/1.2.0/Tricky-Store-v1.2.0-155-331f6fe-release.zip"
@ -86,6 +90,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v18.1": { "v18.1": {
"all": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v18.1/PlayIntegrityFix_v18.1.zip" "all": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v18.1/PlayIntegrityFix_v18.1.zip"
@ -110,6 +115,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v1.5.6": { "v1.5.6": {
"all": "https://github.com/Magisk-Modules-Alt-Repo/StevenBlock/releases/download/v1.5.6/stevenblacklist.zip" "all": "https://github.com/Magisk-Modules-Alt-Repo/StevenBlock/releases/download/v1.5.6/stevenblacklist.zip"
@ -143,6 +149,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v1.2": { "v1.2": {
"all": "https://github.com/LSPosed/LSPosed.github.io/releases/download/shamiko-367/Shamiko-v1.2-367-release.zip" "all": "https://github.com/LSPosed/LSPosed.github.io/releases/download/shamiko-367/Shamiko-v1.2-367-release.zip"
@ -185,6 +192,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v1.18.0": { "v1.18.0": {
"all": "https://github.com/j-hc/zygisk-detach/releases/download/v1.18.0/zygisk-detach-v1.18.0.zip" "all": "https://github.com/j-hc/zygisk-detach/releases/download/v1.18.0/zygisk-detach-v1.18.0.zip"
@ -200,6 +208,7 @@
"price": "FREE", "price": "FREE",
"foss": true, "foss": true,
"selfHosted": false, "selfHosted": false,
"lsposed": false,
"downloadLinks": { "downloadLinks": {
"v1.0.2": { "v1.0.2": {
"all": "https://github.com/foobar66/dss/releases/download/v1.0.2/dss.zip" "all": "https://github.com/foobar66/dss/releases/download/v1.0.2/dss.zip"

View File

@ -83,6 +83,9 @@
<% if (module.selfHosted) { %> <% if (module.selfHosted) { %>
<span class="bg-green-500 text-white font-bold rounded-full px-3 py-1 ml-2">SelfHost</span> <span class="bg-green-500 text-white font-bold rounded-full px-3 py-1 ml-2">SelfHost</span>
<% } %> <% } %>
<% if (module.lsposed) { %>
<span class="bg-pink-400 text-white font-bold rounded-full px-3 py-1 ml-2">LSPosed</span>
<% } %>
</p> </p>
</a> </a>
<% }) %> <% }) %>

View File

@ -79,6 +79,9 @@
<% if (module.selfHosted) { %> <% if (module.selfHosted) { %>
<span class="bg-green-500 text-white font-bold rounded-full px-3 py-1 ml-2">SelfHost</span> <span class="bg-green-500 text-white font-bold rounded-full px-3 py-1 ml-2">SelfHost</span>
<% } %> <% } %>
<% if (module.lsposed) { %>
<span class="bg-pink-400 text-white font-bold rounded-full px-3 py-1 ml-2">LSPosed</span>
<% } %>
</p> </p>
<form id="download-form" action="/download" method="get" class="w-full"> <form id="download-form" action="/download" method="get" class="w-full">
<div class="relative inline-block text-left w-full"> <div class="relative inline-block text-left w-full">