-
-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathserver.js
105 lines (85 loc) · 2.76 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
//..
const express = require("express");
const app = express();
const {
JsonDatabase,
YamlDatabase
} = require("wio.db");
const db = new JsonDatabase({
databasePath:"./Database/paste.json"
});
//Paste Siler
//cooming soon xd
setTimeout(function(){
}, 3000);
var bodyParser = require("body-parser");
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("public"));
app.set('view engine', 'ejs');
app.get("/", (request, response) => {
var negoSize = db.size
var dbVersion = db.info.version
response.render("home",{negoSize,dbVersion});
});
app.post("/", (req, res) => {
//Paste ID
function make_paste_id(length) {
var result = "";
var characters =
"123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
var make = make_paste_id(10);
var negoB = req.body;
var Data = {
author: negoB["author"],
pasteName: negoB["pastename"],
paste: negoB["paste"],
paste_language: negoB["pastelang"],
paste_id: make
};
db.set(`paste.${make}`,Data);
res.redirect(`/paste/${make}/`);
});
app.get("/paste/:pasteID", (req, res) => {
var pasteCheck = db.fetch(`paste.${req.params.pasteID}`);
if(!pasteCheck) return res.json("unkown");
var pasteData = db.fetch(`paste.${req.params.pasteID}`);
var pasteName = db.fetch(`paste.${req.params.pasteID}`).pasteName
db.add(`pasteViewCount.${req.params.pasteID}`,+1);
var viewCount = db.fetch(`pasteViewCount.${req.params.pasteID}`);
res.render("paste-goruntule",{pasteData,viewCount});
});
app.get("/raw/:pasteID", (req, res) => {
var pasteCheck = db.fetch(`paste.${req.params.pasteID}`);
if(!pasteCheck) return res.json("unkown");
var pasteData = db.fetch(`paste.${req.params.pasteID}`);
var pasteName = db.fetch(`paste.${req.params.pasteID}`).pasteName
res.write(pasteData.paste);
});
app.get("/api/:pasteID/tojson", (req, res) => {
var pasteCheck = db.fetch(`paste.${req.params.pasteID}`);
if(!pasteCheck) return res.json("unkown");
var pasteData = db.fetch(`paste.${req.params.pasteID}`);
var pasteName = db.fetch(`paste.${req.params.pasteID}`).pasteName
var viewCount = db.fetch(`pasteViewCount.${req.params.pasteID}`);
var Data = {
pasteName:pasteData.pasteName,
paste: pasteData.paste,
paste_id:pasteData.paste_id,
pasteLang: pasteData.paste_language,
viewers: viewCount
}
res.json(Data);
});
app.get("/api/database", (req, res) => {
res.json({size:db.size});
});
const listener = app.listen(process.env.PORT, () => {
console.log("Your app is listening on port " + listener.address().port);
});