Skip to content

Commit

Permalink
Add website
Browse files Browse the repository at this point in the history
  • Loading branch information
deepsarda committed Sep 8, 2023
1 parent c77ab77 commit bb5c1d6
Show file tree
Hide file tree
Showing 20 changed files with 3,913 additions and 869 deletions.
9 changes: 7 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
"discord.js": "^14.11.0",
"discordx": "^11.7.6",
"dotenv": "^16.3.1",
"ejs": "^3.1.9",
"express": "^4.18.2",
"figlet": "^1.6.0",
"hmfull": "^2.4.3",
"leo-profanity": "^1.7.0",
Expand All @@ -39,21 +41,24 @@
"voucher-code-generator": "^1.3.0"
},
"devDependencies": {
"@types/express": "^4.17.17",
"@types/figlet": "^1.5.6",
"@types/leo-profanity": "^1.5.0",
"@types/node": "^18.16.19",
"@types/node": "^18.17.14",
"@types/uniqid": "^5.3.2",
"@types/voucher-code-generator": "^1.1.1",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"eslint": "^8.48.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-require-extensions": "^0.1.3",
"eslint-plugin-unused-imports": "^2.0.0",
"nodemon": "^2.0.22",
"prettier": "^2.8.8",
"ts-node": "^10.9.1",
"typescript": "4.9.5"
"ts-node-dev": "^2.0.0",
"typescript": "^4.9.5"
},
"engines": {
"node": ">=16.0.0",
Expand Down
51 changes: 41 additions & 10 deletions src/bot.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { dirname, importx } from '@discordx/importer';
import type { Interaction, Message } from 'discord.js';
import {
ActivityType,
Collection,
CommandInteraction,
IntentsBitField,
Expand All @@ -20,6 +21,7 @@ import { getConfig } from './utils/config.js';
import colors from 'colors';
import dotenv from 'dotenv';
import { additionalProps } from './utils/extras.js';
import website from './website/index.js';
dotenv.config();
permissions();
const config = getConfig(process.env.DISCORD_TOKEN!)!;
Expand All @@ -45,13 +47,13 @@ export const bot: AeonaBot = new Client({
silent: true,
simpleCommand: {
prefix: async (message) => {
if (process.env.DEV === 'true' && message.channelId != '1073654475652333568') return 'asd';

if (process.env.DEV === 'true' && message.channelId != '1073654475652333568') return 'asdasdasdassa';
if (message.author.bot) return 'asdasdasdassa';
const schema = await chatBotSchema.findOne({
Guild: `${message.guildId}`,
Channel: `${message.channelId}`,
});
if (schema) return 'asda';
if (schema) return 'asdasdasdassa';

let guild = await GuildDB.findOne({
Guild: message.guildId,
Expand All @@ -63,14 +65,9 @@ export const bot: AeonaBot = new Client({
guild.save();
}
if (message.mentions.users.has(bot.botId)) {
return [guild.Prefix, `<@!${bot.botId}>`, `<@${bot.botId}>`, ''];
return [guild.Prefix, `<@!${bot.botId}>`, `<@${bot.botId}>`, ''];
}
return [
guild.Prefix ?? config.prefix,

`<@!${bot.user?.id}>`,
`<@${bot.user?.id}>`,
];
return [guild.Prefix ?? config.prefix, `<@!${bot.user?.id}>`, `<@${bot.user?.id}>`];
},
responses: {
async notFound(message) {
Expand Down Expand Up @@ -157,8 +154,42 @@ bot.once('ready', async () => {
updateTopGGStats();

setInterval(updateTopGGStats, 60 * 1000 * 10);

if (bot.user!.username == 'Aeona') {
website(bot);
}
});

bot.on('shardReady', async (id) => {
bot.user?.setPresence({
status: 'idle',
activities: [
{
name: `${bot.guilds.cache.size.toLocaleString()} ${
bot.guilds.cache.size > 1 ? 'servers' : 'server'
}: ⊹ aeonabot.xyz`,
type: ActivityType.Watching,
},
],
afk: true,
shardId: id,
});
setInterval(() => {
bot.user?.setPresence({
status: 'idle',
activities: [
{
name: `${bot.guilds.cache.size.toLocaleString()} ${
bot.guilds.cache.size > 1 ? 'servers' : 'server'
}: ⊹ aeonabot.xyz`,
type: ActivityType.Watching,
},
],
afk: true,
shardId: id,
});
}, 60 * 1000 * 10);
});
bot.on('interactionCreate', async (interaction: Interaction) => {
if (interaction.isCommand()) await interaction.deferReply();
bot.executeInteraction(interaction);
Expand Down
52 changes: 52 additions & 0 deletions src/website/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import express from 'express';
import { AeonaBot } from '../utils/types';
import path from 'path';
export default function website(client: AeonaBot) {
const app = express();
const port = 8080;
app.use(express.json());
app.use(express.static('./src/website/public'));
app.set('view engine', 'ejs');

const renderTemplate = (res: any, req: any, template: any, data = {}) => {
const baseData = {
name: 'Aeona',
url: '',
alert: null,
alerterror: null,
guilds: client.guilds.cache.size,
members: client.guilds.cache.reduce((a: any, b: any) => a + b.memberCount - 1, 0),
};
res.render(path.resolve(`./src/website/views/${template}`), Object.assign(baseData, data));
};

app.get('/', async (req, res) => {
renderTemplate(res, req, 'index.ejs');
});

app.get('/invite', async (req, res) => {
res.redirect(
`https://discordapp.com/oauth2/authorize?client_id=${client.user!.id}&scope=bot&PermissionsBitField=8`,
);
});
app.get('/invite/discord', async (req, res) => {
res.redirect(
`https://discordapp.com/oauth2/authorize?client_id=${client.user!.id}&scope=bot&PermissionsBitField=8`,
);
});
app.get('/support', async (req, res) => {
res.redirect('https://discord.gg/W8hssA32C9');
});

app.get('/privacy-policy', async (req, res) => {
renderTemplate(res, req, 'privacy-policy.ejs');
});

app.get('/premium', async (req, res) => {
renderTemplate(res, req, 'premium.ejs');
});

app.listen(port, () => {
return console.log(`http://localhost:${port}`);
});
}
Binary file added src/website/public/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
206 changes: 206 additions & 0 deletions src/website/public/custom.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

::-webkit-scrollbar {
background: transparent;
}

::-webkit-scrollbar-thumb {
background: rgba(255 255 255/24%);
}

.background {
position: absolute;
color: rgba(255 255 255/24%);
height: 100%;
width: 100vw;
top: 0;
bottom: 0;
left: 0;
right: 0;
z-index: -100;
}

.mouse {
width: 50px;
height: 90px;
border: 3px solid hsl(var(--bc));
border-radius: 60px;
position: relative;
}

.cut-text {
text-overflow: ellipsis;
overflow: hidden;
width: 50%;
white-space: nowrap;
}

.mouse::before {
content: "";
width: 12px;
height: 12px;
position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);
background-color: hsl(var(--bc));
border-radius: 50%;
opacity: 1;
animation: wheel 2s infinite;
-webkit-animation: wheel 2s infinite;
}

@keyframes wheel {
to {
opacity: 0;
top: 60px;
}
}

@-webkit-keyframes wheel {
to {
opacity: 0;
top: 60px;
}
}

.discord-custom-emoji {
transform: translateY(6px);
}

.discord-embed-wrapper {
background-color: transparent !important;
}

.discord-replied-message-content {
max-height: 18px;
}

.btn {
-webkit-appearance: none;
appearance: none;
cursor: pointer;
position: relative;
transition: transform ease-in 0.1s, box-shadow ease-in 0.25s;
}

.btn:focus {
outline: 0;
}

.btn:before,
.btn:after {
position: absolute;
content: "";
display: block;
width: 140%;
height: 100%;
left: -20%;
z-index: -1000;
transition: all ease-in-out 1s;
background-repeat: no-repeat;
}

.btn:before {
display: none;
top: -75%;
background-image: radial-gradient(circle, #ff0081 20%, transparent 20%),
radial-gradient(circle, transparent 20%, #ff0081 20%, transparent 30%), radial-gradient(circle, #ff0081 20%, transparent 20%),
radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, transparent 10%, #ff0081 15%, transparent 20%),
radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%),
radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%);
background-size: 10% 10%, 20% 20%, 15% 15%, 20% 20%, 18% 18%, 10% 10%, 15% 15%, 10% 10%, 18% 18%;
}

.btn:after {
display: none;
bottom: -75%;
background-image: radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%),
radial-gradient(circle, transparent 10%, #ff0081 15%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%),
radial-gradient(circle, #ff0081 20%, transparent 20%), radial-gradient(circle, #ff0081 20%, transparent 20%),
radial-gradient(circle, #ff0081 20%, transparent 20%);
background-size: 15% 15%, 20% 20%, 18% 18%, 20% 20%, 15% 15%, 10% 10%, 20% 20%;
}
.btn:hover {
background-color: #e60074 !important;
border-color: #e60074 !important;
box-shadow: 0 2px 25px rgba(255, 0, 130, 0.2);
transform: scale(0.9);
}

.btn:active {
transform: scale(0.9);
background-color: #e60074 !important;
border-color: #e60074 !important;
box-shadow: 0 2px 25px rgba(255, 0, 130, 0.2);
}

.btn.animate:before {
display: block;
animation: topBubbles ease-in-out 0.75s forwards;
}

.btn.animate:after {
display: block;
animation: bottomBubbles ease-in-out 0.75s forwards;
}

@keyframes topBubbles {
0% {
background-position: 5% 90%, 10% 90%, 10% 90%, 15% 90%, 25% 90%, 25% 90%, 40% 90%, 55% 90%, 70% 90%;
}

50% {
background-position: 0% 80%, 0% 20%, 10% 40%, 20% 0%, 30% 30%, 22% 50%, 50% 50%, 65% 20%, 90% 30%;
}

100% {
background-position: 0% 70%, 0% 10%, 10% 30%, 20% -10%, 30% 20%, 22% 40%, 50% 40%, 65% 10%, 90% 20%;
background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
}
}

@keyframes bottomBubbles {
0% {
background-position: 10% -10%, 30% 10%, 55% -10%, 70% -10%, 85% -10%, 70% -10%, 70% 0%;
}

50% {
background-position: 0% 80%, 20% 80%, 45% 60%, 60% 100%, 75% 70%, 95% 60%, 105% 0%;
}

100% {
background-position: 0% 90%, 20% 90%, 45% 70%, 60% 110%, 75% 80%, 95% 70%, 110% 10%;
background-size: 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%, 0% 0%;
}
}

@keyframes float {
0% {
box-shadow: 0 5px 15px 0px rgba(0, 0, 0, 0.6);
transform: translatey(0px);
}
50% {
box-shadow: 0 25px 15px 0px rgba(0, 0, 0, 0.2);
transform: translatey(-20px);
}
100% {
box-shadow: 0 5px 15px 0px rgba(0, 0, 0, 0.6);
transform: translatey(0px);
}
}

.float {
animation: float 6s ease-in-out infinite;
}
@import url("https://fonts.googleapis.com/css2?family=Nerko+One&display=swap");
.glass2 {
backdrop-filter: blur(1px);
-webkit-backdrop-filter: blur(1px);

background-color: rgba(17, 25, 40, 0.25);
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.125);
}
1 change: 1 addition & 0 deletions src/website/public/index.css

Large diffs are not rendered by default.

Binary file added src/website/public/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/website/public/logo.webp
Binary file not shown.
3 changes: 3 additions & 0 deletions src/website/views/base.ejs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<%- include("./partials/head", { options, title: options.name+" | Best Multipurpose AI Chatbot For Discord" }) %>

<%- include("./partials/footer") %>
Loading

0 comments on commit bb5c1d6

Please sign in to comment.