From b92866f95481db65817b03340de4f75857e29187 Mon Sep 17 00:00:00 2001 From: Harsha Raghu Date: Sat, 15 Jan 2022 16:06:08 +0530 Subject: [PATCH] Implement !vote and update reply cbHandler - Also init'ed Remind me framework --- bot/modules/topgg/data.py | 2 +- bot/modules/topgg/topgg.py | 83 +++++++++++++++++++++++++++++--------- 2 files changed, 66 insertions(+), 19 deletions(-) diff --git a/bot/modules/topgg/data.py b/bot/modules/topgg/data.py index 829ce6da..fef6153a 100644 --- a/bot/modules/topgg/data.py +++ b/bot/modules/topgg/data.py @@ -1,4 +1,4 @@ -from data import RowTable, Table +from data.interfaces import RowTable, Table topggvotes = RowTable( 'topgg', diff --git a/bot/modules/topgg/topgg.py b/bot/modules/topgg/topgg.py index 2ddf0ae1..fd204324 100644 --- a/bot/modules/topgg/topgg.py +++ b/bot/modules/topgg/topgg.py @@ -1,3 +1,4 @@ +from bot.cmdClient.checks.global_perms import in_guild from meta import client import discord import topgg @@ -7,6 +8,7 @@ from .module import module from wards import guild_admin from cmdClient.Context import Context from . import data as db +from data.conditions import GEQ # This example uses topggpy's webhook system. client.topgg_webhook = topgg.WebhookManager(client).dbl_webhook("/dblwebhook", "nopassword123") @@ -26,6 +28,7 @@ async def on_dbl_vote(data): ) await send_user_dm(data['user']) + check_remainder_settings(data['user']) if data["type"] == "test": return client.dispatch("dbl_test", data) @@ -72,25 +75,34 @@ def reply(util_func, *args, **kwargs): # *args will have LionContext # **kwargs should have the actual reply() call's extra arguments - args = list(args) + author = args[0].author.id - if 'embed' in kwargs: - kwargs['embed'].add_field( - name="\u200b", - value=( - f"Upvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" - ), - inline=False - ) - elif 'content' in args and args['content']: - args['content'] += "\n\nUpvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" - elif len(args) > 1: - args[1] += "\n\nUpvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" - else: - args['content'] = "\n\nUpvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" + if not db.topggvotes.select_one_where( + userid=author, + # start_at=LEQ(utc_now() - datetime.timedelta(hours=1)), + # start_at=LEQ(utc_now()), + select_columns="boostedTimestamp", + boostedTimestamp=GEQ(datetime.datetime.utcnow() - datetime.timedelta(hours=12.5)), + _extra="ORDER BY boostedTimestamp DESC LIMIT 1" + ): + args = list(args) + if 'embed' in kwargs: + kwargs['embed'].add_field( + name="\u200b", + value=( + f"Upvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" + ), + inline=False + ) + elif 'content' in args and args['content']: + args['content'] += "\n\nUpvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" + elif len(args) > 1: + args[1] += "\n\nUpvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" + else: + args['content'] = "\n\nUpvote me to get 🌟**+25% Economy Boost**🌟 - Use `!vote`" - args = tuple(args) - client.log('test') + args = tuple(args) + client.log('test') return [args, kwargs] @@ -121,4 +133,39 @@ async def cmd_forcevote(ctx): await on_dbl_vote({"user": target.id, "type": "test"}) return await ctx.reply('Topgg vote simulation successful on {}'.format(target)) - \ No newline at end of file + + +@module.cmd( + "vote", + desc="Get Top.gg bot's link for Economy boost.", + group="Economy", + aliases=('topgg', 'topggvote', 'upvote') +) +@in_guild() +async def cmd_vote(ctx): + """ + Usage``: + {prefix}vote + Description: + Get Top.gg bot's link for +25% Economy boost. + """ + target = ctx.author + + return await ctx.reply('My Top.gg vote link is here: https://top.gg/bot/889078613817831495/vote \nThanks!') + + +@module.cmd( + "remind_vote", + group="Personal Settings", + desc="Turn on/off DM Remainder to Upvote me.", + long_help="Use this setting to enable/disable DM remainders from me to upvote on Top.gg." +) +async def cmd_remind_vote(ctx): + """ + Usage``: + {prefix}remind_vote on + {prefix}remind_vote off + + Use this setting to enable/disable DM remainders from me to upvote on Top.gg. + """ + pass \ No newline at end of file