app.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const Discord = require("discord.js");
  2. const client = new Discord.Client();
  3. const config = require("config");
  4. const WebHooks = require('node-webhooks');
  5. const express = require("express");
  6. const myParser = require("body-parser");
  7. const fs = require('fs');
  8. const app = express();
  9. let currentComponent;
  10. client.on('ready', () => {
  11. discordClientCBS.forEach((cb) => {
  12. cb();
  13. });
  14. console.log(`DISCORD Logged in as ${client.user.username}!`);
  15. });
  16. client.login(config.get('discord.token'));
  17. let discordClientCBS = [];
  18. const getDiscordClient = (cb) => {
  19. if (client.status === 0) return cb();
  20. else discordClientCBS.push(cb);
  21. };
  22. const logToDiscord = (message, color, critical, extraFields, cb = ()=>{}) => {
  23. getDiscordClient(() => {
  24. let richEmbed = new Discord.RichEmbed();
  25. richEmbed.setAuthor("Musare Logger", "https://uptimerobot.com/assets/ico/favicon.ico", "https://status.musare.com");
  26. if (critical === true) {
  27. richEmbed.setColor("#d9534f");
  28. } else if (critical === false) {
  29. richEmbed.setColor("#4ca74c");
  30. }
  31. richEmbed.setDescription(message);
  32. // richEmbed.setFooter("Footer", "https://musare.com/favicon-194x194.png");
  33. // richEmbed.setImage("https://musare.com/favicon-194x194.png");
  34. richEmbed.setThumbnail("https://pbs.twimg.com/profile_images/453444308650061824/G22d2Q6n_400x400.png");
  35. richEmbed.setTimestamp(new Date());
  36. richEmbed.setTitle("MUSARE ALERT");
  37. richEmbed.setURL("https://status.musare.com");
  38. if(typeof extraFields !== 'undefined' && extraFields) {
  39. extraFields.forEach((extraField) => {
  40. richEmbed.addField(extraField.name, extraField.value, extraField.inline);
  41. });
  42. }
  43. client.channels.get(config.get('discord.loggingChannel')).sendEmbed(richEmbed).then(() => {
  44. cb();
  45. }).then((reason) => {
  46. cb(reason);
  47. });
  48. });
  49. };
  50. app.use(myParser.urlencoded({extended : true}));
  51. app.post("/", function(request, response) {
  52. console.log(request.body);
  53. console.log(request.body.alertType);
  54. logToDiscord("The backend server started successfully.", "#00AA00", true, [{name: "Name:", value: request.body.monitorFriendlyName, inline: false}, {name: "URL:", value: request.body.monitorURL, inline: false}, {name: "Status:", value: request.body.alertTypeFriendlyName, inline: true}]);
  55. });
  56. app.listen(3001);