Added bots & votes
This commit is contained in:
1 parent
c058ab2e55
commit
47dfdbd344
16 files changed
+798
-457
No files matched your search
Vendored
+5
-5
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"emmet.includeLanguages": {
|
"emmet.includeLanguages": {
|
||||||
"ejs": "html"
|
"ejs": "html",
|
||||||
|
},
|
||||||
|
"[html]": {
|
||||||
|
"editor.defaultFormatter": "j69.ejs-beautify"
|
||||||
},
|
},
|
||||||
"[html]": {
|
|
||||||
"editor.defaultFormatter": "vscode.html-language-features"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+4
-1
@@ -5,11 +5,14 @@ let hm = new mongoose.Schema({
|
|||||||
icon: String,
|
icon: String,
|
||||||
verified: Boolean,
|
verified: Boolean,
|
||||||
description: String,
|
description: String,
|
||||||
owner: String,
|
owners: [String],
|
||||||
long_description: String,
|
long_description: String,
|
||||||
banner: String,
|
banner: String,
|
||||||
tags: [String],
|
tags: [String],
|
||||||
premium: Boolean,
|
premium: Boolean,
|
||||||
|
servers: String,
|
||||||
|
users: String,
|
||||||
|
votes: Number,
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = mongoose.model("bots", hm);
|
module.exports = mongoose.model("bots", hm);
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
const mongoose = require("mongoose");
|
||||||
|
let model = new mongoose.Schema({
|
||||||
|
user: String,
|
||||||
|
date: Date,
|
||||||
|
bot: String,
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = mongoose.model("votes", model);
|
||||||
+13
-5
@@ -25,13 +25,13 @@ passport.deserializeUser(function (obj, done) {
|
|||||||
//import models
|
//import models
|
||||||
const Banned = require('../models/site-ban');
|
const Banned = require('../models/site-ban');
|
||||||
const bots = require('../models/bot');
|
const bots = require('../models/bot');
|
||||||
const server = require('../models/server');
|
const server = require('../models/server');
|
||||||
var scopes = ['identify', 'guilds', 'guilds.join'];
|
var scopes = ['identify', 'guilds', 'guilds.join'];
|
||||||
var prompt = 'consent'
|
var prompt = 'consent'
|
||||||
passport.use(new DiscordStrategy({
|
passport.use(new DiscordStrategy({
|
||||||
clientID: '934087523649609768',
|
clientID: '934087523649609768',
|
||||||
clientSecret: 'nPKjKvOCOyyhDaQM64qcJYbd6CdhCxLh',
|
clientSecret: 'nPKjKvOCOyyhDaQM64qcJYbd6CdhCxLh',
|
||||||
callbackURL: 'http://localhost:3000/auth/callback',
|
callbackURL: client.config.server.host + '/auth/callback',
|
||||||
scope: scopes,
|
scope: scopes,
|
||||||
prompt: prompt
|
prompt: prompt
|
||||||
},
|
},
|
||||||
@@ -110,6 +110,14 @@ app.get('/', async (req, res) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get('/bots', async (req, res) => {
|
||||||
|
var bot = await bots.find({});
|
||||||
|
res.render('bots', {
|
||||||
|
bots: bot,
|
||||||
|
user: req.user,
|
||||||
|
botscord: client
|
||||||
|
});
|
||||||
|
});
|
||||||
app.get("/robots.txt", function (req, res) {
|
app.get("/robots.txt", function (req, res) {
|
||||||
res.set('Content-Type', 'text/plain');
|
res.set('Content-Type', 'text/plain');
|
||||||
res.send(`Sitemap: https://botscord.xyz/sitemap.xml`);
|
res.send(`Sitemap: https://botscord.xyz/sitemap.xml`);
|
||||||
@@ -133,12 +141,12 @@ app.use((req, res, next) => {
|
|||||||
} else if (res.statusCode === 500) {
|
} else if (res.statusCode === 500) {
|
||||||
req.session.error = "Internal server error";
|
req.session.error = "Internal server error";
|
||||||
res.redirect('/');
|
res.redirect('/');
|
||||||
}else{
|
} else {
|
||||||
req.session.error = "Page not found";
|
req.session.error = "Page not found";
|
||||||
res.redirect('/');
|
res.redirect('/');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
app.listen(port, () => {
|
app.listen(client.config.server.port, () => {
|
||||||
console.log(colors.green("Website: "),'Your app is listening on port ' + port);
|
console.log(colors.green("Website: "), 'Your app is listening on port ' + port);
|
||||||
});
|
});
|
||||||
module.exports.client = client;
|
module.exports.client = client;
|
||||||
@@ -1061,6 +1061,9 @@ video {
|
|||||||
.overflow-hidden {
|
.overflow-hidden {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
.text-ellipsis {
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
.break-words {
|
.break-words {
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
}
|
}
|
||||||
@@ -1966,14 +1969,6 @@ body {
|
|||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sm\:flex {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sm\:grid {
|
|
||||||
display: grid;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sm\:min-h-min {
|
.sm\:min-h-min {
|
||||||
min-height: -webkit-min-content;
|
min-height: -webkit-min-content;
|
||||||
min-height: -moz-min-content;
|
min-height: -moz-min-content;
|
||||||
|
|||||||
@@ -1,19 +1,27 @@
|
|||||||
var express = require('express');
|
var express = require('express');
|
||||||
var index = require('./../../../index');
|
var config = require('./../../../index').config;
|
||||||
var router = express.Router();
|
var router = express.Router();
|
||||||
|
var bots = require('../../../models/bot');
|
||||||
router.get('/', function (req, res) {
|
var servers = require('../../../models/server');
|
||||||
|
var bans = require('../../../models/site-ban');
|
||||||
|
router.get('/', async function (req, res) {
|
||||||
if (req.user) {
|
if (req.user) {
|
||||||
if (index.config.users.verificator.includes(req.user.userid) || index.config.users.owner.includes(req.user.userid)) {
|
if (config.users.verificator.includes(req.user.userid) || config.users.owner.includes(req.user.userid)) {
|
||||||
|
const bot = await bots.find({});
|
||||||
|
const server = await servers.find({});
|
||||||
|
const ban = await bans.find({});
|
||||||
res.render('admin/index', {
|
res.render('admin/index', {
|
||||||
title: 'Admin',
|
user: req.user,
|
||||||
user: req.user
|
bots: bot,
|
||||||
|
servers: server,
|
||||||
|
bans: ban
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
res.redirect('/');
|
res.redirect('/');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
res.redirect('/auth?r=' + req.originalUrl);
|
req.session.backURL = req.originalUrl;
|
||||||
|
res.redirect('/auth');
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
var express = require('express'),
|
var express = require('express'),
|
||||||
router = express.Router();
|
router = express.Router();
|
||||||
var bots = require('../../../models/bot');
|
var bots = require('../../../models/bot');
|
||||||
|
var votes = require('../../../models/votes');
|
||||||
const client = require('../../index');
|
const client = require('../../index');
|
||||||
router.get('/', function () {
|
router.get('/', function () {
|
||||||
|
return res.redirect('/bots');
|
||||||
})
|
})
|
||||||
router.get('/add', function (req, res) {
|
router.get('/add', function (req, res) {
|
||||||
if (req.user) {
|
if (req.user) {
|
||||||
res.render('bot/add', {user: req.user});
|
res.render('bot/add', { user: req.user });
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
req.session.backURL = req.originalUrl;
|
req.session.backURL = req.originalUrl;
|
||||||
@@ -16,12 +18,23 @@ router.get('/add', function (req, res) {
|
|||||||
|
|
||||||
router.post('/add', function (req, res) {
|
router.post('/add', function (req, res) {
|
||||||
if (req.user) {
|
if (req.user) {
|
||||||
|
var checkbot = bots.findOne({ id: req.body.id });
|
||||||
|
if (checkbot) {
|
||||||
|
req.session.error = "Bot already exists";
|
||||||
|
res.redirect('/');
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var owners = new Array();
|
||||||
|
req.body.bot_owners.split(',').forEach(function (owner) {
|
||||||
|
owners.push(owner.trim());
|
||||||
|
})
|
||||||
|
owners.push(req.user.id);
|
||||||
var bot = new bots({
|
var bot = new bots({
|
||||||
id: req.body.bot_id,
|
id: req.body.bot_id,
|
||||||
name: req.body.bot_name,
|
name: req.body.bot_name,
|
||||||
verified: false,
|
verified: false,
|
||||||
long_description: req.body.bot_description,
|
long_description: req.body.bot_description,
|
||||||
owner: req.user.userid,
|
owners: owners,
|
||||||
description: req.body.bot_short,
|
description: req.body.bot_short,
|
||||||
tags: req.body.tags,
|
tags: req.body.tags,
|
||||||
});
|
});
|
||||||
@@ -36,14 +49,14 @@ router.post('/add', function (req, res) {
|
|||||||
res.redirect('/');
|
res.redirect('/');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}else {
|
} else {
|
||||||
req.session.backURL = req.originalUrl;
|
req.session.backURL = req.originalUrl;
|
||||||
res.redirect('/auth');
|
res.redirect('/auth');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:botID', function (req, res) {
|
router.get('/:botID', async function (req, res) {
|
||||||
bots.findOne({ id: req.params.botID }, function (err, bot) {
|
bots.findOne({ id: req.params.botID }, async function (err, bot) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
return res.redirect('/');
|
return res.redirect('/');
|
||||||
@@ -52,8 +65,113 @@ router.get('/:botID', function (req, res) {
|
|||||||
req.session.error = "No bot found";
|
req.session.error = "No bot found";
|
||||||
return res.redirect('/');
|
return res.redirect('/');
|
||||||
}
|
}
|
||||||
res.render('bot/index', {
|
let coowner = new Array()
|
||||||
bot: bot });
|
await bot.owners.forEach(async function (a) {
|
||||||
|
var b = await global.bsl.users.fetch(a)
|
||||||
|
coowner.push(b)
|
||||||
|
})
|
||||||
|
try {
|
||||||
|
var bota = await global.bsl.users.fetch(bot.id)
|
||||||
|
} catch (e) {
|
||||||
|
if (!bota) {
|
||||||
|
req.session.error = "No bot found";
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!bota) {
|
||||||
|
req.session.error = "No bot found";
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
res.render('bot/index', {
|
||||||
|
bot: bot,
|
||||||
|
user: req.user,
|
||||||
|
owners: coowner,
|
||||||
|
bota: bota
|
||||||
|
});
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
router.get('/:botID/vote', async function (req, res) {
|
||||||
|
if (!req.user) {
|
||||||
|
req.session.backURL = req.originalUrl;
|
||||||
|
res.redirect('/auth');
|
||||||
|
} else {
|
||||||
|
bots.findOne({ id: req.params.botID }, async function (err, bot) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
if (!bot) {
|
||||||
|
req.session.error = "No bot found";
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
// check if users has already voted for this bot
|
||||||
|
votes.findOne({ user: req.user.id, bot: bot.id }, function (err, vote) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
if (vote) {
|
||||||
|
if (vote.date > Date.now() - (1000 * 60 * 60 * 24)) {
|
||||||
|
req.session.error = "You can only vote once per day";
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
vote.date = Date.now();
|
||||||
|
vote.save(function (err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
if (bot.votes) {
|
||||||
|
bot.votes = 1;
|
||||||
|
} else {
|
||||||
|
bot.votes++;
|
||||||
|
}
|
||||||
|
bot.save(function (err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
req.session.error = "Something went wrong";
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
req.session.message = "Vote added";
|
||||||
|
return res.redirect('/');
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// add vote to database
|
||||||
|
var vote = new votes({
|
||||||
|
user: req.user.id,
|
||||||
|
date: new Date(),
|
||||||
|
bot: bot.id,
|
||||||
|
});
|
||||||
|
vote.save(function (err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
req.session.error = "Something went wrong";
|
||||||
|
return res.redirect('/');
|
||||||
|
} else {
|
||||||
|
if (bot.votes) {
|
||||||
|
bot.votes = 1;
|
||||||
|
} else {
|
||||||
|
bot.votes++;
|
||||||
|
}
|
||||||
|
bot.save(function (err) {
|
||||||
|
if (err) {
|
||||||
|
console.log(err);
|
||||||
|
req.session.error = "Something went wrong";
|
||||||
|
return res.redirect('/');
|
||||||
|
} else {
|
||||||
|
req.session.message = "Vote added";
|
||||||
|
return res.redirect('/');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
@@ -21,10 +21,13 @@
|
|||||||
<input type="text" name="bot_short" 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 />
|
<input type="text" name="bot_short" 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="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">Short Description (Will be show on home page)</label>
|
<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">Short Description (Will be show on home page)</label>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
|
<input type="text" name="bot_owners" 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="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">Owners (split with <strong>,</strong> ) (You are automatic included!)</label>
|
||||||
|
</div>
|
||||||
<!-- tags -->
|
<!-- tags -->
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
<select multiple name="tag" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required>
|
<select multiple name="tags" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required>
|
||||||
<option value="moderation">Moderation</option>
|
<option value="moderation">Moderation</option>
|
||||||
<option value="fun">Fun</option>
|
<option value="fun">Fun</option>
|
||||||
<option value="utility">Utility</option>
|
<option value="utility">Utility</option>
|
||||||
|
|||||||
@@ -1,2 +1,68 @@
|
|||||||
|
<%- include('../includes/header.ejs', { title: bot.name, bot: bot}) %>
|
||||||
|
<br><br><br><br>
|
||||||
|
<div class="flex space-x-4 py-2 lg:h-5/6 sm:min-h-min">
|
||||||
|
<div class="p-10 bg-blue-color w-2/3 text-white h-full m-4 mx-14">
|
||||||
|
<pre><br><%= bot.long_description %></pre>
|
||||||
|
</div>
|
||||||
|
<div class="bg-blue-color w-1/4 p-10 text-white h-full m-4 ">
|
||||||
|
<!-- bot avatar image -->
|
||||||
|
<img class="w-full rounded-full" src="<%= bot.icon %>" alt="<%= bot.name %>" onerror="this.src='https://cdn.discordapp.com/avatars/<%= bot.id %>/<%=bota.avatar %>.webp'">
|
||||||
|
<h1 class="text-3xl text-center">
|
||||||
|
<%= bot.name %>
|
||||||
|
</h1>
|
||||||
|
<a href="/bot/<%= bot.id %>/join" class="button float-right"><i class="fa fa-link"></i>
|
||||||
|
Invite</a>
|
||||||
|
<% if(user) {
|
||||||
|
bot.owners.forEach(a=>{
|
||||||
|
if(a.id == user.id) {
|
||||||
|
%>
|
||||||
|
<div class="h6 mt-4">
|
||||||
|
<i class="fa fa-user-crown"></i>Owner Options
|
||||||
|
</div>
|
||||||
|
<a href="/bot/<%= bot.id %>/edit" class="button float-right"><i class="fa fa-edit"></i>
|
||||||
|
Edit</a>
|
||||||
|
<%
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
<h6 class="text-xl mt-4">
|
||||||
|
<i class="fa fa-question-circle"></i> Information
|
||||||
|
</h6>
|
||||||
|
<% if(bot.users){ %>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-users"></i></div>
|
||||||
|
<p class="box-2">Members: <%= bot.users %></p>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<% if(bot.servers){ %>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-server"></i></div>
|
||||||
|
<p class="box-2">Servers: <%= bot.servers %></p>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-users"></i></div>
|
||||||
|
<p class="box-2">Votes: <%= bot.votes || 0 %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="h6 mt-4">
|
||||||
|
<i class="fa fa-crown"></i> Owners
|
||||||
|
</div>
|
||||||
|
<% owners.forEach(admin=>{
|
||||||
|
%>
|
||||||
|
<a style="text-decoration: none;margin-bottom: -5px;" href="/user/<%= admin.id %>" class="flex mt-1">
|
||||||
|
<div class="h-5 w-5 rounded-lg" style="background: url(<%= "https://cdn.discordapp.com/avatars/" + admin.id + "/" + admin.avatar + ".webp" || '../../img/undefined_avatar.png' %>) center center no-repeat; background-size: 100%;">
|
||||||
|
</div>
|
||||||
|
<p translate="no" class="box-2">
|
||||||
|
<%=admin.username %>
|
||||||
|
</p>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
|
||||||
<%- include('../includes/header.ejs', {title: 'Bot' }) %>
|
</div>
|
||||||
|
</div>
|
||||||
|
<br><br><br>
|
||||||
|
<%- include('../includes/footer.ejs') %>
|
||||||
Whitespace-only changes.
@@ -0,0 +1,162 @@
|
|||||||
|
<%- include("./includes/header.ejs") %>
|
||||||
|
<div class="promotedbots">
|
||||||
|
<% var nbots=bots.filter(a=> a.promoted == true)
|
||||||
|
nbots.forEach((val, key) => {
|
||||||
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
|
nbots[key] = nbots[randomIndex];
|
||||||
|
nbots[randomIndex] = val;
|
||||||
|
});
|
||||||
|
if(nbots.length > 0) { %>
|
||||||
|
<div class="mx-auto text-center">
|
||||||
|
<br>
|
||||||
|
<h2 class="text-xl text-white text-center"><i class="fa fa-bullhorn" aria-hidden="true"></i> Promoted Bots
|
||||||
|
</h2>
|
||||||
|
<p class="content text-white text-center" style="opacity:.6">These bots are featured on BotsCord!</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
|
<% } %>
|
||||||
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp" alt="<%= bot.name %>">
|
||||||
|
<div class="px-6 py-4 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes || 0 %>
|
||||||
|
<%if(bot.servers) { %><i class="fa fa-server"></i>: <%= bot.servers %>
|
||||||
|
<% } %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/bot/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/bot/<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#
|
||||||
|
<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="randombots">
|
||||||
|
<% var nbots=bots.filter(a=> a.verified == true)
|
||||||
|
nbots.forEach((val, key) => {
|
||||||
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
|
nbots[key] = nbots[randomIndex];
|
||||||
|
nbots[randomIndex] = val;
|
||||||
|
});
|
||||||
|
if(nbots.length > 0) { %>
|
||||||
|
<div class="mx-auto text-center">
|
||||||
|
<br>
|
||||||
|
<h2 class="text-xl text-white text-center"><i class="fa fa-shuffle" aria-hidden="true"></i> Random Bots
|
||||||
|
</h2>
|
||||||
|
<p class="content text-white text-center" style="opacity:.6">We rolled the dice and got this nice bots!</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
|
<% } %>
|
||||||
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp" alt="<%= bot.name %>">
|
||||||
|
<div class="px-6 py-4 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes || 0 %> <%if(bot.servers) { %><i class="fa fa-server"></i>: <%= bot.servers %><% } %></p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/bot/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/bot/<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#
|
||||||
|
<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="randombots">
|
||||||
|
<% var nbots=bots.filter(a=> a.verified == true)
|
||||||
|
nbots.forEach((val, key) => {
|
||||||
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
|
nbots[key] = nbots[randomIndex];
|
||||||
|
nbots[randomIndex] = val;
|
||||||
|
});
|
||||||
|
if(nbots.length > 0) { %>
|
||||||
|
<div class="mx-auto text-center">
|
||||||
|
<br>
|
||||||
|
<h2 class="text-xl text-white text-center"><i class="fa fa-check-to-slot" aria-hidden="true"></i> Best bots
|
||||||
|
</h2>
|
||||||
|
<p class="content text-white text-center" style="opacity:.6">Bots with highest votes!</p>
|
||||||
|
</div>
|
||||||
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
|
<% } %>
|
||||||
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp" alt="<%= bot.name %>">
|
||||||
|
<div class="px-6 py-4 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes || 0 %>
|
||||||
|
<%if(bot.servers) { %><i class="fa fa-server"></i>: <%= bot.servers %>
|
||||||
|
<% } %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/bot/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/bot/<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#
|
||||||
|
<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%- include('./includes/footer.ejs') %>
|
||||||
@@ -17,6 +17,25 @@
|
|||||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||||
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
|
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
|
||||||
|
<!-- meta -->
|
||||||
|
<meta name="description"
|
||||||
|
content="BotsCord is a Discord bot that allows you to create your own Discord bot and have it run on your server.">
|
||||||
|
<meta name="keywords" content="bots, bot, discord, botscord, botscord.xyz">
|
||||||
|
<% if(typeof server !="undefined" ) { %>
|
||||||
|
<meta property="og:title" content="BotsCord.xyz" />
|
||||||
|
<meta property="og:url" content="http://botscord.xyz/server/<%=server.id %>" />
|
||||||
|
<meta property="og:image" content="<%= server.icon %>" />
|
||||||
|
<meta property="og:description" content="<%= server.description %> Members: <%= server.members %>" />
|
||||||
|
<% } %>
|
||||||
|
<meta property="og:title" content="BotsCord.xyz" />
|
||||||
|
<meta property="og:type" content="website" />
|
||||||
|
<meta property="og:url" content="http://botscord.xyz" />
|
||||||
|
<meta property="og:image" content="http://botscord.xyz/img/logo.png" />
|
||||||
|
<meta property="og:description"
|
||||||
|
content="Botscord is a place where you can promote and vote for your favorite bot/server!" />
|
||||||
|
<meta name="theme-color" content="#FF0000">
|
||||||
|
<meta name="author" content="BotsCord">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="bg-primary-color">
|
<body class="bg-primary-color">
|
||||||
|
|||||||
+213
-242
@@ -1,274 +1,245 @@
|
|||||||
<%- include("./includes/header.ejs", { user:user }) %>
|
<%- include("./includes/header.ejs", { user:user }) %>
|
||||||
<div class="bg-blue-color bg-primary-color p-2 pl-10 pr-10" style="position: relative; top: 0px;">
|
<div class="bg-blue-color bg-primary-color p-2 pl-10 pr-10" style="position: relative; top: 0px;">
|
||||||
<div class="container-sm mx-auto px-3 mb-5 mt-1 h-fit p-1">
|
<div class="container-sm mx-auto px-3 mb-5 mt-1 h-fit p-1">
|
||||||
<div class="mb-3 mx-auto h-fit">
|
<div class="mb-3 mx-auto h-fit">
|
||||||
<span style="float: right; margin-right: 10%;" class="logo">
|
<span style="float: right; margin-right: 10%;" class="logo">
|
||||||
<img draggable="false" title="botscord.site" src="/img/logo.png" width="320"
|
<img draggable="false" title="botscord.site" src="/img/logo.png" width="320" alt="Discord Bots | Discord Bot List">
|
||||||
alt="Discord Bots | Discord Bot List">
|
</span>
|
||||||
</span>
|
<br><br>
|
||||||
<br><br>
|
<h1 class="text-xl" style="font-weight:800;color:#fff">BotsCord</h1>
|
||||||
<h1 class="text-xl" style="font-weight:800;color:#fff">BotsCord</h1>
|
<p class="content" style="opacity:.6;color:#fff">Find the best Discord Bots for your server with BotsCord!</p>
|
||||||
<p class="content" style="opacity:.6;color:#fff">Find the best Discord Bots for your server with BotsCord!</p>
|
<br>
|
||||||
<br>
|
<form class="flex items-center ">
|
||||||
<form class="flex items-center ">
|
<label for="simple-search" class="sr-only">Search</label>
|
||||||
<label for="simple-search" class="sr-only">Search</label>
|
<div class="relative w-3/6">
|
||||||
<div class="relative w-3/6">
|
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
|
||||||
<div class="flex absolute inset-y-0 left-0 items-center pl-3 pointer-events-none">
|
<svg aria-hidden="true" class="w-5 h-5 text-primary-color dark:text-primary-color" fill="currentColor" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
||||||
<svg aria-hidden="true" class="w-5 h-5 text-primary-color dark:text-primary-color" fill="currentColor"
|
<path fill-rule="evenodd" d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z" clip-rule="evenodd"></path>
|
||||||
viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path fill-rule="evenodd"
|
|
||||||
d="M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z"
|
|
||||||
clip-rule="evenodd"></path>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<input type="text" id="simple-search"
|
|
||||||
class="bg-primary-color border border-gray-300 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-primary-color dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
|
||||||
placeholder="Search" required>
|
|
||||||
</div>
|
|
||||||
<button type="submit"
|
|
||||||
class="p-2.5 ml-2 text-sm font-medium text-white bg-button-primary rounded-lg border border-button-primary hover:bg-button-primary focus:ring-4 focus:outline-none focus:ring-blue-300 dark:bg-button-primary dark:hover:bg-button-primary dark:focus:ring-blue-800"
|
|
||||||
style="max-width:80%">
|
|
||||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"
|
|
||||||
xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
|
|
||||||
d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
|
||||||
</svg>
|
</svg>
|
||||||
<span class="sr-only">Search</span>
|
</div>
|
||||||
</button>
|
<input type="text" id="simple-search" class="bg-primary-color border border-gray-300 text-white text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full pl-10 p-2.5 dark:bg-primary-color dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="Search" required>
|
||||||
</form>
|
</div>
|
||||||
<a title="BotsCord" href="/tag/Moderation"
|
<button type="submit" class="p-2.5 ml-2 text-sm font-medium text-white bg-button-primary rounded-lg border border-button-primary hover:bg-button-primary focus:ring-4 focus:outline-none focus:ring-blue-300 dark:bg-button-primary dark:hover:bg-button-primary dark:focus:ring-blue-800" style="max-width:80%">
|
||||||
class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i
|
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||||
class="fa fa-magic"></i> Moderation</a>
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path>
|
||||||
<a title="BotsCord" href="/tag/Fun"
|
</svg>
|
||||||
class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i
|
<span class="sr-only">Search</span>
|
||||||
class="fa fa-smile"></i> Fun</a>
|
</button>
|
||||||
<a title="BotsCord" href="/tag/Moderation"
|
</form>
|
||||||
class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i
|
<a title="BotsCord" href="/tag/Moderation" class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i class="fa fa-magic"></i> Moderation</a>
|
||||||
class="fa fa-file"></i> Logging</a>
|
<a title="BotsCord" href="/tag/Fun" class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i class="fa fa-smile"></i> Fun</a>
|
||||||
<a title="BotsCord" href="/tag/Utility"
|
<a title="BotsCord" href="/tag/Moderation" class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i class="fa fa-file"></i> Logging</a>
|
||||||
class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i
|
<a title="BotsCord" href="/tag/Utility" class="text-white bg-button-primary hover:bg-button-primary focus:ring-4 focus:ring-blue-300 font-bold rounded-lg text-sm px-2 py-2 mb-2 dark:bg-button-primary dark:hover:bg-button-primary focus:outline-none dark:focus:ring-button-primary underline hover:no-underline"><i class="fa fa-cogs"></i> Utility</a>
|
||||||
class="fa fa-cogs"></i> Utility</a>
|
<br><br><br><br>
|
||||||
<br><br><br><br>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- bots section -->
|
</div>
|
||||||
<div class="promotedbots">
|
<!-- bots section -->
|
||||||
<% var nbots=bots.filter(a=> a.promoted == true)
|
<div class="promotedbots">
|
||||||
|
<% var nbots=bots.filter(a=> a.promoted == true)
|
||||||
nbots.forEach((val, key) => {
|
nbots.forEach((val, key) => {
|
||||||
randomIndex = Math.ceil(Math.random()*(key + 1));
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
nbots[key] = nbots[randomIndex];
|
nbots[key] = nbots[randomIndex];
|
||||||
nbots[randomIndex] = val;
|
nbots[randomIndex] = val;
|
||||||
});
|
});
|
||||||
if(nbots.length > 0) { %>
|
if(nbots.length > 0) { %>
|
||||||
<div class="mx-auto text-center">
|
<div class="mx-auto text-center">
|
||||||
<br>
|
<br>
|
||||||
<h2 class="text-xl text-white text-center"><i class="fa fa-bullhorn" aria-hidden="true"></i> Promoted Bots
|
<h2 class="text-xl text-white text-center"><i class="fa fa-bullhorn" aria-hidden="true"></i> Promoted Bots
|
||||||
</h2>
|
</h2>
|
||||||
<p class="content text-white text-center" style="opacity:.6">These bots are featured on BotsCord!</p>
|
<p class="content text-white text-center" style="opacity:.6">These bots are featured on BotsCord!</p>
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
|
||||||
<% } %>
|
|
||||||
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
|
||||||
<div
|
|
||||||
class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
|
||||||
<img class="w-full rounded-full"
|
|
||||||
src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp"
|
|
||||||
alt="<%= bot.name %>">
|
|
||||||
<div class="px-6 py-4">
|
|
||||||
<div class="font-bold text-xl mb-2 text-white">
|
|
||||||
<%= bot.name %>
|
|
||||||
</div>
|
|
||||||
<p class="text-white text-base">
|
|
||||||
<%= bot.description %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<a href="/bot/<%= bot.id %>"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-eye" aria-hidden="true"></i> View
|
|
||||||
</a>
|
|
||||||
<a href="/bot/<%= bot.id %>/invite"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<% if(bot.tags) {%>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<% bot.tags.forEach(tag=>{ %>
|
|
||||||
<a href="/tag/<%= tag %>"
|
|
||||||
class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
|
||||||
</a>
|
|
||||||
<% }) %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="randombots">
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
<% var nbots=bots.filter(a=> a.verified == true)
|
<% } %>
|
||||||
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp" alt="<%= bot.name %>">
|
||||||
|
<div class="px-6 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes || 0 %> <%if(bot.servers) { %><i class="fa fa-server"></i>: <%= bot.servers %><% } %></p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/bot/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/bot/<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="randombots">
|
||||||
|
<% var nbots=bots.filter(a=> a.verified == true)
|
||||||
nbots.forEach((val, key) => {
|
nbots.forEach((val, key) => {
|
||||||
randomIndex = Math.ceil(Math.random()*(key + 1));
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
nbots[key] = nbots[randomIndex];
|
nbots[key] = nbots[randomIndex];
|
||||||
nbots[randomIndex] = val;
|
nbots[randomIndex] = val;
|
||||||
});
|
});
|
||||||
if(nbots.length > 0) { %>
|
if(nbots.length > 0) { %>
|
||||||
<div class="mx-auto text-center">
|
<div class="mx-auto text-center">
|
||||||
<br>
|
<br>
|
||||||
<h2 class="text-xl text-white text-center"><i class="fa fa-shuffle" aria-hidden="true"></i> Random Bots
|
<h2 class="text-xl text-white text-center"><i class="fa fa-shuffle" aria-hidden="true"></i> Random Bots
|
||||||
</h2>
|
</h2>
|
||||||
<p class="content text-white text-center" style="opacity:.6">We rolled the dice and got this nice bots!</p>
|
<p class="content text-white text-center" style="opacity:.6">We rolled the dice and got this nice bots!</p>
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
|
||||||
<% } %>
|
|
||||||
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
|
||||||
<div
|
|
||||||
class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
|
||||||
<img class="w-full rounded-full"
|
|
||||||
src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp"
|
|
||||||
alt="<%= bot.name %>">
|
|
||||||
<div class="px-6 py-4">
|
|
||||||
<div class="font-bold text-xl mb-2 text-white">
|
|
||||||
<%= bot.name %>
|
|
||||||
</div>
|
|
||||||
<p class="text-white text-base">
|
|
||||||
<%= bot.description %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<a href="/bot/<%= bot.id %>"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-eye" aria-hidden="true"></i> View
|
|
||||||
</a>
|
|
||||||
<a href="/bot/<%= bot.id %>/invite"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<% if(bot.tags) {%>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<% bot.tags.forEach(tag=>{ %>
|
|
||||||
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
|
||||||
</a>
|
|
||||||
<% }) %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
<% } } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- server section -->
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
<div class="promotedservers">
|
<% } %>
|
||||||
<% var nbots=servers.filter(a=> a.promoted == true)
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp" alt="<%= bot.name %>">
|
||||||
|
<div class="px-6 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes || 0 %> <%if(bot.servers) { %><i class="fa fa-server"></i>: <%= bot.servers %><% } %></p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/bot/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/bot/<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="promotedservers">
|
||||||
|
<% var nbots=servers.filter(a=> a.promoted == true)
|
||||||
nbots.forEach((val, key) => {
|
nbots.forEach((val, key) => {
|
||||||
randomIndex = Math.ceil(Math.random()*(key + 1));
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
nbots[key] = nbots[randomIndex];
|
nbots[key] = nbots[randomIndex];
|
||||||
nbots[randomIndex] = val;
|
nbots[randomIndex] = val;
|
||||||
});
|
});
|
||||||
if(nbots.length > 0) { %>
|
if(nbots.length > 0) { %>
|
||||||
<div class="mx-auto text-center">
|
<div class="mx-auto text-center">
|
||||||
<br>
|
<br>
|
||||||
<h2 class="text-xl text-white text-center"><i class="fa fa-bullhorn" aria-hidden="true"></i> Promoted Servers
|
<h2 class="text-xl text-white text-center"><i class="fa fa-bullhorn" aria-hidden="true"></i> Promoted Servers
|
||||||
</h2>
|
</h2>
|
||||||
<p class="content text-white text-center" style="opacity:.6">These servers are featured on BotsCord!</p>
|
<p class="content text-white text-center" style="opacity:.6">These servers are featured on BotsCord!</p>
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
|
||||||
<% } %>
|
|
||||||
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
|
||||||
<div
|
|
||||||
class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
|
||||||
<img class="w-full rounded-full"
|
|
||||||
src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp"
|
|
||||||
alt="<%= bot.name %>">
|
|
||||||
<div class="px-6 py-4">
|
|
||||||
<div class="font-bold text-xl mb-2 text-white">
|
|
||||||
<%= bot.name %>
|
|
||||||
</div>
|
|
||||||
<p class="text-white text-base">
|
|
||||||
<%= bot.description %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<a href="/server/<%= bot.id %>"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-eye" aria-hidden="true"></i> View
|
|
||||||
</a>
|
|
||||||
<a href="/server/<%= bot.id %>/invite"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<% if(bot.tags) {%>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<% bot.tags.forEach(tag=>{ %>
|
|
||||||
<a href="/tag/<%= tag %>"
|
|
||||||
class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
|
||||||
</a>
|
|
||||||
<% }) %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="randomservers">
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
<% var nbots=servers
|
<% } %>
|
||||||
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="https://cdn.discordapp.com/avatars/860390761307439114/2845a42b0c7868c3db29ea1996e84320.webp" alt="<%= bot.name %>">
|
||||||
|
<div class="px-6 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes || 0 %> <%if(bot.members) { %><i class="fa fa-user"></i>: <%= bot.members %><% } %></p>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/server/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/server/<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Join
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="randomservers">
|
||||||
|
<% var nbots=servers
|
||||||
nbots.forEach((val, key) => {
|
nbots.forEach((val, key) => {
|
||||||
randomIndex = Math.ceil(Math.random()*(key + 1));
|
randomIndex = Math.ceil(Math.random()*(key + 1));
|
||||||
nbots[key] = nbots[randomIndex];
|
nbots[key] = nbots[randomIndex];
|
||||||
nbots[randomIndex] = val;
|
nbots[randomIndex] = val;
|
||||||
});
|
});
|
||||||
if(nbots.length > 0) { %>
|
if(nbots.length > 0) { %>
|
||||||
<div class="mx-auto text-center">
|
<div class="mx-auto text-center">
|
||||||
<br>
|
<br>
|
||||||
<h2 class="text-xl text-white text-center"><i class="fa fa-shuffle" aria-hidden="true"></i> Random Servers
|
<h2 class="text-xl text-white text-center"><i class="fa fa-shuffle" aria-hidden="true"></i> Random Servers
|
||||||
</h2>
|
</h2>
|
||||||
<p class="content text-white text-center" style="opacity:.6">We rolled the dice and got this nice Servers!</p>
|
<p class="content text-white text-center" style="opacity:.6">We rolled the dice and got this nice Servers!</p>
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
|
||||||
<% } %>
|
|
||||||
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
|
||||||
<div
|
|
||||||
class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
|
||||||
<img class="w-full rounded-full"
|
|
||||||
src="<% bot.icon %> " onerror="this.src='/img/logo.png'"
|
|
||||||
alt="<%= bot.name %>">
|
|
||||||
<div class="px-6 py-4">
|
|
||||||
<div class="font-bold text-xl mb-2 text-white">
|
|
||||||
<%= bot.name %>
|
|
||||||
</div>
|
|
||||||
<p class="text-white text-base">
|
|
||||||
<%= bot.description %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<a href="/server/<%= bot.id %>"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
|
||||||
<i class="fa fa-eye" aria-hidden="true"></i> View
|
|
||||||
</a>
|
|
||||||
<a href="/server<%= bot.id %>/invite"
|
|
||||||
class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2" data-toggle="tooltip" title="Join the server" data-placement="top">
|
|
||||||
<i class="fa fa-link" aria-hidden="true"></i> Invite
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<% if(bot.tags) {%>
|
|
||||||
<div class="px-6 pt-4 pb-2">
|
|
||||||
<% bot.tags.forEach(tag=>{ %>
|
|
||||||
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
|
||||||
</a>
|
|
||||||
<% }) %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
<% } %>
|
|
||||||
<% } %>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<%- include("./includes/footer.ejs") %>
|
<div class="grid columns items-center content-center justify-center grid-cols-1 gap-4 col-auto sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-5 m-8">
|
||||||
|
<% } %>
|
||||||
|
<% for(let i=0; i < nbots.length; i++) { if (i===3) break; var bot=nbots[i]; if(bot) { %>
|
||||||
|
<div class="transition-shadow ease-in-out duration-300 hover:shadow-blue-900 shadow-2xl rounded-lg max-w-sm bg-blue-color ">
|
||||||
|
<img class="w-full rounded-full" src="<% bot.icon %> " onerror="this.src='/img/logo.png'" alt="<%= bot.name %>">
|
||||||
|
<% if (bot.votes || bot.members){ %>
|
||||||
|
<div class="px-6 text-white text-base">
|
||||||
|
<p><i class="fa-solid fa-check-to-slot"></i>: <%= bot.votes %> <i class="fa fa-user"></i>: <%= bot.members %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
<div class="font-bold text-xl mb-2 text-white">
|
||||||
|
<%= bot.name %>
|
||||||
|
</div>
|
||||||
|
<p class="text-white text-base">
|
||||||
|
<%= bot.description %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<a href="/server/<%= bot.id %>" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">
|
||||||
|
<i class="fa fa-eye" aria-hidden="true"></i> View
|
||||||
|
</a>
|
||||||
|
<a href="/server<%= bot.id %>/invite" class="inline-block bg-blue-700 rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2" data-toggle="tooltip" title="Join the server" data-placement="top">
|
||||||
|
<i class="fa fa-link" aria-hidden="true"></i> Join
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<% if(bot.tags) {%>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
<% bot.tags.forEach(tag=>{ %>
|
||||||
|
<a href="/tag/<%= tag %>" class="inline-block bg-button-primary rounded-full px-3 py-1 text-sm font-semibold text-white mr-2 mb-2">#<%= tag %>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<%- include("./includes/footer.ejs") %>
|
||||||
@@ -1,67 +1,53 @@
|
|||||||
<!-- add servers for the website -->
|
<!-- add servers for the website -->
|
||||||
<%- include('../includes/header.ejs', {title: 'Add server' }) %>
|
<%- include('../includes/header.ejs', {title: 'Add server' }) %>
|
||||||
<!-- create form -->
|
<!-- create form -->
|
||||||
<div class="container-sm p-10">
|
<div class="container-sm p-10">
|
||||||
<form method="post" action="">
|
<form method="post" action="">
|
||||||
<div class="grid md:grid-cols-2 md:gap-6">
|
<div class="grid md:grid-cols-2 md:gap-6">
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
|
||||||
<select name="serverid"
|
|
||||||
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
|
||||||
required>
|
|
||||||
<% for (var i=0; i < user.guilds.length; i++) { %>
|
|
||||||
<option value="<%= user.guilds[i].id %>">
|
|
||||||
<%= user.guilds[i].name %>
|
|
||||||
</option>
|
|
||||||
<% } %>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
|
||||||
<input type="text" name="server_invite" 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">Server
|
|
||||||
ID</label>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
<textarea type="text" name="server_description" id="server_name"
|
<select name="serverid" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required>
|
||||||
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"
|
<% for (var i=0; i < user.guilds.length; i++) { %>
|
||||||
placeholder=" " required rows="5"></textarea>
|
<option value="<%= user.guilds[i].id %>">
|
||||||
<label for="server_name"
|
<%= user.guilds[i].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">Server
|
</option>
|
||||||
description (MarkDown supported!)</label>
|
<% } %>
|
||||||
</div>
|
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
|
||||||
<input type="text" name="server_short" 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="server_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">Short
|
|
||||||
Description (Will be show on home page)</label>
|
|
||||||
</div>
|
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
|
||||||
<select multiple name="tags"
|
|
||||||
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
|
||||||
required>
|
|
||||||
<option value="development">Development</option>
|
|
||||||
<option value="fun">Fun</option>
|
|
||||||
<option value="media">Media</option>
|
|
||||||
<option value="company">Company</option>
|
|
||||||
<option value="game">Game</option>
|
|
||||||
<option value="emoji">Emoji</option>
|
|
||||||
<option value="botlist">Bot List</option>
|
|
||||||
<option value="serverlist">Server List</option>
|
|
||||||
<option value="turkish">Turkish</option>
|
|
||||||
<option value="support">Support</option>
|
|
||||||
<option value="sound">Sound</option>
|
|
||||||
<option value="chatting">Chatting</option>
|
|
||||||
<option value="nsfw">NSFW</option>
|
|
||||||
<option value="challange">Challange</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit"
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
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>
|
<input type="text" name="server_invite" 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 />
|
||||||
</form>
|
<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">Server
|
||||||
</div>
|
ID</label>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
|
<textarea type="text" name="server_description" id="server_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="server_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">Server
|
||||||
|
description (MarkDown supported!)</label>
|
||||||
|
</div>
|
||||||
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
|
<input type="text" name="server_short" 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="server_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">Short
|
||||||
|
Description (Will be show on home page)</label>
|
||||||
|
</div>
|
||||||
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
|
<select multiple name="tags" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required>
|
||||||
|
<option value="development">Development</option>
|
||||||
|
<option value="fun">Fun</option>
|
||||||
|
<option value="media">Media</option>
|
||||||
|
<option value="company">Company</option>
|
||||||
|
<option value="game">Game</option>
|
||||||
|
<option value="emoji">Emoji</option>
|
||||||
|
<option value="botlist">Bot List</option>
|
||||||
|
<option value="serverlist">Server List</option>
|
||||||
|
<option value="turkish">Turkish</option>
|
||||||
|
<option value="support">Support</option>
|
||||||
|
<option value="sound">Sound</option>
|
||||||
|
<option value="chatting">Chatting</option>
|
||||||
|
<option value="nsfw">NSFW</option>
|
||||||
|
<option value="challange">Challange</option>
|
||||||
|
</select>
|
||||||
|
</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>
|
||||||
@@ -1,44 +1,35 @@
|
|||||||
<%- include("../includes/header.ejs", {title: "Edit " + server.name}) %>
|
<%- include("../includes/header.ejs", {title: "Edit " + server.name}) %>
|
||||||
<!-- create form -->
|
<!-- create form -->
|
||||||
<div class="container-sm p-10">
|
<div class="container-sm p-10">
|
||||||
<form method="post" action="">
|
<form method="post" action="">
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
<textarea type="text" name="server_description" id="server_name"
|
<textarea type="text" name="server_description" id="server_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"><%= server.long_description %></textarea>
|
||||||
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"
|
<label for="server_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">Server
|
||||||
placeholder=" " required rows="5"><%= server.long_description %></textarea>
|
description (MarkDown supported!)</label>
|
||||||
<label for="server_name"
|
</div>
|
||||||
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">Server
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
description (MarkDown supported!)</label>
|
<input type="text" name="server_short" 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 value="<%= server.description %>" />
|
||||||
</div>
|
<label for="server_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">Short
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
Description (Will be show on home page)</label>
|
||||||
<input type="text" name="server_short" id="floating_last_name"
|
</div>
|
||||||
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"
|
<div class="relative z-0 mb-6 w-full group">
|
||||||
placeholder=" " required value="<%= server.description %>"/>
|
<select multiple name="tags" class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" required>
|
||||||
<label for="server_name"
|
<option value="development">Development</option>
|
||||||
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">Short
|
<option value="fun">Fun</option>
|
||||||
Description (Will be show on home page)</label>
|
<option value="media">Media</option>
|
||||||
</div>
|
<option value="company">Company</option>
|
||||||
<div class="relative z-0 mb-6 w-full group">
|
<option value="game">Game</option>
|
||||||
<select multiple name="tags"
|
<option value="emoji">Emoji</option>
|
||||||
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
|
<option value="botlist">Bot List</option>
|
||||||
required>
|
<option value="serverlist">Server List</option>
|
||||||
<option value="development">Development</option>
|
<option value="turkish">Turkish</option>
|
||||||
<option value="fun">Fun</option>
|
<option value="support">Support</option>
|
||||||
<option value="media">Media</option>
|
<option value="sound">Sound</option>
|
||||||
<option value="company">Company</option>
|
<option value="chatting">Chatting</option>
|
||||||
<option value="game">Game</option>
|
<option value="nsfw">NSFW</option>
|
||||||
<option value="emoji">Emoji</option>
|
<option value="challange">Challange</option>
|
||||||
<option value="botlist">Bot List</option>
|
</select>
|
||||||
<option value="serverlist">Server List</option>
|
</div>
|
||||||
<option value="turkish">Turkish</option>
|
<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">Update</button>
|
||||||
<option value="support">Support</option>
|
</form>
|
||||||
<option value="sound">Sound</option>
|
</div>
|
||||||
<option value="chatting">Chatting</option>
|
|
||||||
<option value="nsfw">NSFW</option>
|
|
||||||
<option value="challange">Challange</option>
|
|
||||||
</select>
|
|
||||||
</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">Update</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
@@ -1,80 +1,83 @@
|
|||||||
<%- include('../includes/header.ejs', { title: server.name}) %>
|
<%- include('../includes/header.ejs', { title: server.name, server: server}) %>
|
||||||
<br><br><br><br>
|
<br><br><br><br>
|
||||||
<div class="flex space-x-4 py-2 lg:h-5/6 sm:min-h-min">
|
<div class="flex space-x-4 py-2 lg:h-5/6 sm:min-h-min">
|
||||||
<div class="p-10 bg-blue-color w-2/3 text-white h-full m-4 mx-14">
|
<div class="p-10 bg-blue-color w-2/3 text-white h-full m-4 mx-14">
|
||||||
<%= server.long_description %>
|
<pre><br><%= server.long_description %></pre>
|
||||||
</div>
|
</div>
|
||||||
<div class="bg-blue-color w-1/4 p-10 text-white h-full m-4 ">
|
<div class="bg-blue-color w-1/4 p-10 text-white h-full m-4 ">
|
||||||
<h1 class="text-3xl">
|
<% console.log(serverr) %>
|
||||||
<%= server.name %>
|
<img class="w-full rounded-full" src="<%= serverr.icon %>" alt="<%= server.name %>" onerror="this.src='/img/logo.png'">
|
||||||
</h1>
|
<h1 class="text-3xl">
|
||||||
<a href="/server/<%= server.id %>/join" class="button float-right"><i class="fa fa-link"></i>
|
<%= server.name %>
|
||||||
Join</a>
|
</h1>
|
||||||
<% if(user) { if(serverr.members.cache.get(user.id)) {
|
<a href="/server/<%= server.id %>/join" class="button float-right"><i class="fa fa-link"></i>
|
||||||
|
Join</a>
|
||||||
|
<% if(user) { if(serverr.members.cache.get(user.id)) {
|
||||||
if(serverr.members.cache.get(user.id).permissions.has('ADMINISTRATOR')) { %>
|
if(serverr.members.cache.get(user.id).permissions.has('ADMINISTRATOR')) { %>
|
||||||
<div class="h6 mt-4">
|
<div class="h6 mt-4">
|
||||||
<i class="fa fa-user-crown"></i>Owner Options
|
<i class="fa user-crown"></i>Owner Options
|
||||||
</div>
|
|
||||||
<a href="/server/<%= server.id %>/edit" class="mt-1">
|
|
||||||
<div class="box-2-p"><i class="mt-1 fa fa-pencil"></i></div>
|
|
||||||
<p class="box-2">Edit Server</p>
|
|
||||||
</a>
|
|
||||||
<% } } } %>
|
|
||||||
<h6 class="text-xl mt-4">
|
|
||||||
<i class="fa fa-question-circle"></i>
|
|
||||||
<p>Information</p>
|
|
||||||
</h6>
|
|
||||||
<div class="mt-1">
|
|
||||||
<div class="box-2-p"><i class="mt-1 fa fa-users"></i></div>
|
|
||||||
<p class="box-2">Members: <%= serverr.memberCount.toLocaleString().replace(',', '.' ) %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="mt-1">
|
|
||||||
<div class="box-2-p"><i class="mt-1 fa fa-robot"></i></div>
|
|
||||||
<p class="box-2">Bots: <%= serverr.members.cache.filter(a=> a.user.bot).size %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="mt-1">
|
|
||||||
<div class="box-2-p"><i class="mt-1 fa fa-icons"></i></div>
|
|
||||||
<p class="box-2">Emoji: <%= serverr.emojis.cache.size || "0" %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="mt-1">
|
|
||||||
<div class="box-2-p"><i class="mt-1 fa fa-user"></i></div>
|
|
||||||
<p class="box-2">Role Count: <%= serverr.roles.cache.size || "0" %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="mt-1">
|
|
||||||
<div class="box-2-p"><i class="mt-1 fa fa-diamond"></i></div>
|
|
||||||
<p class="box-2">Boost Level: <%= serverr.premiumTier || "0" %>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
<div class="h6 mt-4">
|
|
||||||
<i class="fa fa-user-crown"></i> Owners
|
|
||||||
</div>
|
|
||||||
<% serverr.members.cache.filter(a=> !a.user.bot && a.permissions.has('ADMINISTRATOR')).map(admin =>{
|
|
||||||
%>
|
|
||||||
<a style="text-decoration: none;margin-bottom: -5px;" href="/user/<%= admin.user.id %>"
|
|
||||||
class="flex mt-1">
|
|
||||||
<div class="h-5 w-5 rounded-lg"
|
|
||||||
style="background: url(<%= admin.user.avatarURL({dynamic:true}) || '../../img/undefined_avatar.png' %>) center center no-repeat; background-size: 100%;">
|
|
||||||
</div>
|
|
||||||
<p translate="no" class="box-2">
|
|
||||||
<%= admin.user.tag %>
|
|
||||||
<% if(admin.user.id===serverr.ownerID) { %>
|
|
||||||
<span data-toggle="tooltip" title="Join the server"><i
|
|
||||||
class="fa fa-crown has-text-warning"></i></span>
|
|
||||||
<% } %>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<% }) %>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<br><br><br>
|
<a href="/server/<%= server.id %>/edit" class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-pencil"></i></div>
|
||||||
|
<p class="box-2">Edit Server</p>
|
||||||
|
</a>
|
||||||
|
<% } } } %>
|
||||||
|
<h6 class="text-xl mt-4">
|
||||||
|
<i class="fa fa-question-circle"></i> Information
|
||||||
|
</h6>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-users"></i></div>
|
||||||
|
<p class="box-2">Votes: <%= bot.votes || 0 %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-users"></i></div>
|
||||||
|
<p class="box-2">Members: <%= serverr.memberCount.toLocaleString().replace(',', '.' ) %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-robot"></i></div>
|
||||||
|
<p class="box-2">Bots: <%= serverr.members.cache.filter(a=> a.user.bot).size %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-icons"></i></div>
|
||||||
|
<p class="box-2">Emoji: <%= serverr.emojis.cache.size || "0" %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-user"></i></div>
|
||||||
|
<p class="box-2">Role Count: <%= serverr.roles.cache.size || "0" %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="mt-1">
|
||||||
|
<div class="box-2-p"><i class="mt-1 fa fa-diamond"></i></div>
|
||||||
|
<p class="box-2">Boost Level: <%= serverr.premiumTier || "0" %>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="h6 mt-4">
|
||||||
|
<i class="fa fa-crown"></i> Owners
|
||||||
|
</div>
|
||||||
|
<% serverr.members.cache.filter(a=> !a.user.bot && a.permissions.has('ADMINISTRATOR')).map(admin =>{
|
||||||
|
%>
|
||||||
|
<a style="text-decoration: none;margin-bottom: -5px;" href="/user/<%= admin.user.id %>" class="flex mt-1">
|
||||||
|
<div class="h-5 w-5 rounded-lg" style="background: url(<%= admin.user.avatarURL({dynamic:true}) || '../../img/undefined_avatar.png' %>) center center no-repeat; background-size: 100%;">
|
||||||
|
</div>
|
||||||
|
<p translate="no" class="box-2">
|
||||||
|
<%= admin.user.tag %>
|
||||||
|
<% if(admin.user.id===serverr.ownerID) { %>
|
||||||
|
<span data-toggle="tooltip" title="Join the server"><i class="fa fa-crown has-text-warning"></i></span>
|
||||||
|
<% } %>
|
||||||
|
</p>
|
||||||
|
</a>
|
||||||
|
<% }) %>
|
||||||
|
|
||||||
<%- include('../includes/footer.ejs') %>
|
</div>
|
||||||
<!-- <% /*, meta: {
|
</div>
|
||||||
|
<br><br><br>
|
||||||
|
|
||||||
|
<%- include('../includes/footer.ejs') %>
|
||||||
|
<!-- <% /*, meta: {
|
||||||
site_name: 'Powered by Botscord',
|
site_name: 'Powered by Botscord',
|
||||||
description: server.description + "🟢" + global.bsl.guilds.cache.get(server.id).members.cache.filter(a => a.presence.status != 'dnd').size + "online ⚫" +global.bsl.guilds.cache.get(server.id).memberCount + "members",
|
description: server.description + "🟢" + global.bsl.guilds.cache.get(server.id).members.cache.filter(a => a.presence.status != 'dnd').size + "online ⚫" +global.bsl.guilds.cache.get(server.id).memberCount + "members",
|
||||||
image: server.icon
|
image: server.icon
|
||||||
|
|||||||
Reference in new issue
Block a user