Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save savely-krasovsky/9d836533a3f78b4a1645013a407dc343 to your computer and use it in GitHub Desktop.
Save savely-krasovsky/9d836533a3f78b4a1645013a407dc343 to your computer and use it in GitHub Desktop.
r.table('users').changes()
.filter(r.row('new_val')('profile').ne(r.row('old_val')('profile')))
.then(function (cursor) {
cursor.each(async function (err, row) {
if (err) new Error(err);
сonsole.log('Feed change detected!');
await setLocale({from: {id: row.old_val.id}})
if (row.old_val && row.new_val && row.old_val.profile && row.new_val.profile) {
const oldStats = row.old_val.profile.stats.competitive.overall_stats;
const newStats = row.new_val.profile.stats.competitive.overall_stats;
oldStats.level = oldStats.level + oldStats.prestige * 100;
newStats.level = newStats.level + newStats.prestige * 100;
const diffStats = {
comprank: newStats.comprank - oldStats.comprank,
games: newStats.games - oldStats.games,
level: newStats.level - oldStats.level,
losses: newStats.losses - oldStats.losses,
ties: newStats.ties - oldStats.ties,
wins: newStats.wins - oldStats.wins,
};
function addInfo(name, oldInfo, newInfo, diffInfo) {
let text = `${name}\n<code>${oldInfo} | ${newInfo} |`;
if (diffInfo > 0)
text += ` +${diffInfo} 📈\n</code>`;
else if (diffInfo === 0)
text += ` ${diffInfo} —\n</code>`;
else
text += ` ${diffInfo} 📉\n</code>`;
return text;
}
let text = translate("report_header");
text += addInfo(translate("report_rating"), oldStats.comprank, newStats.comprank, diffStats.comprank);
text += addInfo(translate("report_wins"), oldStats.wins, newStats.wins, diffStats.wins);
text += addInfo(translate("report_losses"), oldStats.losses, newStats.losses, diffStats.losses);
text += addInfo(translate("report_ties"), oldStats.ties, newStats.ties, diffStats.ties);
text += addInfo(translate("report_level"), oldStats.level, newStats.level, diffStats.level);
bot.sendMessage(row.old_val.id, text, {parse_mode: 'HTML'});
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment