puzzle/index.js
n0rdye 029ba9b1c3 modified: db.js
modified:   index.js
	modified:   object.js
	modified:   public/lib/fn.js
	new file:   public/lib/inter_group_object.js
	modified:   templates.js
	new file:   views/admin/objects/group_object copy.ejs
	new file:   views/admin/objects/group_object.ejs
	modified:   views/admin/objects/object_creation.ejs
	modified:   views/admin/objects/object_edit.ejs
	modified:   views/project.ejs
2023-11-15 23:05:33 +00:00

509 lines
15 KiB
JavaScript

const express = require('express');
const db = require('./db');
const func = require('./func');
const user = require('./user');
const admin = require('./admin');
const obj = require('./object');
const proj = require('./project');
const vars = require('./vars');
const templates = require('./templates.js');
const cookieParser = require('cookie-parser');
const CssFilterConverter = require('css-filter-converter');
// const {
// response,
// request
// } = require('express');
// const { escapeSelector } = require('jquery');
// const { name } = require('ejs');
// const { stringify } = require('uuid');
// const createApplication = require('express/lib/express');
// const { render } = require('express/lib/response');
const app = express();
// const {
// pathToFileURL
// } = require("url");
// const { strict } = require('assert');
// const { log } = require('console');
// const { mainModule } = require('process');
// const { name } = require('ejs');
const maxRequestBodySize = '20mb';
let cache_options = {
maxAge: "4d",
etag: false
}
app.set('view engine', 'ejs');
app.use(express.urlencoded({
extended: false,
limit: maxRequestBodySize
}));
app.use(express.static('public',cache_options));
app.use(cookieParser());
/// user
app.get("/login" , (req,res) =>{
res.render('login');
})
app.post('/back_login', (req, res) => {try {
let inp = req.body;
let cook = req.cookies;
user.login(inp,cook,res);
} catch (error) {route_err({req:req,error:error});}
});
app.post("/sid_log",(req,res) =>{try{
let inp = req.body;
let cook = req.cookies;
user.sid_log(inp,cook,res,req);
} catch (error) {route_err({req:req,error:error});}
})
app.post("/get_sid" , (req,res) =>{try{
let inp = req.body;
let sid = func.get_uuid();
res.cookie("sid",sid,{maxAge:(vars.week),path:"/;SameSite=Strict"});
res.send({out:"good"});
} catch (error) {route_err({req:req,error:error});}
});
app.post("/clear_sid" , (req,res) =>{try{
let inp = req.body;
let cook = req.cookies;
user.clear_sid(inp,cook,res);
} catch (error) {route_err({req:req,error:error});}
});
app.post("/get_cr_uuid", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
user.get_cr(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
/// project
app.get("/proj/load/:name" , (req,res) =>{
res.render('project',{proj_name:req.params["name"]});
})
app.post("/save_proj", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.save(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/load_proj", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.load(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/proj/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.del(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/proj/download", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.download(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/proj/rename", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.rename(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/get_projs", (req,res) => {
try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
proj.loads(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/get_objs", (req,res) => {
try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.loads(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/get_obj", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.load(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/get_groups", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.load_groups(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/object/parts/get", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.load_parts(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/object/group/get", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.load_group(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
// colors
app.post("/object/colors/get", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.load_colors(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
/// admin
app.get("/admin", (req,res) =>{try {
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,(rights)=>{
res.render('admin');
},true,true)
} catch (error) {route_err({req:req,error:error});}
});
app.get("/admin/group_object", (req,res) =>{try {
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,(rights)=>{
res.render('admin/objects/group_object');
},true,true)
} catch (error) {route_err({req:req,error:error});}
});
app.get("/admin/:type", (req,res) =>{try {
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,(rights)=>{
if ((req.params["type"] == "objects") && (rights == 1 || rights == 3)){
res.render('admin/objects');
}
else if ((req.params["type"] == "users") && (rights == 2 || rights == 3)){
res.render('admin/users');
}
// else{res.redirect('/admin');}
},true,true)
} catch (error) {route_err({req:req,error:error});}
});
app.get("/get_logs", (req,res) => {
try{let cook = req.cookies;func.sid(cook,res,()=>{func.logs_file(res);})}
catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/object/grouped/save", (req,res) => {
try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.save_grouped(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/object/grouped/load", (req,res) => {
try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.load_grouped(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/colors/new", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.new_color(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/colors/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
// func.log(inp["name"]);
func.sid(cook,res,()=>{
obj.del_color(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/objects/new", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.new(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/objects/edit", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.save(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/objects/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.del(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/objects/find", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.find(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/groups/new", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.new_group(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/parts/new", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.new_part(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/parts/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.del_part(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/groups/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
obj.del_group(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/users/get", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
admin.get_users(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post('/admin/users/new', (req, res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
admin.new_user(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/users/edit", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
admin.edit_user(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/users/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
admin.del_user(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/users/find", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
admin.find_user(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
// templates
app.get("/template/load/:name" , (req,res) =>{
res.render('template',{proj_name:req.params["name"]});
})
app.post("/template/get", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.load(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
app.post('/template/save', (req, res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.save(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/template/rename", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.rename(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/template/group/loads", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.load_groups(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/template/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.del(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/template/group/new", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.new_group(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/admin/template/group/delete", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.del_group(inp,cook,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
})
app.post("/template/loads", (req,res) => {try{
let inp = req.body;
let cook = req.cookies;
func.sid(cook,res,()=>{
templates.loads(inp,cook,res);
})
} catch (error) {route_err({req:req,error:error});}
})
// main routes
app.get('/', (req, res) => {
let inp = req.query;
let cook = req.cookies;
func.sid(cook,res,(include)=>{
if(include){
res.redirect('main');
}
else{
res.redirect('login');
}
},false)
});
app.get("/main", (req,res) =>{try{
let inp = req.query;let cook = req.cookies;
func.sid(cook,res,()=>{
res.render('main');
})
} catch (error) {route_err({req:req,error:error});}
});
app.get("/logs/get", (req,res) =>{try{
let inp = req.query;let cook = req.cookies;
func.sid(cook,res,()=>{
func.get_logs(res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
});
app.get("/logs/del", (req,res) =>{try{
let inp = req.query;let cook = req.cookies;
func.sid(cook,res,()=>{
func.del_logs(inp,res);
},true,true)
} catch (error) {route_err({req:req,error:error});}
});
app.get("/help", (req,res) =>{try{
let inp = req.query;let cook = req.cookies;
func.sid(cook,res,()=>{
res.render('help');
})
} catch (error) {route_err({req:req,error:error});}
});
app.get("/temp", (req,res) =>{try{
let inp = req.query;let cook = req.cookies;
func.sid(cook,res,()=>{
res.render('templates');
})
} catch (error) {route_err({req:req,error:error});}
});
app.get("/htc/:hex",(req,res) =>{
res.send(CssFilterConverter.hexToFilter(`#${req.params["hex"]}`));
})
app.post("/color",(req,res) =>{
let inp = req.body;
func.img_recolor(res,inp["img"],inp["hex"]);
})
app.all('*', (req, res) => {
res.status(404)
res.render("static/404");
});
app.listen(process.env.PORT || 8080, () => func.log("server for puzzle started UwU"));
function route_err(params = {req:null,error:null}) {
func.log(`router ${req.route.path} error - `+error)
}