gaber-elsayed

voter

Aug 26th, 2021
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. const DBL = require('@top-gg/sdk');
  2. const express = require('express');
  3. const app = express();
  4. const mongoose = require('mongoose');
  5. const User = require('./data/User');
  6. const config = require('./config.json')
  7. const webhook = new DBL.Webhook(config.dbl_secret);
  8. const fetch = require('node-fetch');
  9. const Discord = require('discord.js');
  10. const port = config.port || 5000
  11. const {
  12. WebhookClient
  13. } = require('discord.js');
  14. const webhookVote = new WebhookClient(config.webhook_id, config.webhook_url);
  15.  
  16. app.get('/', (req, res) => {
  17. res.send('Currently Working.')
  18. })
  19.  
  20. app.get('/dblwebhook', (req, res) => {
  21. res.send('Currently Working.')
  22. })
  23.  
  24. app.post('/dblwebhook', webhook.middleware(), async (req, res) => {
  25.  
  26. const votedUser = await fetch(`https://discord.com/api/v8/users/${req.vote.user}`, {
  27. headers: {
  28. Authorization: `Bot ${config.bot_token}`
  29. }
  30. }).then(res => res.json());
  31.  
  32.  
  33. console.log(`${votedUser.username} Just Voted!`);
  34.  
  35. let userV = await User.findOne({
  36. id: req.vote.user
  37. });
  38.  
  39. if (!userV) {
  40. await User.create({
  41. id: req.vote.user,
  42. votes: 1,
  43. lastVoted: Date.now()
  44. });
  45.  
  46. userV = await User.findOne({
  47. id: req.vote.user
  48. });
  49.  
  50. };
  51.  
  52. const vote_number = userV.votes + 1 || 1;
  53.  
  54. const embed = new Discord.MessageEmbed()
  55. .setAuthor(`${config.bot_name}'s Voting System'`, `${config.logo || 'https://i.imgur.com/nhyrOYD.png'}`)
  56. .setColor('GREEN')
  57. .setTitle(`${votedUser.username} Just Voted`)
  58. .setDescription(`**${votedUser.username}#${votedUser.discriminator}** (${votedUser.id}) just voted **${config.bot_name}**!`)
  59. .setFooter(`Vote #${vote_number}`)
  60.  
  61. webhookVote.send(embed);
  62.  
  63. return await userV.updateOne({
  64. votes: vote_number,
  65. lastVoted: Date.now()
  66. });
  67.  
  68. });
  69.  
  70. mongoose.connection.on('connected', () => console.log('Connected to Mongo DB'));
  71.  
  72. app.listen(port, () => {
  73.  
  74. console.log(`Running Vote System on Port ${port}`);
  75.  
  76. mongoose.connect(config.mongo, {
  77. useCreateIndex: true,
  78. useNewUrlParser: true,
  79. useUnifiedTopology: true
  80. }).catch((err) => {
  81. console.log(err)
  82. });
  83.  
  84. });
  85.  
  86.  
  87.  
  88. ///data/user.js
  89.  
  90. const mongoose = require('mongoose');
  91.  
  92. const userVote = mongoose.Schema({
  93.  
  94. id: {
  95. type: String,
  96. required: true,
  97. unique: true
  98. },
  99.  
  100. lastVoted: {
  101. type: Number,
  102. default: 0
  103. },
  104.  
  105. votes: {
  106. type: Number,
  107. default: 0
  108. }
  109.  
  110. });
  111.  
  112.  
  113. module.exports = mongoose.model('votes', userVote);
Advertisement
Add Comment
Please, Sign In to add comment