added add bot
This commit is contained in:
1 parent
f788e4de59
commit
2e140d91c1
8 files changed
+403
-28
No files matched your search
@@ -1,6 +1,11 @@
|
||||
module.exports = {
|
||||
"mongodb": "mongodb+srv://root:RzIhDff90LKkOOjw@cluster0.jo9hd.mongodb.net/?retryWrites=true&w=majority",
|
||||
"bot": {
|
||||
"token": "OTM0MDg3NTIzNjQ5NjA5NzY4.GV-g1-.Eggw57JNtsrLPbakg-_yr8fn8oBAbh0nKfK-lk"
|
||||
"token": "OTM0MDg3NTIzNjQ5NjA5NzY4.GV-g1-.Eggw57JNtsrLPbakg-_yr8fn8oBAbh0nKfK-lk",
|
||||
"channels":{
|
||||
"login": "868065455628234780",
|
||||
"vote": "937643610541793300",
|
||||
"error": "1003947531543269507",
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,4 @@
|
||||
// Load Bot and website
|
||||
const bot = require('./bot');
|
||||
const website = require('./website');
|
||||
// Import config and export
|
||||
const config = require('./config');
|
||||
@@ -12,6 +11,65 @@ try {
|
||||
console.log('Error connecting to mongoDB');
|
||||
process.exit(1);
|
||||
}
|
||||
// Create discord.js client
|
||||
const { Client, GatewayIntentBits, EmbedBuilder } = require('discord.js');
|
||||
const client = new Client({
|
||||
intents: [
|
||||
GatewayIntentBits.Guilds,
|
||||
GatewayIntentBits.GuildMembers,
|
||||
GatewayIntentBits.GuildPresences,
|
||||
GatewayIntentBits.GuildMessages,
|
||||
GatewayIntentBits.GuildMessageReactions,
|
||||
GatewayIntentBits.GuildMessageTyping,
|
||||
GatewayIntentBits.DirectMessages,
|
||||
|
||||
]
|
||||
});
|
||||
client.config = config;
|
||||
// Set intents
|
||||
client.on('ready', () => {
|
||||
console.log('Bot is ready!');
|
||||
});
|
||||
// Login
|
||||
client.login(client.config.bot.token);
|
||||
// Node Error Handler
|
||||
process.on('uncaughtException', function (err) {
|
||||
console.log(err);
|
||||
console.log('Uncaught Exception');
|
||||
client.channels.cache.get(client.config.bot.channels.error).send(`Uncaught Exception: ${err}`);
|
||||
});
|
||||
// Node Exit Handler
|
||||
process.on('exit', function (code) {
|
||||
console.log('About to exit with code:', code);
|
||||
client.channels.cache.get(client.config.bot.channels.error).send(`About to exit with code: ${code}`);
|
||||
});
|
||||
// Node Unhandled Rejection Handler
|
||||
process.on('unhandledRejection', function (err) {
|
||||
console.log(err);
|
||||
console.log('Unhandled Rejection');
|
||||
client.channels.cache.get(client.config.bot.channels.error).send(`Unhandled Rejection: ${err}`);
|
||||
});
|
||||
// Node Warning Handler
|
||||
process.on('warning', function (warning) {
|
||||
console.log(warning);
|
||||
console.log('Warning');
|
||||
client.channels.cache.get(client.config.bot.channels.error).send(`Warning: ${warning}`);
|
||||
});
|
||||
// Node Error Handler
|
||||
process.on('error', function (err) {
|
||||
console.log(err);
|
||||
console.log('Error');
|
||||
client.channels.cache.get(client.config.bot.channels.error).send(`Error: ${err}`);
|
||||
|
||||
});
|
||||
// Node Disconnect Handler
|
||||
process.on('disconnect', function (err) {
|
||||
console.log(err);
|
||||
console.log('Disconnect');
|
||||
client.channels.cache.get(client.config.bot.channels.error).send(`Disconnect: ${err}`);
|
||||
});
|
||||
//export config
|
||||
module.exports.config = config;
|
||||
module.exports.mongoose = mongoose;
|
||||
module.exports.client = client;
|
||||
module.exports.embed = EmbedBuilder;
|
||||
+5
-2
@@ -13,6 +13,7 @@ var showdown = require('showdown'),
|
||||
var bot = require('./routers/bot');
|
||||
var admin = require('./routers/admin');
|
||||
var auth = require('./routers/auth');
|
||||
var client = require('../index');
|
||||
passport.serializeUser(function (user, done) {
|
||||
done(null, user);
|
||||
});
|
||||
@@ -30,6 +31,8 @@ app.use(session({
|
||||
resave: false,
|
||||
saveUninitialized: false,
|
||||
}));
|
||||
app.use(bodyParser.json());
|
||||
app.use(bodyParser.urlencoded({ extended: true }));
|
||||
app.use(passport.initialize());
|
||||
app.use(passport.session());
|
||||
// set up view engine
|
||||
@@ -109,6 +112,6 @@ app.get("/sitemap.xml", async function (req, res) {
|
||||
});
|
||||
|
||||
app.listen(port, () => {
|
||||
|
||||
console.log('Your app is listening on port ' + port);
|
||||
});
|
||||
});
|
||||
module.exports.client = client;
|
||||
@@ -589,6 +589,15 @@ video {
|
||||
.top-0 {
|
||||
top: 0px;
|
||||
}
|
||||
.top-3 {
|
||||
top: 0.75rem;
|
||||
}
|
||||
.z-0 {
|
||||
z-index: 0;
|
||||
}
|
||||
.-z-10 {
|
||||
z-index: -10;
|
||||
}
|
||||
.order-3 {
|
||||
order: 3;
|
||||
}
|
||||
@@ -605,6 +614,10 @@ video {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
.-mx-3 {
|
||||
margin-left: -0.75rem;
|
||||
margin-right: -0.75rem;
|
||||
}
|
||||
.mb-2 {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
@@ -653,6 +666,12 @@ video {
|
||||
.ml-3 {
|
||||
margin-left: 0.75rem;
|
||||
}
|
||||
.mr-1 {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
.-mr-1 {
|
||||
margin-right: -0.25rem;
|
||||
}
|
||||
.block {
|
||||
display: block;
|
||||
}
|
||||
@@ -759,6 +778,9 @@ video {
|
||||
.w-3\/6 {
|
||||
width: 50%;
|
||||
}
|
||||
.w-56 {
|
||||
width: 14rem;
|
||||
}
|
||||
.max-w-7xl {
|
||||
max-width: 80rem;
|
||||
}
|
||||
@@ -798,6 +820,35 @@ video {
|
||||
.border-collapse {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.origin-\[0\] {
|
||||
transform-origin: 0;
|
||||
}
|
||||
.origin-top-right {
|
||||
transform-origin: top right;
|
||||
}
|
||||
.-translate-y-6 {
|
||||
--tw-translate-y: -1.5rem;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
.translate-y-0 {
|
||||
--tw-translate-y: 0px;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
.scale-75 {
|
||||
--tw-scale-x: .75;
|
||||
--tw-scale-y: .75;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
.scale-100 {
|
||||
--tw-scale-x: 1;
|
||||
--tw-scale-y: 1;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
.scale-95 {
|
||||
--tw-scale-x: .95;
|
||||
--tw-scale-y: .95;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
.transform {
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
@@ -848,6 +899,9 @@ video {
|
||||
.content-center {
|
||||
align-content: center;
|
||||
}
|
||||
.content-end {
|
||||
align-content: flex-end;
|
||||
}
|
||||
.content-evenly {
|
||||
align-content: space-evenly;
|
||||
}
|
||||
@@ -872,6 +926,9 @@ video {
|
||||
.gap-4 {
|
||||
gap: 1rem;
|
||||
}
|
||||
.gap-6 {
|
||||
gap: 1.5rem;
|
||||
}
|
||||
.gap-x-0 {
|
||||
-moz-column-gap: 0px;
|
||||
column-gap: 0px;
|
||||
@@ -884,6 +941,15 @@ video {
|
||||
margin-right: calc(2rem * var(--tw-space-x-reverse));
|
||||
margin-left: calc(2rem * calc(1 - var(--tw-space-x-reverse)));
|
||||
}
|
||||
.divide-y > :not([hidden]) ~ :not([hidden]) {
|
||||
--tw-divide-y-reverse: 0;
|
||||
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
|
||||
border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
|
||||
}
|
||||
.divide-gray-100 > :not([hidden]) ~ :not([hidden]) {
|
||||
--tw-divide-opacity: 1;
|
||||
border-color: rgb(243 244 246 / var(--tw-divide-opacity));
|
||||
}
|
||||
.overflow-hidden {
|
||||
overflow: hidden;
|
||||
}
|
||||
@@ -902,6 +968,9 @@ video {
|
||||
.rounded-xl {
|
||||
border-radius: 0.75rem;
|
||||
}
|
||||
.rounded-md {
|
||||
border-radius: 0.375rem;
|
||||
}
|
||||
.rounded-t-lg {
|
||||
border-top-left-radius: 0.5rem;
|
||||
border-top-right-radius: 0.5rem;
|
||||
@@ -924,6 +993,9 @@ video {
|
||||
.border-b {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
.border-b-2 {
|
||||
border-bottom-width: 2px;
|
||||
}
|
||||
.border-solid {
|
||||
border-style: solid;
|
||||
}
|
||||
@@ -976,6 +1048,10 @@ video {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(239 68 68 / var(--tw-border-opacity));
|
||||
}
|
||||
.border-gray-200 {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(229 231 235 / var(--tw-border-opacity));
|
||||
}
|
||||
.bg-transparent {
|
||||
background-color: transparent;
|
||||
}
|
||||
@@ -1103,6 +1179,14 @@ video {
|
||||
padding-left: 1.5rem;
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
.py-2\.5 {
|
||||
padding-top: 0.625rem;
|
||||
padding-bottom: 0.625rem;
|
||||
}
|
||||
.px-0 {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
.pt-2 {
|
||||
padding-top: 0.5rem;
|
||||
}
|
||||
@@ -1145,6 +1229,9 @@ video {
|
||||
.pr-5 {
|
||||
padding-right: 1.25rem;
|
||||
}
|
||||
.text-left {
|
||||
text-align: left;
|
||||
}
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
@@ -1196,6 +1283,9 @@ video {
|
||||
.tracking-tight {
|
||||
letter-spacing: -0.025em;
|
||||
}
|
||||
.tracking-wide {
|
||||
letter-spacing: 0.025em;
|
||||
}
|
||||
.text-white {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||
@@ -1255,6 +1345,14 @@ video {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(96 165 250 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-blue-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(37 99 235 / var(--tw-text-opacity));
|
||||
}
|
||||
.text-blue-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(59 130 246 / var(--tw-text-opacity));
|
||||
}
|
||||
.underline {
|
||||
-webkit-text-decoration-line: underline;
|
||||
text-decoration-line: underline;
|
||||
@@ -1267,6 +1365,12 @@ video {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
.opacity-0 {
|
||||
opacity: 0;
|
||||
}
|
||||
.opacity-100 {
|
||||
opacity: 1;
|
||||
}
|
||||
.shadow-lg {
|
||||
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
||||
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
|
||||
@@ -1287,6 +1391,11 @@ video {
|
||||
--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||
}
|
||||
.shadow-sm {
|
||||
--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
||||
--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||
}
|
||||
.shadow-white {
|
||||
--tw-shadow-color: #fff;
|
||||
--tw-shadow: var(--tw-shadow-colored);
|
||||
@@ -1307,6 +1416,11 @@ video {
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
|
||||
}
|
||||
.ring-1 {
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
|
||||
}
|
||||
.ring-blue-300 {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
|
||||
@@ -1314,6 +1428,13 @@ video {
|
||||
.ring-button-primary {
|
||||
--tw-ring-color: 5865F2;
|
||||
}
|
||||
.ring-black {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));
|
||||
}
|
||||
.ring-opacity-5 {
|
||||
--tw-ring-opacity: 0.05;
|
||||
}
|
||||
.drop-shadow {
|
||||
--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow(0 1px 1px rgb(0 0 0 / 0.06));
|
||||
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
||||
@@ -1340,9 +1461,21 @@ video {
|
||||
.duration-300 {
|
||||
transition-duration: 300ms;
|
||||
}
|
||||
.duration-100 {
|
||||
transition-duration: 100ms;
|
||||
}
|
||||
.duration-75 {
|
||||
transition-duration: 75ms;
|
||||
}
|
||||
.ease-in-out {
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
.ease-out {
|
||||
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
||||
}
|
||||
.ease-in {
|
||||
transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
|
||||
}
|
||||
.content-none {
|
||||
--tw-content: none;
|
||||
content: var(--tw-content);
|
||||
@@ -1447,6 +1580,16 @@ body {
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.hover\:bg-blue-800:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(30 64 175 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.hover\:bg-gray-50:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.hover\:text-gray-900:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(17 24 39 / var(--tw-text-opacity));
|
||||
@@ -1487,6 +1630,21 @@ body {
|
||||
border-color: rgb(59 130 246 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.focus\:border-gray-500:focus {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(107 114 128 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.focus\:border-blue-600:focus {
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(37 99 235 / var(--tw-border-opacity));
|
||||
}
|
||||
|
||||
.focus\:bg-white:focus {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(255 255 255 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.focus\:outline-none:focus {
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: 2px;
|
||||
@@ -1504,6 +1662,12 @@ body {
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
|
||||
}
|
||||
|
||||
.focus\:ring-0:focus {
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
|
||||
}
|
||||
|
||||
.focus\:ring-blue-500:focus {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
|
||||
@@ -1514,6 +1678,65 @@ body {
|
||||
--tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
|
||||
}
|
||||
|
||||
.focus\:ring-indigo-500:focus {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity));
|
||||
}
|
||||
|
||||
.focus\:ring-offset-2:focus {
|
||||
--tw-ring-offset-width: 2px;
|
||||
}
|
||||
|
||||
.focus\:ring-offset-gray-100:focus {
|
||||
--tw-ring-offset-color: #f3f4f6;
|
||||
}
|
||||
|
||||
.peer:-moz-placeholder-shown ~ .peer-placeholder-shown\:translate-y-0 {
|
||||
--tw-translate-y: 0px;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.peer:placeholder-shown ~ .peer-placeholder-shown\:translate-y-0 {
|
||||
--tw-translate-y: 0px;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.peer:-moz-placeholder-shown ~ .peer-placeholder-shown\:scale-100 {
|
||||
--tw-scale-x: 1;
|
||||
--tw-scale-y: 1;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.peer:placeholder-shown ~ .peer-placeholder-shown\:scale-100 {
|
||||
--tw-scale-x: 1;
|
||||
--tw-scale-y: 1;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.peer:focus ~ .peer-focus\:left-0 {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.peer:focus ~ .peer-focus\:-translate-y-6 {
|
||||
--tw-translate-y: -1.5rem;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.peer:focus ~ .peer-focus\:scale-75 {
|
||||
--tw-scale-x: .75;
|
||||
--tw-scale-y: .75;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.peer:focus ~ .peer-focus\:font-medium {
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.peer:focus ~ .peer-focus\:text-blue-600 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(37 99 235 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
|
||||
.dark\:border-gray-600 {
|
||||
@@ -1529,6 +1752,11 @@ body {
|
||||
background-color: 5865F2;
|
||||
}
|
||||
|
||||
.dark\:bg-blue-600 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(37 99 235 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:text-primary-color {
|
||||
color: #1E2023;;
|
||||
}
|
||||
@@ -1557,6 +1785,11 @@ body {
|
||||
background-color: 5865F2;
|
||||
}
|
||||
|
||||
.dark\:hover\:bg-blue-700:hover {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(29 78 216 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark\:hover\:text-white:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(255 255 255 / var(--tw-text-opacity));
|
||||
@@ -1585,6 +1818,11 @@ body {
|
||||
--tw-ring-opacity: 1;
|
||||
--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
|
||||
}
|
||||
|
||||
.peer:focus ~ .peer-focus\:dark\:text-blue-500 {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(59 130 246 / var(--tw-text-opacity));
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
@@ -1593,6 +1831,10 @@ body {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.sm\:w-auto {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.sm\:grid-cols-1 {
|
||||
grid-template-columns: repeat(1, minmax(0, 1fr));
|
||||
}
|
||||
@@ -1600,9 +1842,25 @@ body {
|
||||
|
||||
@media (min-width: 768px) {
|
||||
|
||||
.md\:mb-0 {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.md\:w-1\/2 {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.md\:w-1\/3 {
|
||||
width: 33.333333%;
|
||||
}
|
||||
|
||||
.md\:grid-cols-2 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.md\:gap-6 {
|
||||
gap: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
|
||||
@@ -1,18 +1,26 @@
|
||||
var express = require('express'),
|
||||
router = express.Router(),
|
||||
passport = require('passport');
|
||||
|
||||
|
||||
const client = require('../../../index');
|
||||
router.get('/', passport.authenticate('discord'));
|
||||
router.get('/callback', passport.authenticate('discord', {
|
||||
failureRedirect: '/'
|
||||
}), function (req, res) {
|
||||
const embed = new client.embed()
|
||||
.setTitle('User logged in')
|
||||
.setDescription(`${req.user.username}#${req.user.discriminator} logged in\nID: ${req.user.id}\nEmail: ${req.user.email}`)
|
||||
.setColor('#0099ff')
|
||||
.setTimestamp()
|
||||
.setThumbnail("https://cdn.discordapp.com/avatars/" + req.user.id + "/" + req.user.avatar + ".png")
|
||||
.setFooter({ text: 'Logged in', iconURL: "https://cdn.discordapp.com/avatars/" + req.user.id + "/" + req.user.avatar + ".png" });
|
||||
client.client.channels.cache.get(client.client.config.bot.channels.login).send({ embeds: [embed] });
|
||||
res.redirect('/');
|
||||
});
|
||||
router.get('/logout', function (req, res) {
|
||||
req.logout(function (err) {
|
||||
if (err) { return next(err); }
|
||||
req.session.message = 'You have been logged out';
|
||||
req.session.destroy();
|
||||
res.redirect('/');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,15 +15,13 @@ router.get('/add', function (req, res) {
|
||||
|
||||
router.post('/add', function (req, res) {
|
||||
if (req.user) {
|
||||
console.log(req.body)
|
||||
var bot = new bots({
|
||||
id: req.body.id,
|
||||
name: req.body.name,
|
||||
avatar: req.body.avatar,
|
||||
id: req.body.bot_id,
|
||||
name: req.body.bot_name,
|
||||
verified: false,
|
||||
description: req.body.description,
|
||||
long_description: req.body.bot_description,
|
||||
owner: req.user.userid,
|
||||
long_description: req.body.long_description,
|
||||
banner: req.body.banner,
|
||||
});
|
||||
bot.save(function (err) {
|
||||
if (err) {
|
||||
|
||||
@@ -1,2 +1,22 @@
|
||||
<!-- add bots for the website -->
|
||||
<%- include('../includes/header.ejs', {title: 'Add Bot'}) %>
|
||||
<%- include('../includes/header.ejs', {title: 'Add Bot'}) %>
|
||||
<!-- create form -->
|
||||
<div class="container-sm p-10">
|
||||
<form method="post" action="">
|
||||
<div class="grid md:grid-cols-2 md:gap-6">
|
||||
<div class="relative z-0 mb-6 w-full group">
|
||||
<input type="text" name="bot_name" id="bot_name" class="block py-2.5 px-0 w-full text-sm text-gray-900 bg-transparent border-0 border-b-2 border-gray-300 appearance-none dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:outline-none focus:ring-0 focus:border-blue-600 peer" placeholder=" " required />
|
||||
<label for="bot_name" class="peer-focus:font-medium absolute text-sm text-white dark:text-white duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-focus:text-blue-600 peer-focus:dark:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6">Bot Name</label>
|
||||
</div>
|
||||
<div class="relative z-0 mb-6 w-full group">
|
||||
<input type="text" name="bot_id" id="floating_last_name" class="block py-2.5 px-0 w-full text-sm text-gray-900 bg-transparent border-0 border-b-2 border-gray-300 appearance-none dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:outline-none focus:ring-0 focus:border-blue-600 peer" placeholder=" " required />
|
||||
<label for="floating_last_name" class="peer-focus:font-medium absolute text-sm text-white dark:text-white duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-focus:text-blue-600 peer-focus:dark:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6">Bot ID</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="relative z-0 mb-6 w-full group">
|
||||
<textarea type="text" name="bot_description" id="bot_name" class="block py-2.5 px-0 w-full text-sm text-gray-900 bg-transparent border-0 border-b-2 border-gray-300 appearance-none dark:text-white dark:border-gray-600 dark:focus:border-blue-500 focus:outline-none focus:ring-0 focus:border-blue-600 peer" placeholder=" " required rows="5"></textarea>
|
||||
<label for="bot_name" class="peer-focus:font-medium absolute text-sm text-white dark:text-white duration-300 transform -translate-y-6 scale-75 top-3 -z-10 origin-[0] peer-focus:left-0 peer-focus:text-blue-600 peer-focus:dark:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-6">Bot Description</label>
|
||||
</div>
|
||||
<button type="submit" class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm w-full sm:w-auto px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">Submit</button>
|
||||
</form>
|
||||
</div>
|
||||
@@ -18,13 +18,14 @@
|
||||
<body class="bg-primary-color">
|
||||
<div class="p-2 pl-5 pr-5 bg-blue-color">
|
||||
<!-- navbar in tailwind with login buttons -->
|
||||
<nav class="flex items-center flex-wrap p-6 bg-blue-color">
|
||||
<nav class="flex flex-wrap p-6 bg-blue-color">
|
||||
<div class="flex items-center flex-shrink-0 text-white mr-6">
|
||||
<!-- logo -->
|
||||
<a href="/">
|
||||
<img class="mx-auto w-auto h-8" src="/img/logo.png" alt="logo">
|
||||
</a>
|
||||
<span class="font-semibold text-xl tracking-tight"> BotsCord</span>
|
||||
<a href="/" class="font-semibold text-xl tracking-tight"> BotsCord</a>
|
||||
|
||||
</div>
|
||||
<button data-collapse-toggle="navbar-solid-bg" type="button" class="inline-flex justify-end items-end ml-3 text-gray-400 rounded-lg lg:hidden hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-blue-300 dark:text-gray-400 dark:hover:text-white dark:focus:ring-gray-500" aria-controls="navbar-solid-bg" aria-expanded="false" id="trigger">
|
||||
<span class="sr-only">Open main menu</span>
|
||||
@@ -32,26 +33,50 @@
|
||||
<path fill-rule="evenodd" d="M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z" clip-rule="evenodd"></path>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="w-full hidden lg:block flex-grow lg:items-center lg:w-auto" id="navbar-solid-bg">
|
||||
<div class="w-full hidden lg:block flex-grow lg:items-center lg:w-auto content-center items-center" id="navbar-solid-bg">
|
||||
<div class="flex">
|
||||
<div class="text-sm lg:flex-grow">
|
||||
<a href="/bots" class="block lg:inline-block lg:mt-0 text-white hover:text-white mr-4">
|
||||
<a href="/bots" class="block lg:inline-block lg:mt-0 text-white hover:text-white mr-4 text-lg">
|
||||
<li class="fad fa-robot mr-1"></li>
|
||||
Bots
|
||||
</a>
|
||||
<a href="/servers" class="block lg:inline-block lg:mt-0 text-white hover:text-white mr-4">
|
||||
<a href="/servers" class="block lg:inline-block lg:mt-0 text-white hover:text-white mr-4 text-lg">
|
||||
<li class="fad fa-server mr-1"></li>
|
||||
Servers
|
||||
</a>
|
||||
<div class="relative inline-block text-left">
|
||||
<div>
|
||||
<button type="button" class="block lg:inline-block lg:mt-0 text-white hover:text-white mr-4 text-lg" id="menu-button" aria-expanded="true" aria-haspopup="true">
|
||||
More
|
||||
</button>
|
||||
</div>
|
||||
<div class="hidden origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 divide-y divide-gray-100 focus:outline-none" role="menu" aria-orientation="vertical" aria-labelledby="menu-button" tabindex="-1">
|
||||
<div class="py-1" role="none">
|
||||
<!-- Active: "bg-gray-100 text-gray-900", Not Active: "text-gray-700" -->
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-0">Edit</a>
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-1">Duplicate</a>
|
||||
</div>
|
||||
<div class="py-1" role="none">
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-2">Archive</a>
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-3">Move</a>
|
||||
</div>
|
||||
<div class="py-1" role="none">
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-4">Share</a>
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-5">Add to favorites</a>
|
||||
</div>
|
||||
<div class="py-1" role="none">
|
||||
<a href="#" class="text-gray-700 block px-4 py-2 text-sm" role="menuitem" tabindex="-1" id="menu-item-6">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dropdown menu with tailwindcss -->
|
||||
</div>
|
||||
<div>
|
||||
<% if (typeof user == "undefined") { %>
|
||||
<a href="/auth" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-blue-color hover:bg-white mt-4 lg:mt-0">Login</a>
|
||||
<% }else { %>
|
||||
<a href="/profile" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-blue-color hover:bg-white mt-4 lg:mt-0">Profile</a>
|
||||
<a href="/auth/logout" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-red-500 hover:border-transparent hover:text-blue-color hover:bg-white mt-4 lg:mt-0">Logout</a>
|
||||
|
||||
<% } %>
|
||||
|
||||
</div>
|
||||
<% if (typeof user == "undefined") { %>
|
||||
<a href="/auth" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-blue-color hover:bg-white mt-4 lg:mt-0">Login</a>
|
||||
<% }else { %>
|
||||
<a href="/profile" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-white hover:border-transparent hover:text-blue-color hover:bg-white mt-4 lg:mt-0">Profile</a>
|
||||
<a href="/auth/logout" class="inline-block text-sm px-4 py-2 leading-none border rounded text-white border-red-500 hover:border-transparent hover:text-blue-color hover:bg-white mt-4 lg:mt-0">Logout</a>
|
||||
<% } %>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
Reference in new issue
Block a user