· 5 years ago · Mar 28, 2020, 01:22 PM
1const api = require("bd-js2-0");
2
3const bd = new api({
4 token: "NjkzNDIzNTQ0NjE2NDg0OTA0.Xn83FA.H0CSay5HxQJ4Kce4SvjGCjmJBj8",
5 prefix: ["="]
6});
7
8
9bd.LoadCommands({ path: "./commands/" })
10
11bd.MessageEvent()
12
13bd.Command({
14 name: "help",
15 code: "**Hey <@$authorID>,\nI don't have any Commands for now xD**"
16});
17
18bd.Command({
19 name: "levellingon",
20 code:
21 "$setServerVar[levelling;1] $onlyIf[$getServerVar[levelling]==0;**<:redtick:598492551649165332> Levelling System in Already Enabled.**] **<:greentick:598072777966092319> Successfully Enabled the Leveling System for this Server.** $onlyPerms[manageserver;**<:redtick:598492551649165332> You don't have Manage Server Perms.**]"
22});
23
24bd.Command({
25 name: "levellingoff",
26 code:
27 "$setServerVar[levelling;0] $onlyIf[$getServerVar[levelling]==1;**<:redtick:598492551649165332> Levelling System in Already Disabled.**] **<:greentick:598072777966092319> Successfully Disabled the Leveling System for this Server.** $onlyPerms[manageserver;**<:redtick:598492551649165332> You don't have Manage Server Perms.**]"
28});
29
30//status
31//api.Statuses(
32//{
33// 1: { status: "with Fighter for Justice", mode: "PLAYING" },
34//2: { status: "me being Coded", mode: "WATCHING" },
35// 3: { status: "People Talking", mode: "WATCHING" }
36//},
37// { time: 20000 }
38//);
39
40// server.js
41// where your node app starts
42
43// init project
44const express = require("express");
45const bodyParser = require("body-parser");
46const app = express();
47const fs = require("fs");
48app.use(bodyParser.urlencoded({ extended: true }));
49app.use(bodyParser.json());
50
51// we've started you off with Express,
52// but feel free to use whatever libs or frameworks you'd like through `package.json`.
53
54// http://expressjs.com/en/starter/static-files.html
55app.use(express.static("public"));
56
57// init sqlite db
58const dbFile = "./.data/sqlite.db";
59const exists = fs.existsSync(dbFile);
60const sqlite3 = require("sqlite3").verbose();
61const db = new sqlite3.Database(dbFile);
62
63// if ./.data/sqlite.db does not exist, create it, otherwise print records to console
64db.serialize(() => {
65 if (!exists) {
66 db.run(
67 "CREATE TABLE Dreams (id INTEGER PRIMARY KEY AUTOINCREMENT, dream TEXT)"
68 );
69 console.log("New table Dreams created!");
70
71 // insert default dreams
72 db.serialize(() => {
73 db.run(
74 'INSERT INTO Dreams (dream) VALUES ("Find and count some sheep"), ("Climb a really tall mountain"), ("Wash the dishes")'
75 );
76 });
77 } else {
78 console.log('Database "Dreams" ready to go!');
79 db.each("SELECT * from Dreams", (err, row) => {
80 if (row) {
81 console.log(`record: ${row.dream}`);
82 }
83 });
84 }
85});
86
87// http://expressjs.com/en/starter/basic-routing.html
88app.get("/", (request, response) => {
89 response.sendFile(`${__dirname}/views/index.html`);
90});
91
92// endpoint to get all the dreams in the database
93app.get("/getDreams", (request, response) => {
94 db.all("SELECT * from Dreams", (err, rows) => {
95 response.send(JSON.stringify(rows));
96 });
97});
98
99// endpoint to add a dream to the database
100app.post("/addDream", (request, response) => {
101 console.log(`add to dreams ${request.body.dream}`);
102
103 // DISALLOW_WRITE is an ENV variable that gets reset for new projects
104 // so they can write to the database
105 if (!process.env.DISALLOW_WRITE) {
106 const cleansedDream = cleanseString(request.body.dream);
107 db.run(`INSERT INTO Dreams (dream) VALUES (?)`, cleansedDream, error => {
108 if (error) {
109 response.send({ message: "error!" });
110 } else {
111 response.send({ message: "success" });
112 }
113 });
114 }
115});
116
117// endpoint to clear dreams from the database
118app.get("/clearDreams", (request, response) => {
119 // DISALLOW_WRITE is an ENV variable that gets reset for new projects so you can write to the database
120 if (!process.env.DISALLOW_WRITE) {
121 db.each(
122 "SELECT * from Dreams",
123 (err, row) => {
124 console.log("row", row);
125 db.run(`DELETE FROM Dreams WHERE ID=?`, row.id, error => {
126 if (row) {
127 console.log(`deleted row ${row.id}`);
128 }
129 });
130 },
131 err => {
132 if (err) {
133 response.send({ message: "error!" });
134 } else {
135 response.send({ message: "success" });
136 }
137 }
138 );
139 }
140});
141
142// helper function that prevents html/css/script malice
143const cleanseString = function(string) {
144 return string.replace(/</g, "<").replace(/>/g, ">");
145};
146
147// listen for requests :)
148var listener = app.listen(process.env.PORT, () => {
149 console.log(`Your app is listening on port ${listener.address().port}`);
150});