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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 130 by rakin, Mon Jul 29 17:28:43 2024 UTC revision 393 by rakin, Mon Jul 29 17:29:59 2024 UTC
# Line 1  Line 1 
1    /**
2    * This file is part of SudoBot.
3    *
4    * Copyright (C) 2021-2022 OSN Inc.
5    *
6    * SudoBot is free software; you can redistribute it and/or modify it
7    * under the terms of the GNU Affero General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10    *
11    * SudoBot is distributed in the hope that it will be useful, but
12    * WITHOUT ANY WARRANTY; without even the implied warranty of
13    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14    * GNU Affero General Public License for more details.
15    *
16    * You should have received a copy of the GNU Affero General Public License
17    * along with SudoBot. If not, see <https://www.gnu.org/licenses/>.
18    */
19    
20  import { GuildMember } from "discord.js";  import { GuildMember } from "discord.js";
21  import { Request } from "express";  import { Request } from "express";
 import { Op } from "sequelize";  
 import DiscordClient from "../client/Client";  
22  import MessageEmbed from "../client/MessageEmbed";  import MessageEmbed from "../client/MessageEmbed";
23    import Service from "../utils/structures/Service";
24    
25  export default class Verification {  export default class Verification extends Service {
     constructor(protected client: DiscordClient) {  
   
     }  
   
26      async success(member: GuildMember, req: Request) {              async success(member: GuildMember, req: Request) {        
27          await member.roles.remove(this.client.config.props[member.guild.id].verification.role);          await member.roles.remove(this.client.config.props[member.guild.id].verification.role);
28    
29          await member.send({          try {
30              embeds: [              await member.send({
31                  new MessageEmbed({                  embeds: [
32                      author: {                      new MessageEmbed({
33                          name: member.guild.name,                          author: {
34                          iconURL: member.guild.iconURL() ?? undefined,                              name: member.guild.name,
35                      },                              iconURL: member.guild.iconURL() ?? undefined,
36                      title: "Thanks for verifying!",                          },
37                      description: "The verification was completed successfully!",                          title: "Thanks for verifying!",
38                      timestamp: new Date()                          description: "The verification was completed successfully!",
39                  })                          timestamp: new Date()
40              ],                      })
41          });                  ],
42                });
43            }
44            catch (e) {
45                console.log(e);
46            }
47    
48          const { default: UnverifiedMember } = await import('../models/UnverifiedMember');          const { default: UnverifiedMember } = await import('../models/UnverifiedMember');
49    
50          const data = await UnverifiedMember.findOne({          const data = await UnverifiedMember.findOne({
51              where: {              guild_id: member.guild.id,
52                  guild_id: member.guild.id,              user_id: member.id,
53                  user_id: member.id,              status: 'pending'
                 status: 'pending'  
             }  
54          });          });
55    
56          await data?.set('status', 'done');          await data?.set('status', 'done');
# Line 48  export default class Verification { Line 65  export default class Verification {
65          await UnverifiedMember.create({          await UnverifiedMember.create({
66              guild_id: member.guild.id,              guild_id: member.guild.id,
67              user_id: member.id,              user_id: member.id,
68              status: 'pending'              status: 'pending',
69                createdAt: new Date()
70          });          });
71    
72          await member.roles.add(this.client.config.props[member.guild.id].verification.role);          await member.roles.add(this.client.config.props[member.guild.id].verification.role);
73    
74          const url = `${this.client.config.props.global.cp_host}/challenge/v1/verify/?guild_id=${member.guild.id}`;          const url = `${this.client.config.props.global.cp_host}/challenge/v1/verify/?guild_id=${member.guild.id}`;
75    
76          await member.send({          try {
77              embeds: [              await member.send({
78                  new MessageEmbed({                  embeds: [
79                      author: {                      new MessageEmbed({
80                          name: member.guild.name,                          author: {
81                          iconURL: member.guild.iconURL() ?? undefined,                              name: member.guild.name,
82                      },                              iconURL: member.guild.iconURL() ?? undefined,
83                      title: "Verification Required!",                          },
84                      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*`,                          title: "Verification Required!",
85                      timestamp: new Date(),                          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*`,
86                      fields: [                          timestamp: new Date(),
87                          {                          fields: [
88                              name: "Verification URL",                              {
89                              value: url                                  name: "Verification URL",
90                          }                                  value: url
91                      ],                              }
92                      url                          ],
93                  })                          url
94              ]                      })
95          });                  ]
96                });
97            }
98            catch (e) {
99                console.log(e);
100            }
101      }      }
 }  
102    }

Legend:
Removed from v.130  
changed lines
  Added in v.393

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26