Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const client = new Discord.Client();
  3. const settings = require('./settings.json')
  4. const Twit = require('twit');
  5. const tClient = new Twit({
  6. consumer_key: settings.twitter.consumer_key,
  7. consumer_secret: settings.twitter.consumer_secret,
  8. access_token: settings.twitter.access_token,
  9. access_token_secret: settings.twitter.access_token_secret,
  10. timeout_ms: 60*1000,
  11. });
  12. const ownerID = settings.botInfo.ownerID;
  13. const channelID = settings.botInfo.channelID;
  14. const prefix = settings.botInfo.prefix;
  15. const embedColor = 0x4099FF;
  16.  
  17. client.login(settings.botInfo.token);
  18.  
  19. client.on('ready', () => console.log('Logged in as ' + client.user.tag))
  20.  
  21. client.on('message', msg => {
  22. if (msg.author.id !== ownerID)
  23. return false;
  24. const args = msg.content.slice(prefix.length + 6);
  25. if (msg.content.startsWith(prefix + 'tweet')) {
  26. if (args.length > 140)
  27. return msg.channel.send(`Tweet too long. You're ${args.length - 140} characters over the limit!`);
  28. tClient.post('statuses/update', { status: args }, (err, data, response) => {
  29. if (err)
  30. return msg.channel.send('Something went wrong. \n' + err.stack);
  31. if (response.statusCode !== 200)
  32. return msg.channel.send('Something went wrong. Please try again later.')
  33. msg.channel.send({ embed: {
  34. color: embedColor,
  35. title: 'Tweet created',
  36. url: `https://twitter.com/${data.user.screen_name}/status/${data.id_str}`,
  37. description: data.text
  38. }})
  39. });
  40. };
  41. });
  42.  
  43. client.once('ready', () => {
  44. const stream = tClient.stream('user');
  45. stream.on('tweet', async (tweet) => {
  46. if (tweet.user.screen_name === settings.twitter.handle)
  47. return false;
  48. let embed = await client.channels.get(channelID).send({ embed: {
  49. color: embedColor,
  50. author: { name: tweet.user.screen_name,
  51. icon_url: tweet.user.profile_background_image_url_https,
  52. url: `https://twitter.com/${tweet.user.screen_name}` },
  53. description: tweet.text,
  54. fields: [ { name: 'Tweet ID:', value: tweet.id_str } ],
  55. footer: { text: 'Tweet sent at' },
  56. timestamp: new Date(parseInt(tweet.timestamp_ms))
  57. }});
  58. embed.react('🔁');
  59. });
  60. });
  61.  
  62. client.on('messageReactionAdd', (messageReaction, user) => {
  63. if (messageReaction.emoji.name === '🔁' && user.id === ownerID) {
  64. tClient.post('statuses/retweet/:id', { id: messageReaction.message.embeds[0].fields.filter(f => f.name === 'Tweet ID:')[0].value }, (err, data, response) => {
  65. if (!err && response.statusCode === 200)
  66. messageReaction.message.channel.send({ embed: {
  67. color: embedColor,
  68. description: 'Retweeted successfully.'
  69. }});
  70. else
  71. msg.channel.send('Something went wrong.')
  72. })
  73. }
  74. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement