Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require('discord.js');
- const client = new Discord.Client();
- const settings = require('./settings.json')
- const Twit = require('twit');
- const tClient = new Twit({
- consumer_key: settings.twitter.consumer_key,
- consumer_secret: settings.twitter.consumer_secret,
- access_token: settings.twitter.access_token,
- access_token_secret: settings.twitter.access_token_secret,
- timeout_ms: 60*1000,
- });
- const ownerID = settings.botInfo.ownerID;
- const channelID = settings.botInfo.channelID;
- const prefix = settings.botInfo.prefix;
- const embedColor = 0x4099FF;
- client.login(settings.botInfo.token);
- client.on('ready', () => console.log('Logged in as ' + client.user.tag))
- client.on('message', msg => {
- if (msg.author.id !== ownerID)
- return false;
- const args = msg.content.slice(prefix.length + 6);
- if (msg.content.startsWith(prefix + 'tweet')) {
- if (args.length > 140)
- return msg.channel.send(`Tweet too long. You're ${args.length - 140} characters over the limit!`);
- tClient.post('statuses/update', { status: args }, (err, data, response) => {
- if (err)
- return msg.channel.send('Something went wrong. \n' + err.stack);
- if (response.statusCode !== 200)
- return msg.channel.send('Something went wrong. Please try again later.')
- msg.channel.send({ embed: {
- color: embedColor,
- title: 'Tweet created',
- url: `https://twitter.com/${data.user.screen_name}/status/${data.id_str}`,
- description: data.text
- }})
- });
- };
- });
- client.once('ready', () => {
- const stream = tClient.stream('user');
- stream.on('tweet', async (tweet) => {
- if (tweet.user.screen_name === settings.twitter.handle)
- return false;
- let embed = await client.channels.get(channelID).send({ embed: {
- color: embedColor,
- author: { name: tweet.user.screen_name,
- icon_url: tweet.user.profile_background_image_url_https,
- url: `https://twitter.com/${tweet.user.screen_name}` },
- description: tweet.text,
- fields: [ { name: 'Tweet ID:', value: tweet.id_str } ],
- footer: { text: 'Tweet sent at' },
- timestamp: new Date(parseInt(tweet.timestamp_ms))
- }});
- embed.react('🔁');
- });
- });
- client.on('messageReactionAdd', (messageReaction, user) => {
- if (messageReaction.emoji.name === '🔁' && user.id === ownerID) {
- tClient.post('statuses/retweet/:id', { id: messageReaction.message.embeds[0].fields.filter(f => f.name === 'Tweet ID:')[0].value }, (err, data, response) => {
- if (!err && response.statusCode === 200)
- messageReaction.message.channel.send({ embed: {
- color: embedColor,
- description: 'Retweeted successfully.'
- }});
- else
- msg.channel.send('Something went wrong.')
- })
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement