/[sudobot]/trunk/src/services/Verification.ts
ViewVC logotype

Contents of /trunk/src/services/Verification.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 340 - (show annotations)
Mon Jul 29 17:29:38 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 2981 byte(s)
refactor(verification): use mongodb
1 import { GuildMember } from "discord.js";
2 import { Request } from "express";
3 import { Op } from "sequelize";
4 import DiscordClient from "../client/Client";
5 import MessageEmbed from "../client/MessageEmbed";
6 import Service from "../utils/structures/Service";
7
8 export default class Verification extends Service {
9 async success(member: GuildMember, req: Request) {
10 await member.roles.remove(this.client.config.props[member.guild.id].verification.role);
11
12 try {
13 await member.send({
14 embeds: [
15 new MessageEmbed({
16 author: {
17 name: member.guild.name,
18 iconURL: member.guild.iconURL() ?? undefined,
19 },
20 title: "Thanks for verifying!",
21 description: "The verification was completed successfully!",
22 timestamp: new Date()
23 })
24 ],
25 });
26 }
27 catch (e) {
28 console.log(e);
29 }
30
31 const { default: UnverifiedMember } = await import('../models/UnverifiedMember');
32
33 const data = await UnverifiedMember.findOne({
34 guild_id: member.guild.id,
35 user_id: member.id,
36 status: 'pending'
37 });
38
39 await data?.set('status', 'done');
40 await data?.set('ip', req.ip);
41 await data?.set('user_agent', req.get('User-Agent'));
42 await data?.save();
43 }
44
45 async start(member: GuildMember) {
46 const { default: UnverifiedMember } = await import('../models/UnverifiedMember');
47
48 await UnverifiedMember.create({
49 guild_id: member.guild.id,
50 user_id: member.id,
51 status: 'pending',
52 createdAt: new Date()
53 });
54
55 await member.roles.add(this.client.config.props[member.guild.id].verification.role);
56
57 const url = `${this.client.config.props.global.cp_host}/challenge/v1/verify/?guild_id=${member.guild.id}`;
58
59 try {
60 await member.send({
61 embeds: [
62 new MessageEmbed({
63 author: {
64 name: member.guild.name,
65 iconURL: member.guild.iconURL() ?? undefined,
66 },
67 title: "Verification Required!",
68 description: `Hey ${member.nickname ?? member.user.username}, the server **${member.guild.name}** requires verification!\nTo verify yourself, simply go to the verification URL given below and you might be asked to solve some captcha.\n\nHave a nice day,\n*${member.guild.name} Staff*`,
69 timestamp: new Date(),
70 fields: [
71 {
72 name: "Verification URL",
73 value: url
74 }
75 ],
76 url
77 })
78 ]
79 });
80 }
81 catch (e) {
82 console.log(e);
83 }
84 }
85 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26