Improved twitter bot a bit more, replaced all indexOf checks, fixed xp message bug
This commit is contained in:
parent
e1347fcf52
commit
0920c459d5
9 changed files with 52 additions and 43 deletions
|
@ -17,25 +17,20 @@ module.exports = async (message) => {
|
|||
|
||||
// xp stuff
|
||||
const xp = (await database.xp.find({ id: message.channel.guild.id }).exec())[0];
|
||||
if (xp.enabled === true) {
|
||||
//console.log(xp.members);
|
||||
if (xp.enabled === true && !message.member.roles.includes("631290345824714762")) {
|
||||
const info = xp.members.get(message.author.id);
|
||||
if (!info) {
|
||||
logger.log("Member not in XP database, adding");
|
||||
const memberInfo = {
|
||||
xpAmount: 1,
|
||||
xpAmount: 10,
|
||||
level: 0
|
||||
};
|
||||
xp.members.set(message.author.id, memberInfo);
|
||||
await xp.save();
|
||||
} else {
|
||||
let newLevel;
|
||||
const newAmount = info.xpAmount + 10;
|
||||
//xp.members[message.author.id].xpAmount++;
|
||||
const level = Math.floor(0.1 * Math.sqrt(newAmount));
|
||||
if (info.level < level) {
|
||||
newLevel = info.level++;
|
||||
//xp.members[message.author.id].level++;
|
||||
logger.log(`${message.author.username} has leveled up`);
|
||||
if (message.channel.guild.id === "631290275456745502" && level === 5) {
|
||||
await message.author.addRole("638759280752853022", "level 5");
|
||||
|
@ -52,14 +47,14 @@ module.exports = async (message) => {
|
|||
}
|
||||
xp.members.set(message.author.id, {
|
||||
xpAmount: newAmount,
|
||||
level: newLevel ? newLevel : info.level
|
||||
level: level
|
||||
});
|
||||
await xp.save();
|
||||
}
|
||||
}
|
||||
|
||||
// ignore other stuff
|
||||
if (message.content.startsWith(prefix) === false && message.mentions.indexOf(client.user) <= -1 && message.channel.id !== "573553254575898626" && (!message.content.match(/https?:\/\/(media|cdn)\.discordapp\.(net|com)\/attachments\/596766080014221373\/606176845871972383\/1561668913236-3.gif/))) return;
|
||||
if (message.content.startsWith(prefix) === false && !message.mentions.includes(client.user) && message.channel.id !== "573553254575898626") return;
|
||||
|
||||
// funny stuff
|
||||
if (message.channel.id === "573553254575898626" && message.channel.guild.id === "433408970955423765") {
|
||||
|
@ -75,12 +70,6 @@ module.exports = async (message) => {
|
|||
await client.createMessage(generalChannel.id, message.content);
|
||||
}
|
||||
}
|
||||
// || (message.attachments && message.attachments[0].filename === "1561668913236-3.gif")
|
||||
if (message.channel.guild.id === "322114245632327703" && (message.content.match(/https?:\/\/(media|cdn)\.discordapp\.(net|com)\/attachments\/596766080014221373\/606176845871972383\/1561668913236-3.gif/))) {
|
||||
const odyMessages = ["Nope!", "No jojo gif here", "sorry ody, this gif is illegal", "get owned"];
|
||||
await message.delete("anti-jojo mechanism");
|
||||
await client.createMessage(message.channel.id, misc.random(odyMessages));
|
||||
}
|
||||
|
||||
// separate commands and args
|
||||
const escapedPrefix = misc.regexEscape(prefix);
|
||||
|
|
|
@ -49,22 +49,37 @@ module.exports = async () => {
|
|||
})();
|
||||
|
||||
// tweet stuff
|
||||
if (twitter !== null) {
|
||||
if (twitter !== null && twitter.active === false) {
|
||||
const tweet = async () => {
|
||||
const tweets = (await database.tweets.find({ enabled: true }).exec())[0];
|
||||
const tweetContent = await misc.getTweet(tweets);
|
||||
const info = await twitter.client.post("statuses/update", { status: tweetContent });
|
||||
logger.log(`Tweet with id ${info.data.id_str} has been tweeted with status code ${info.resp.statusCode} ${info.resp.statusMessage}`);
|
||||
try {
|
||||
const info = await twitter.client.post("statuses/update", { status: tweetContent });
|
||||
logger.log(`Tweet with id ${info.data.id_str} has been tweeted 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;
|
||||
const stream = twitter.client.stream("statuses/filter", {
|
||||
track: `@${process.env.HANDLE}`
|
||||
});
|
||||
stream.on("tweet", async (tweet) => {
|
||||
if (tweet.user.screen_name !== "esmBot_") {
|
||||
const tweets = (await database.tweets.find({ enabled: true }).exec())[0];
|
||||
const tweetContent = await misc.getTweet(tweets, true);
|
||||
let tweetContent;
|
||||
if (tweet.text.includes("@this_vid") || tweet.text.includes("@DownloaderBot") || tweet.text.includes("@GetVideoBot") || tweet.text.includes("@DownloaderB0t") || tweet.text.includes("@thisvid_")) {
|
||||
tweetContent = await misc.getTweet(tweet, true, true);
|
||||
} else {
|
||||
tweetContent = await misc.getTweet(tweets, true);
|
||||
}
|
||||
const payload = {
|
||||
status: `@${tweet.user.screen_name} ${tweetContent}`,
|
||||
in_reply_to_status_id: tweet.id_str
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue