Skip to content

Commit 7a482af

Browse files
committed
feat: implement update handler for banned users
This will prevent them from using the bot.
1 parent 39eec4f commit 7a482af

File tree

4 files changed

+37
-5
lines changed

4 files changed

+37
-5
lines changed

blackjackbot/__init__.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
# -*- coding: utf-8 -*-
2+
from telegram import Update
23
from telegram.ext import CommandHandler, CallbackQueryHandler, MessageHandler, Filters
3-
from blackjackbot.errors import error_handler
44

55
from blackjackbot.commands import game, admin, settings, util
6+
from blackjackbot.errors import error_handler
7+
from util import BannedUserHandler, banned_user_callback
8+
9+
# Banned users
10+
banned_user_handler = BannedUserHandler(callback=banned_user_callback, type=Update)
611

712
# User commands
813
start_command_handler = CommandHandler("start", game.start_cmd)
@@ -29,9 +34,11 @@
2934
newgame_callback_handler = CallbackQueryHandler(game.newgame_callback, pattern=r"^newgame$")
3035
language_callback_handler = CallbackQueryHandler(settings.language_callback, pattern=r"^lang_([a-z]{2}(?:-[a-z]{2})?)$")
3136

32-
handlers = [start_command_handler, stop_command_handler, join_callback_handler, hit_callback_handler, stand_callback_handler, start_callback_handler,
33-
language_command_handler, stats_command_handler, newgame_callback_handler, reload_lang_command_handler, language_callback_handler,
34-
users_command_handler, comment_command_handler, comment_text_command_handler, answer_command_handler, ban_command_handler,
37+
handlers = [banned_user_handler,
38+
start_command_handler, stop_command_handler, join_callback_handler, hit_callback_handler,
39+
stand_callback_handler, start_callback_handler, language_command_handler, stats_command_handler,
40+
newgame_callback_handler, reload_lang_command_handler, language_callback_handler, users_command_handler,
41+
comment_command_handler, comment_text_command_handler, answer_command_handler, ban_command_handler,
3542
unban_command_handler, bans_command_handler]
3643

3744
__all__ = ['handlers', 'error_handler']

util/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
# -*- coding: utf-8 -*-
2+
from .bannedusercallback import banned_user_callback
3+
from .banneduserhandler import BannedUserHandler
24
from .cache import Cache
35

4-
__all__ = ['Cache']
6+
__all__ = ["Cache", "BannedUserHandler", "banned_user_callback"]

util/bannedusercallback.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# -*- coding: utf-8 -*-
2+
3+
def banned_user_callback(update, context):
4+
"""Gets called by the dispatcher when it's found that the user sending the update was banned from using the bot"""
5+
banned_text = "You have been banned from using this bot!"
6+
7+
if update.callback_query:
8+
update.callback_query.answer(banned_text)
9+
else:
10+
update.effective_message.reply_text(banned_text)

util/banneduserhandler.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# -*- coding: utf-8 -*-
2+
from telegram.ext import TypeHandler
3+
4+
import database
5+
6+
7+
class BannedUserHandler(TypeHandler):
8+
9+
def check_update(self, update):
10+
db = database.Database()
11+
if db.is_user_banned(update.effective_user.id):
12+
return True
13+
return False

0 commit comments

Comments
 (0)