add some cool stats :3

main
aria 1 month ago
parent a75ce2d811
commit 96a323b464
Signed by: a
GPG Key ID: E851AE999FFCBC37

@ -1,2 +0,0 @@
# Fonts
- The main font used in this project is [Fredoka](https://fonts.google.com/specimen/Fredoka), licensed under the Open Font License.

@ -6,24 +6,10 @@ File host written in Node. Documentation is available [here](./docs/).
|Domain|Maintainer|Registrations open?|Upload limits|
|---|---|---|---|
|[files.gay](https://files.gay/)|[tacohitbox](https://tacohitbox.com)|No, [contact](https://tacohitbox.com/contact) for invite.|Anon: 50MB, Full user: 500MB|
|[files.gay](https://files.gay/)|[tacohitbox](https://tacohitbox.com)|No, [contact](https://tacohitbox.com/contact) for invite.|Anon: 500MB, Full user: 5GB|
Pull request to add your instance.
## roadmap
In order of priority.
- [ ] Locking/reporting/blocking accounts.
- [ ] Add bulk IP blocking.
- [ ] Add passworded files.
- [ ] Add deletion codes for anonymous uploads.
- [ ] Add optional transcoding for media.
- [ ] Changing passwords on accounts.
- [ ] Add dates to account regisration and what IP registerred the account.
- [ ] Attach admin ID and date/time to invite codes.
- [ ] Add comments to accounts and files.
- [ ] Auto-expiring files.
- [ ] Reorganize [`server.js`](./server.js) file, possibly as Express route files.
- [ ] Account bios & avatars.
- [ ] Webhooks for moderation.
Kinda obsolete, rewriting elsewhere (private for now).

88
package-lock.json generated

@ -12,6 +12,7 @@
"bcrypt": "^5.0.1",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"du": "^1.0.0",
"ejs": "^3.1.6",
"express": "^4.17.3",
"formidable": "^2.0.1",
@ -480,14 +481,25 @@
}
},
"node_modules/dezalgo": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
"integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"dependencies": {
"asap": "^2.0.0",
"wrappy": "1"
}
},
"node_modules/du": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/du/-/du-1.0.0.tgz",
"integrity": "sha512-w00+6XpIq924IvDLyOOx5HFO4KwH6YV6buqFx6og/ErTaJ34kVOyI+Q2f+X8pvZkDoEgT6xspA4iYSN99mqPDA==",
"dependencies": {
"map-async": "~0.1.1"
},
"bin": {
"dujs": "du.js"
}
},
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@ -635,23 +647,26 @@
}
},
"node_modules/formidable": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz",
"integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
"integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
"dependencies": {
"dezalgo": "1.0.3",
"hexoid": "1.0.0",
"once": "1.4.0",
"qs": "6.9.3"
"dezalgo": "^1.0.4",
"hexoid": "^1.0.0",
"once": "^1.4.0",
"qs": "^6.11.0"
},
"funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions"
}
},
"node_modules/formidable/node_modules/qs": {
"version": "6.9.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
"integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==",
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"dependencies": {
"side-channel": "^1.0.4"
},
"engines": {
"node": ">=0.6"
},
@ -973,6 +988,11 @@
"semver": "bin/semver.js"
}
},
"node_modules/map-async": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/map-async/-/map-async-0.1.1.tgz",
"integrity": "sha512-nim726/DRF1yuTrx3qNJcFNqJCgiFD98eh/49EdI5LWTspX4whkVvT0hOcMEVJWCijKkp519vCY1uD05Hklc6w=="
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -2056,14 +2076,22 @@
"integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w=="
},
"dezalgo": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
"integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
"integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
"requires": {
"asap": "^2.0.0",
"wrappy": "1"
}
},
"du": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/du/-/du-1.0.0.tgz",
"integrity": "sha512-w00+6XpIq924IvDLyOOx5HFO4KwH6YV6buqFx6og/ErTaJ34kVOyI+Q2f+X8pvZkDoEgT6xspA4iYSN99mqPDA==",
"requires": {
"map-async": "~0.1.1"
}
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@ -2188,20 +2216,23 @@
}
},
"formidable": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz",
"integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.1.tgz",
"integrity": "sha512-0EcS9wCFEzLvfiks7omJ+SiYJAiD+TzK4Pcw1UlUoGnhUxDcMKjt0P7x8wEb0u6OHu8Nb98WG3nxtlF5C7bvUQ==",
"requires": {
"dezalgo": "1.0.3",
"hexoid": "1.0.0",
"once": "1.4.0",
"qs": "6.9.3"
"dezalgo": "^1.0.4",
"hexoid": "^1.0.0",
"once": "^1.4.0",
"qs": "^6.11.0"
},
"dependencies": {
"qs": {
"version": "6.9.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
"integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw=="
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"requires": {
"side-channel": "^1.0.4"
}
}
}
},
@ -2432,6 +2463,11 @@
}
}
},
"map-async": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/map-async/-/map-async-0.1.1.tgz",
"integrity": "sha512-nim726/DRF1yuTrx3qNJcFNqJCgiFD98eh/49EdI5LWTspX4whkVvT0hOcMEVJWCijKkp519vCY1uD05Hklc6w=="
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",

@ -22,6 +22,7 @@
"bcrypt": "^5.0.1",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"du": "^1.0.0",
"ejs": "^3.1.6",
"express": "^4.17.3",
"formidable": "^2.0.1",

@ -8,6 +8,7 @@ const utils = require("./utils.js");
const zxcvbn = require("zxcvbn");
const bcrypt = require("bcrypt");
const du = require("du");
const formidable = require("formidable");
const {MongoClient} = require("mongodb");
@ -87,14 +88,17 @@ if (!fs.existsSync(config["media-folder"])) fs.mkdirSync(config["media-folder"])
start();
app.get("/", async function (req, res, next) {
let db = client.db("mediahost");
let acc;
if (req.cookies["session"]) {
let db = client.db("mediahost");
let accs = await db.collection("accounts");
acc = await accs.findOne({session: req.cookies["session"]});
}
let uploads = await (await (await db.collection("uploads").find({})).toArray()).length;
let size = utils.humanSize((await du(config["media-folder"])));
res.render("pages/home", {config: config, account: acc, message: utils.toMessage(req.query["from"])});
res.render("pages/home", {config: config, account: acc, message: utils.toMessage(req.query["from"]), fileCount: uploads, fileSize: size});
});
app.get("/register", async function (req, res, next) {

@ -22,6 +22,7 @@
</div>
<% } %>
<p class="nm"><a rel="noreferer" href="https://git.gay/a/media-host">Open sourced</a> media hoster, written in Node.</p>
<p>Home to <b><%= fileCount %></b> files, totalling <b><%= fileSize %></b> in size!</p>
</div>
<%- include("../partial/footer") %>
</body>

Loading…
Cancel
Save