mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2026-03-22 12:37:13 +11:00
waldawjadwfji
This commit is contained in:
parent
facc87b683
commit
b1cefcce86
6 changed files with 1634 additions and 439 deletions
153
index.js
153
index.js
|
|
@ -1,15 +1,16 @@
|
|||
const root = process.env.PWD;
|
||||
const express = require("express");
|
||||
const fastify = require("fastify")({
|
||||
logger: true,
|
||||
});
|
||||
const fastifyFlash = require("fastify-flash");
|
||||
|
||||
const path = require("path");
|
||||
const https = require("https");
|
||||
|
||||
const got = require("got");
|
||||
const bodyParser = require("body-parser");
|
||||
const expressValidator = require("express-validator");
|
||||
const flash = require("connect-flash");
|
||||
const session = require("express-session");
|
||||
const { ensureAuthenticated } = require(`${root}/config/auth.js`);
|
||||
const app = express();
|
||||
const MemoryStore = require("memorystore")(session);
|
||||
const url = require("url");
|
||||
const dotenv = require("dotenv");
|
||||
const fs = require("fs");
|
||||
|
|
@ -18,55 +19,29 @@ const { CCashClient } = require("ccash-client-js");
|
|||
dotenv.config({ path: ".env" });
|
||||
const { postUser } = require(`${root}/helpers/functions.js`);
|
||||
|
||||
app.set("views", path.join(__dirname, "views"));
|
||||
app.set("view engine", "pug");
|
||||
app.use(flash());
|
||||
app.use(require("connect-flash")());
|
||||
app.use(express.static(path.join(__dirname, "public")));
|
||||
app.use(express.json());
|
||||
app.use(
|
||||
bodyParser.urlencoded({
|
||||
extended: true,
|
||||
})
|
||||
);
|
||||
app.use(function (req, res, next) {
|
||||
res.locals.messages = require("express-messages")(req, res);
|
||||
next();
|
||||
fastify.register(require("fastify-static"), {
|
||||
root: path.join(__dirname, "public"),
|
||||
prefix: "/", // optional: default '/'
|
||||
});
|
||||
app.set("trust proxy", 1); // trust first proxy
|
||||
const secure = false;
|
||||
if (process.env.SECURE == true) {
|
||||
secure = true;
|
||||
}
|
||||
app.use(
|
||||
session({
|
||||
secret: "fuck shit cunt",
|
||||
resave: true,
|
||||
store: new MemoryStore({
|
||||
checkPeriod: 86400000, // prune expired entries every 24h
|
||||
}),
|
||||
saveUninitialized: true,
|
||||
cookie: { secure: secure, maxAge: 86400000 },
|
||||
})
|
||||
);
|
||||
app.use(
|
||||
expressValidator({
|
||||
errorFormatter: function (param, msg, value) {
|
||||
var namespace = param.split("."),
|
||||
root = namespace.shift(),
|
||||
formParam = root;
|
||||
|
||||
while (namespace.length) {
|
||||
formParam += "[" + namespace.shift() + "]";
|
||||
}
|
||||
return {
|
||||
param: formParam,
|
||||
msg: msg,
|
||||
value: value,
|
||||
};
|
||||
fastify.register(require("fastify-secure-session"), {
|
||||
// the name of the session cookie, defaults to 'session'
|
||||
cookieName: "fuckineedalongasscookieandthiswilldo",
|
||||
// adapt this to point to the directory where secret-key is located
|
||||
key: fs.readFileSync(path.join(__dirname, "secret-key")),
|
||||
cookie: {
|
||||
path: "/",
|
||||
// options for setCookie, see https://github.com/fastify/fastify-cookie
|
||||
},
|
||||
})
|
||||
);
|
||||
});
|
||||
fastify.register(require("point-of-view"), {
|
||||
engine: {
|
||||
pug: require("pug"),
|
||||
},
|
||||
defaultContext: {
|
||||
random: papy(),
|
||||
},
|
||||
root: path.join(__dirname, "views"),
|
||||
});
|
||||
|
||||
function papy() {
|
||||
const rndInt = Math.floor(Math.random() * 1337);
|
||||
|
|
@ -99,9 +74,9 @@ app.post("/setup", async function (req, res) {
|
|||
res.redirect("/");
|
||||
});
|
||||
|
||||
app.get("/", async function (req, res) {
|
||||
fastify.get("/", async function (req, reply) {
|
||||
if (process.env.SETUP == false || !process.env.SETUP) {
|
||||
res.render("setup");
|
||||
reply.view("setup");
|
||||
} else {
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
let checkalive;
|
||||
|
|
@ -119,16 +94,27 @@ app.get("/", async function (req, res) {
|
|||
console.log(err);
|
||||
}
|
||||
|
||||
res.render("index", {
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
reply.view("index", {
|
||||
user: req.session.get("user"),
|
||||
admin: req.session.get("admin"),
|
||||
alive: alive,
|
||||
url: process.env.BANKAPIURL,
|
||||
random: papy(),
|
||||
});
|
||||
}
|
||||
});
|
||||
app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
||||
fastify.get(
|
||||
"/BankF",
|
||||
{
|
||||
preValidation: function (req, res, done) {
|
||||
if (req.session.user != undefined) {
|
||||
return done();
|
||||
}
|
||||
req.session.errors = [];
|
||||
req.session.errors.push({ msg: "please login to view this resource" });
|
||||
reply.redirect("/login");
|
||||
},
|
||||
},
|
||||
async function (req, res) {
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
let successes = req.session.successes;
|
||||
let errors = req.session.errors;
|
||||
|
|
@ -141,6 +127,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|||
}
|
||||
let balance = 0;
|
||||
balance = await client.balance(req.session.user);
|
||||
console.log(balance);
|
||||
let logsent;
|
||||
console.log("start " + Date.now());
|
||||
try {
|
||||
|
|
@ -203,22 +190,21 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|||
}
|
||||
let maxgraph = balance + 1000;
|
||||
console.log("begin render " + Date.now());
|
||||
res.render("bankf", {
|
||||
res.view("bankf", {
|
||||
maxgraph: maxgraph,
|
||||
graphdata: graphdata,
|
||||
logrec: logrec,
|
||||
logsent: logsent,
|
||||
user: req.session.user,
|
||||
user: req.session.get("user"),
|
||||
balance: balance,
|
||||
user: req.session.user,
|
||||
admin: req.session.admin,
|
||||
admin: req.session.get("admin"),
|
||||
sucesses: successes,
|
||||
errors: errors,
|
||||
random: papy(),
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
app.post("/sendfunds", async function (req, res) {
|
||||
fastify.post("/sendfunds", async function (req, res) {
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
let { amount, name, senderpass } = req.body;
|
||||
req.session.errors = [];
|
||||
|
|
@ -240,7 +226,7 @@ app.post("/sendfunds", async function (req, res) {
|
|||
}
|
||||
});
|
||||
|
||||
app.post("/register", async function (req, res) {
|
||||
fastify.post("/register", async function (req, res) {
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
var { name, password, password2 } = req.body;
|
||||
req.session.errors = [];
|
||||
|
|
@ -269,12 +255,12 @@ app.post("/register", async function (req, res) {
|
|||
}
|
||||
});
|
||||
|
||||
app.post("/login", async function (req, res) {
|
||||
fastify.post("/login", async function (req, res) {
|
||||
const client = new CCashClient(process.env.BANKAPIURL);
|
||||
if (req.session.user) {
|
||||
res.redirect("/");
|
||||
}
|
||||
req.session.regenerate(function (err) {});
|
||||
req.session.destroySession(function (err) {});
|
||||
const { name, password } = req.body;
|
||||
let adminTest;
|
||||
try {
|
||||
|
|
@ -306,24 +292,24 @@ app.post("/login", async function (req, res) {
|
|||
});
|
||||
|
||||
let admin = require("./routes/admin");
|
||||
app.use("/admin", admin);
|
||||
fastify.all("/admin", admin);
|
||||
|
||||
let settings = require("./routes/settings");
|
||||
app.use("/settings", settings);
|
||||
fastify.all("/settings", settings);
|
||||
|
||||
app.get("/logout", function (req, res) {
|
||||
req.session.regenerate(function (err) {
|
||||
res.render("login", {
|
||||
fastify.get("/logout", function (req, res) {
|
||||
req.destroySession(function (err) {
|
||||
res.view("login", {
|
||||
random: papy(),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
app.get("/login", function (req, res) {
|
||||
fastify.get("/login", function (req, res) {
|
||||
let successes = req.session.successes;
|
||||
let errors = req.session.errors;
|
||||
req.session.regenerate(function (err) {
|
||||
res.render("login", {
|
||||
req.session.destroySession(function (err) {
|
||||
res.view("login", {
|
||||
successes: successes,
|
||||
errors: errors,
|
||||
user: req.session.user,
|
||||
|
|
@ -332,12 +318,12 @@ app.get("/login", function (req, res) {
|
|||
});
|
||||
});
|
||||
|
||||
app.get("/register", function (req, res) {
|
||||
fastify.get("/register", function (req, res) {
|
||||
let successes = req.session.successes;
|
||||
req.session.successes = [];
|
||||
let errors = req.session.errors;
|
||||
req.session.errors = [];
|
||||
res.render("register", {
|
||||
res.view("register", {
|
||||
errors: errors,
|
||||
successes: successes,
|
||||
user: req.session.user,
|
||||
|
|
@ -348,6 +334,11 @@ app.get("/register", function (req, res) {
|
|||
process.on("SIGINT", function () {
|
||||
process.exit();
|
||||
});
|
||||
app.listen(process.env.PORT || 3000, function () {
|
||||
console.log("Server started on port 3000...");
|
||||
|
||||
fastify.listen(process.env.PORT || 3000, function (err, address) {
|
||||
if (err) {
|
||||
fastify.log.error(err);
|
||||
process.exit(1);
|
||||
}
|
||||
fastify.log.info(`server listening on ${address}`);
|
||||
});
|
||||
|
|
|
|||
1745
package-lock.json
generated
1745
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,17 +1,24 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"ccash-client-js": "^1.6.3",
|
||||
"ccash-client-js": "^1.8.1",
|
||||
"connect-flash": "^0.1.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
"express-messages": "^1.0.1",
|
||||
"express-session": "^1.17.1",
|
||||
"express-validator": "5.3.1",
|
||||
"fastify": "^3.18.0",
|
||||
"fastify-cookie": "^5.3.1",
|
||||
"fastify-flash": "^2.0.2",
|
||||
"fastify-secure-session": "^2.3.1",
|
||||
"fastify-session": "^5.2.1",
|
||||
"fastify-static": "^4.2.2",
|
||||
"got": "^11.8.2",
|
||||
"https": "^1.0.0",
|
||||
"memorystore": "*",
|
||||
"mongoose": "^5.12.5",
|
||||
"path": "^0.12.7",
|
||||
"point-of-view": "^4.15.0",
|
||||
"pug": "^3.0.2",
|
||||
"url": "^0.11.0",
|
||||
"validator": "^13.5.2"
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ router.post("/pass", ensureAuthenticated, async function (req, res) {
|
|||
});
|
||||
res.redirect("/settings");
|
||||
} else {
|
||||
req.session.regenerate(function (err) {
|
||||
req.destroySession(function (err) {
|
||||
req.session.successes = [];
|
||||
req.session.successes.push({
|
||||
msg: "Change Password Successful, Please Login Again",
|
||||
|
|
|
|||
1
secret-key
Normal file
1
secret-key
Normal file
|
|
@ -0,0 +1 @@
|
|||
Öƒ”Qþ;¶àLÛ±iÚÇôâgoÙþ¦Y;vØ)ßû2”
|
||||
|
|
@ -5,9 +5,9 @@ html
|
|||
link(rel="stylesheet", href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css", integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z", crossorigin="anonymous")
|
||||
link(rel="preconnect" href="https://fonts.gstatic.com")
|
||||
link(href="https://fonts.googleapis.com/css2?family=Lato&family=Montserrat&display=swap" rel="stylesheet")
|
||||
if random == true
|
||||
if random
|
||||
link(rel='stylesheet' href='/css/papy.css')
|
||||
if random == false || random == null
|
||||
if !random
|
||||
link(rel='stylesheet' href='/css/style.css')
|
||||
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||
body
|
||||
|
|
@ -38,7 +38,6 @@ html
|
|||
li.nav-item
|
||||
a.nav-link(href='/admin').text-white Admin
|
||||
.container
|
||||
!= messages('message', locals)
|
||||
if errors
|
||||
each error, i in errors
|
||||
div(class="alert alert-danger") #{error.msg}
|
||||
|
|
|
|||
Loading…
Reference in a new issue