Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fetch = require("node-fetch"),
- btoa = require("btoa"),
- cookieParser = require("cookie-parser"),
- { resolve } = require("path"),
- express = require('express'),
- path = require("path"),
- api = express();
- api.listen(80, () => {
- console.log('Website & API up and running!')
- });
- //GUILDS STATS
- const fs = require("fs");
- const firebase = require("firebase");
- const dataName = 'Guilds';
- const defVal = 0;
- if (!fs.existsSync("./fbConfig.json")) {
- return console.log("You do not have the fbConfig.json file in your bot to continue. Visit this repository to learn how to do it: https://github.com/CapOliveiraBr/DBM-Firebase");
- }
- const fbConfig = JSON.parse(fs.readFileSync("./fbConfig.json", "utf-8"));
- let guildsresult;
- if (dataName && toString(defVal)) {
- try {
- firebase.initializeApp(fbConfig);
- const path = firebase.database().ref(`data/globals/${dataName}`);
- path.once("value")
- .then(snapshot => {
- if (snapshot.exists()) {
- guildsresult = snapshot.val();
- api.locals.Guilds = guildsresult;
- } else {
- guildsresult = defVal;
- api.locals.Guilds = guildsresult;
- }
- });
- } catch(err) {
- if (err.code == "app/duplicate-app") {
- const path = firebase.database().ref(`data/globals/${dataName}`);
- path.once("value")
- .then(snapshot => {
- if (snapshot.exists()) {
- guildsresult = snapshot.val();
- api.locals.Guilds = guildsresult;
- } else {
- guildsresult = defVal;
- api.locals.Guilds = guildsresult;
- }
- });
- } else {
- console.error(err);
- }
- }
- }
- //USERS STATS
- const dataName1 = 'Users';
- const defVal1 = 0;
- if (!fs.existsSync("./fbConfig.json")) {
- return console.log("You do not have the fbConfig.json file in your bot to continue. Visit this repository to learn how to do it: https://github.com/CapOliveiraBr/DBM-Firebase");
- }
- let usersresult;
- if (dataName1 && toString(defVal1)) {
- try {
- firebase.initializeApp(fbConfig);
- const path = firebase.database().ref(`data/globals/${dataName1}`);
- path.once("value")
- .then(snapshot => {
- if (snapshot.exists()) {
- usersresult = snapshot.val();
- api.locals.Users = usersresult;
- } else {
- usersresult = defVal1;
- api.locals.Users = usersresult;
- }
- });
- } catch(err) {
- if (err.code == "app/duplicate-app") {
- const path = firebase.database().ref(`data/globals/${dataName1}`);
- path.once("value")
- .then(snapshot => {
- if (snapshot.exists()) {
- usersresult = snapshot.val();
- api.locals.Users = usersresult;
- } else {
- usersresult = defVal1;
- api.locals.Users = usersresult;
- }
- });
- } else {
- console.error(err);
- }
- }
- }
- api.set("view engine", "ejs");
- api.use(express.static(resolve(__dirname, "public")));
- api.set("views", __dirname);
- const dataDir = path.resolve(`${process.cwd()}${path.sep}`);
- api.use("/public", express.static(path.resolve(`${dataDir}${path.sep}public`)));
- api.use(cookieParser());
- api.get("/login", (req, res) => {
- res.redirect(getLoginUrl());
- });
- api.get("/logout", function(req, res) {
- if (req.cookies["token"]) {
- res.clearCookie("token");
- res.redirect("/");
- } else {
- res.redirect("/");
- }
- });
- api.use("/img", express.static(path.resolve(`${dataDir}${path.sep}img`)));
- api.get("/server/callback", async (req, res) => {
- let code = req.query.code;
- if (!code) return res.send(403);
- let tokenRes = await getToken(code);
- res.cookie("token", tokenRes.access_token);
- console.log(tokenRes.access_token)
- res.redirect("/dash");
- });
- api.get("/", (req, res) => {
- if(req.cookies["token"]) {
- Promise.all([getUser(req.cookies["token"]), getGuilds(req.cookies["token"])]).then(([user, guilds]) => {
- res.render("views/index", { user: user, guilds: guilds});
- })
- }
- else {
- res.render("views/index", { user: 'no', guilds: 'no'})
- }
- })
- api.get("/commands", (req, res) => {
- if(req.cookies["token"]) {
- Promise.all([getUser(req.cookies["token"]), getGuilds(req.cookies["token"])]).then(([user, guilds]) => {
- res.render("views/commands", { user: user, guilds: guilds});
- })
- }
- else {
- res.render("views/commands", { user: 'no', guilds: 'no'})
- }
- })
- api.get("/api", (req, res) => {
- if(req.cookies["token"]) {
- Promise.all([getUser(req.cookies["token"]), getGuilds(req.cookies["token"])]).then(([user, guilds]) => {
- res.render("views/api", { user: user, guilds: guilds});
- })
- }
- else {
- res.render("views/api", { user: 'no', guilds: 'no'})
- }
- })
- api.get("/radio", (req, res) => {
- if(req.cookies["token"]) {
- Promise.all([getUser(req.cookies["token"]), getGuilds(req.cookies["token"])]).then(([user, guilds]) => {
- res.render("views/radio", { user: user, guilds: guilds});
- })
- }
- else {
- res.render("views/radio", { user: 'no', guilds: 'no'})
- }
- })
- api.get("/dashboard", (req, res) => {
- if(req.cookies["token"]) {
- Promise.all([getUser(req.cookies["token"]), getGuilds(req.cookies["token"])]).then(([user, guilds]) => {
- res.render("views/dashboard", { user: user, guilds: guilds});
- })
- }
- else {
- res.render("views/dashboard", { user: 'no', guilds: 'no'})
- }
- })
- api.get("/dash", (req, res) => {
- if(req.cookies["token"]) {
- const Discord = require('discord.js')
- const { Permissions } = require('discord.js')
- const client = new Discord.Client();
- const fs = require("fs");
- const firebase = require("firebase");
- client.login("token");
- console.log([...client.guilds.keys()])
- Promise.all([getUser(req.cookies["token"]), getGuilds(req.cookies["token"])]).then(([user, guilds]) => {
- res.render("views/dash", { user: user, guilds: guilds, Permissions: Permissions, client: client, fs: fs, firebase: firebase});
- })
- }
- else {
- res.render("views/dash", { user: 'no', guilds: 'no'})
- }
- })
- api.get('/api/img/:animal', (req, res) => {
- const {animal} = req.params;
- const array = ["lion", "elephant", "giraffe", "leopard", "rhino", "tiger", "monkey", "zebra", "crocodile", "koala", "wolf", "bear", "deer", "fox", "horse", "cow", "dog", "cat", "eagle", "parrot", "duck", "penguin", "rabbit", "turtle", "motor", "car", "plane", "boat", "food", "nautre"]
- if(array.includes(animal)) {
- const fs = require('fs');
- const dir = "./img/" + animal[0].toUpperCase() + animal.slice(1);
- const files = fs.readdirSync(dir);
- const index = Math.floor(Math.random() * files.length);
- const output = files[index]
- const directory = dir.replace('./', '')
- const result = { url: `http://evobot.xyz/${directory}/${files[index]}` };
- res.json(result)}
- else {
- res.redirect('/404')
- }
- });
- //api.get('/api/text/base64', (req, res) => {
- //let params = (new URL(document.location)).searchParams;
- //let text = params.get('text');
- //var filter = new Buffer('Hello');
- //var baseresult = base.toString('base64');
- //var result = { text: `${baseresult}` };
- // res.json(result)
- // });
- const CLIENT_ID = "600291892340588554",
- CLIENT_SECRET = "secret",
- CLIENT_TOKEN = "token"
- let redirect = encodeURIComponent("http://localhost/server/callback");
- async function getToken(code) {
- const creds = btoa(`${CLIENT_ID}:${CLIENT_SECRET}`);
- const response = await (await fetch(
- `https://discordapp.com/api/oauth2/token?grant_type=authorization_code&code=${code}&redirect_uri=${redirect}`,
- {
- method: "POST",
- headers: {
- Authorization: `Basic ${creds}`
- }
- }
- )).json();
- return response;
- }
- async function getUser(token) {
- if (!token) return false;
- const userRes = await (await fetch(
- `https://discordapp.com/api/v6/users/@me`,
- {
- method: "GET",
- headers: {
- Authorization: `Bearer ${token}`
- }
- }
- )).json();
- return userRes;
- }
- async function getGuilds(token) {
- const response = await (await fetch(
- `https://discordapp.com/api/v6/users/@me/guilds`,
- {
- method: "GET",
- headers: {
- Authorization: `Bearer ${token}`
- }
- }
- )).json();
- return response;
- }
- function getLoginUrl(server_id = "") {
- return `https://discordapp.com/api/oauth2/authorize?client_id=${CLIENT_ID}&redirect_uri=${redirect}&response_type=code&scope=identify%20guilds`;
- }
- api.get("*", (req, res) => {
- res.render("views/404")
- });
Add Comment
Please, Sign In to add comment