diff --git a/.env.example b/.env.example index 004b920..98fb499 100644 --- a/.env.example +++ b/.env.example @@ -51,14 +51,4 @@ TMP_DOMAIN= # Set this to true if you're using PM2 to manage the bot PMTWO=false # Set this to true if you want to use the image API -API=false - -# Enable/disable Twitter bot (true/false) -TWITTER=false -# Put Twitter username here -HANDLE= -# Put consumer key, consumer secret, access token, and access secret here -TWITTER_KEY= -CONSUMER_SECRET= -ACCESS_TOKEN= -ACCESS_SECRET= \ No newline at end of file +API=false \ No newline at end of file diff --git a/commands/addtweet.js b/commands/addtweet.js deleted file mode 100644 index 7d7f402..0000000 --- a/commands/addtweet.js +++ /dev/null @@ -1,20 +0,0 @@ -const { writeFile } = require("fs"); -const { promisify } = require("util"); -const tweets = require("../tweets.json"); -const twitter = require("../utils/twitter.js"); - -exports.run = async (message, args) => { - if (message.author.id !== process.env.OWNER) return `${message.author.mention}, only the bot owner can add tweets!`; - if (args.length === 0) return `${message.author.mention}, you need to provide some text to add to the tweet database!`; - if (args[1] === undefined) return `${message.author.mention}, you need to provide the content you want to add!`; - tweets[args[0]].push(args.slice(1).join(" ")); - twitter.tweets = tweets; - await promisify(writeFile)("../tweets.json", JSON.stringify(tweets, null, 2)); - return `${message.author.mention}, the content has been added.`; -}; - -exports.aliases = ["add"]; -exports.category = 8; -exports.help = "Adds a tweet to the database"; -exports.requires = "twitter"; -exports.params = "[category] [message]"; \ No newline at end of file diff --git a/commands/tweet.js b/commands/tweet.js deleted file mode 100644 index 1faf2c7..0000000 --- a/commands/tweet.js +++ /dev/null @@ -1,15 +0,0 @@ -const twitter = require("../utils/twitter.js"); - -exports.run = async (message, args) => { - if (message.author.id !== process.env.OWNER) return `${message.author.mention}, only the bot owner can tweet!`; - if (args.length === 0) return `${message.author.mention}, you need to provide some text to tweet!`; - const info = await twitter.client.statuses.update(args.join(" ")); - //if (info.resp.statusCode !== 200) return `Something happened when trying to post this tweet: ${info.resp.statusCode} ${info.resp.statusMessage}`; - return `https://twitter.com/${process.env.HANDLE}/status/${info.id_str}`; - // with status code ${info.resp.statusCode} ${info.resp.statusMessage}. -}; - -exports.category = 8; -exports.help = "Tweets a message"; -exports.requires = "twitter"; -exports.params = "[message]"; \ No newline at end of file diff --git a/events/ready.js b/events/ready.js index 82d8903..1904871 100644 --- a/events/ready.js +++ b/events/ready.js @@ -6,8 +6,6 @@ const misc = require("../utils/misc.js"); const soundPlayer = require("../utils/soundplayer.js"); const helpGenerator = process.env.OUTPUT !== "" ? require("../utils/help.js") : null; -const twitter = - process.env.TWITTER === "true" ? require("../utils/twitter.js") : null; const first = process.env.PMTWO === "true" ? process.env.NODE_APP_INSTANCE === "0" : true; // run when ready @@ -28,46 +26,6 @@ module.exports = async () => { setTimeout(activityChanger, 900000); })(); - // tweet stuff - if (twitter !== null && twitter.active === false && first) { - const blocks = await twitter.client.blocks.ids(); - const tweet = async () => { - const tweetContent = await misc.getTweet(twitter.tweets); - try { - const info = await twitter.client.statuses.update(tweetContent); - logger.log(`Tweet with id ${info.id_str} has been posted.`); - // with status code ${info.resp.statusCode} ${info.resp.statusMessage} - } catch (e) { - const error = JSON.stringify(e); - if (error.includes("Status is a duplicate.")) { - logger.log("Duplicate tweet, will retry in 30 minutes"); - } else { - logger.error(e); - } - } - }; - tweet(); - setInterval(tweet, 1800000); - twitter.active = true; - try { - const stream = twitter.client.statuses.filter(`@${process.env.HANDLE}`); - stream.on("data", async (tweet) => { - if (tweet.user.screen_name !== "esmBot_" && !blocks.ids.includes(tweet.user.id_str)) { - const tweetContent = await misc.getTweet(twitter.tweets, true).replace(/{{user}}/gm, `@${tweet.user.screen_name}`); - const payload = { - status: `@${tweet.user.screen_name} ${tweetContent}`, - in_reply_to_status_id: tweet.id_str, - }; - const info = await twitter.client.statuses.update(payload); - logger.log(`Reply with id ${info.id_str} has been posted.`); - // with status code ${info.resp.statusCode} ${info.resp.statusMessage} - } - }); - } catch (e) { - logger.error(`The Twitter streaming API ran into an error: ${e}`); - } - } - if (process.env.PMTWO === "true") process.send("ready"); logger.log(`Successfully started ${client.user.username}#${client.user.discriminator} with ${client.users.size} users in ${client.guilds.size} servers.`); }; diff --git a/migratetweets.js b/migratetweets.js deleted file mode 100644 index eb499a7..0000000 --- a/migratetweets.js +++ /dev/null @@ -1,23 +0,0 @@ -const fs = require("fs"); -const mongoose = require("mongoose"); -mongoose.connect("mongodb://localhost/esmBot"); - -const tweetSchema = new mongoose.Schema({ - tweets: [String], - replies: [String], - media: [String], - phrases: [String], - games: [String], - characters: [String], - download: [String], - enabled: Boolean -}); - -const TweetCollection = mongoose.model("TweetCollection", tweetSchema); - -TweetCollection.findOne({}, (err, res) => { - if (err) throw err; - fs.writeFileSync("tweets.json", JSON.stringify(res)); - console.log("Migrated!"); - mongoose.connection.close(); -}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f7c86c7..a323e4c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,6 @@ "node-addon-api": "^3.1.0", "node-emoji": "^1.10.0", "node-fetch": "^2.6.1", - "node-tweet": "^0.1.4", "puppeteer": "^5.5.0", "puppeteer-extra": "^3.1.15", "puppeteer-extra-plugin-stealth": "^2.6.5", @@ -2312,11 +2311,6 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-tweet": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/node-tweet/-/node-tweet-0.1.4.tgz", - "integrity": "sha512-ywKfBwLFCFnPKH8QxK/bxfVeaR6SadeDh4YqhW+HixvfP/KxLxs08RA1vfnshswdlJRYh6dAq3jQ7FN2BeAqfA==" - }, "node_modules/noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", @@ -5825,11 +5819,6 @@ "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", "optional": true }, - "node-tweet": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/node-tweet/-/node-tweet-0.1.4.tgz", - "integrity": "sha512-ywKfBwLFCFnPKH8QxK/bxfVeaR6SadeDh4YqhW+HixvfP/KxLxs08RA1vfnshswdlJRYh6dAq3jQ7FN2BeAqfA==" - }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", diff --git a/package.json b/package.json index b594ec3..a8de51b 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,6 @@ "node-addon-api": "^3.1.0", "node-emoji": "^1.10.0", "node-fetch": "^2.6.1", - "node-tweet": "^0.1.4", "puppeteer": "^5.5.0", "puppeteer-extra": "^3.1.15", "puppeteer-extra-plugin-stealth": "^2.6.5", diff --git a/tweets.json b/tweets.json deleted file mode 100644 index 2edf7af..0000000 --- a/tweets.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "tweets": [ - "{{media}}", - "This is an example tweet!", - "{{characters}}: {{phrases}}", - "I'm personally a pretty big fan of {{games}}.", - "This is another example tweet!" - ], - "replies": [ - "This is an example reply!", - "Put some more replies in here!" - ], - "media": [ - "", - "pic.twitter.com/v8NSW2mC95" - ], - "phrases": [ - "Here is a phrase that I can say!" - ], - "games": [ - "Discord" - ], - "characters": [ - "esmBot" - ], - "download": [ - "I really do not like downloader bots." - ] -} diff --git a/utils/handler.js b/utils/handler.js index 767f91b..50d9f7e 100644 --- a/utils/handler.js +++ b/utils/handler.js @@ -7,7 +7,6 @@ exports.load = async (command, soundStatus) => { if (props.requires === "google" && process.env.GOOGLE === "") return logger.log("info", `Google info not provided in config, skipped loading command ${command}...`); if (props.requires === "cat" && process.env.CAT === "") return logger.log("info", `Cat API info not provided in config, skipped loading command ${command}...`); if (props.requires === "mashape" && process.env.MASHAPE === "") return logger.log("info", `Mashape/RapidAPI info not provided in config, skipped loading command ${command}...`); - if (props.requires === "twitter" && process.env.TWITTER === "false") return logger.log("info", `Twitter bot disabled, skipped loading command ${command}...`); if (props.requires === "sound" && soundStatus) return logger.log("info", `Failed to connect to some Lavalink nodes, skipped loading command ${command}...`); collections.commands.set(command.split(".")[0], props.run); collections.info.set(command.split(".")[0], { diff --git a/utils/misc.js b/utils/misc.js index 1db2e61..11bdb9f 100644 --- a/utils/misc.js +++ b/utils/misc.js @@ -34,28 +34,6 @@ exports.clean = async (text) => { return text; }; -// get random tweet to post -exports.getTweet = async (tweets, reply = false, isDownload = false) => { - const randomTweet = this.random(reply ? (isDownload ? tweets.download : tweets.replies) : tweets.tweets); - if (randomTweet.match("{{message}}")) { - return randomTweet.replaceAll("{{message}}", await this.getRandomMessage()); - } else { - return randomTweet - .replaceAll("{{media}}", () => { - return this.random(tweets.media); - }) - .replaceAll("{{games}}", () => { - return this.random(tweets.games); - }) - .replaceAll("{{phrases}}", () => { - return this.random(tweets.phrases); - }) - .replaceAll("{{characters}}", () => { - return this.random(tweets.characters); - }); - } -}; - exports.getRandomMessage = async () => { const messages = await client.guilds.get("631290275456745502").channels.get("631290275888627713").getMessages(50); const randomMessage = this.random(messages); diff --git a/utils/twitter.js b/utils/twitter.js deleted file mode 100644 index 94705aa..0000000 --- a/utils/twitter.js +++ /dev/null @@ -1,10 +0,0 @@ -const Twitter = require("node-tweet"); -const client = new Twitter({ - consumerKey: process.env.TWITTER_KEY, - consumerSecret: process.env.CONSUMER_SECRET, - accessToken: process.env.ACCESS_TOKEN, - accessSecret: process.env.ACCESS_SECRET -}); -exports.client = client; -exports.active = false; -exports.tweets = require("../tweets.json"); \ No newline at end of file