Bot discord pour le serveur d'Ingénieurs pour Demain
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

messageCheck.js 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. const fs = require('fs');
  2. const path = require('path');
  3. const { client, logch } = require("../index.js");
  4. const logger = require("./logger.js");
  5. const botconfig = JSON.parse(fs.readFileSync(path.resolve(`./config/botinfo.json`)));
  6. let memberRoleID = botconfig.memberRoleID
  7. const badwords = JSON.parse(fs.readFileSync(path.resolve(`./config/badwords.json`)));
  8. function checkBadwords(msg) {
  9. badwordlist = badwords.filter(word => msg.content.includes(word));
  10. return badwordlist;
  11. }
  12. module.exports = {
  13. // Check general properties of message
  14. general: function (message) {
  15. fs.stat(`./data/users/${message.author.id}.json`, function (err, stat) {
  16. if (err == null) {
  17. // Check if the message is safe for community
  18. suspiciousWords = checkBadwords(message);
  19. if (suspiciousWords.length > 0) {
  20. logger.all(`${message.author.tag} a dit ${suspiciousWords.toString()} dans ${message.channel.name}`);
  21. }
  22. } else if (err.code === 'ENOENT') {
  23. // If it is the first message of the member we give him member role except if his messages contains suspicious words
  24. suspiciousWords = checkBadwords(message);
  25. if (suspiciousWords.length > 0) {
  26. return logger.all(`${message.author.tag} a dit ${suspiciousWords.toString()} dans ${message.channel.name}`);
  27. }
  28. actualtimestamp = + new Date();
  29. usrinfo = {
  30. id: message.author.id,
  31. hasleft: false,
  32. join: actualtimestamp,
  33. left: 0
  34. }
  35. const jsonStringusr = JSON.stringify(usrinfo);
  36. fs.writeFile(`./data/users/${message.author.id}.json`, jsonStringusr, err => {
  37. if (err) {
  38. console.log(`Error writing user profile`, err)
  39. } else {
  40. console.log(`Successfully wrote user profile`)
  41. }
  42. });
  43. memberRole = message.guild.roles.cache.find(role => role.id == memberRoleID);
  44. message.member.roles.add(memberRole);
  45. } else {
  46. console.log('Error: ', err.code);
  47. }
  48. });
  49. },
  50. // Update profile
  51. memberUpdate: function (member, event) {
  52. fs.stat(`./data/users/${member.user.id}.json`, function (err, stat) {
  53. actualtimestamp = + new Date();
  54. if (err == null) {
  55. oldusrinfo = JSON.parse(fs.readFileSync(path.resolve(`./data/users/${member.user.id}.json`)));
  56. if (event == "join") {
  57. joininfo = actualtimestamp;
  58. leftinfo = oldusrinfo.left;
  59. hasleftinfo = false;
  60. memberRole = member.guild.roles.cache.find(role => role.id == memberRoleID);
  61. member.roles.add(memberRole);
  62. } else if (event == "left") {
  63. leftinfo = actualtimestamp;
  64. joininfo = oldusrinfo.join;
  65. hasleftinfo = true;
  66. }
  67. usrinfo = {
  68. id: member.user.id,
  69. hasleft: hasleftinfo,
  70. join: joininfo,
  71. left: leftinfo,
  72. }
  73. const jsonStringusr = JSON.stringify(usrinfo);
  74. fs.writeFile(`./data/users/${member.user.id}.json`, jsonStringusr, err => {
  75. if (err) {
  76. console.log(`Error writing user profile`, err)
  77. } else {
  78. console.log(`Successfully wrote user profile`)
  79. }
  80. });
  81. } else if (err.code === 'ENOENT') {
  82. if (event == "join") {
  83. return logger.all("Il doit donc se présenter dans le channel 👋-présentation");
  84. } else if (event == "left") {
  85. leftinfo = actualtimestamp;
  86. joininfo = 0;
  87. hasleftinfo = true;
  88. }
  89. usrinfo = {
  90. id: member.user.id,
  91. hasleft: hasleftinfo,
  92. join: joininfo,
  93. left: leftinfo,
  94. }
  95. const jsonStringusr = JSON.stringify(usrinfo);
  96. fs.writeFile(`./data/users/${member.user.id}.json`, jsonStringusr, err => {
  97. if (err) {
  98. console.log(`Error writing user profile`, err)
  99. } else {
  100. console.log(`Successfully wrote user profile`)
  101. }
  102. });
  103. } else {
  104. console.log('Error: ', err.code);
  105. }
  106. });
  107. }
  108. }