Skip to content

Instantly share code, notes, and snippets.

@MasterGroosha
Created November 25, 2020 11:09
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MasterGroosha/05df6741efda43a32c957135414829b4 to your computer and use it in GitHub Desktop.
Save MasterGroosha/05df6741efda43a32c957135414829b4 to your computer and use it in GitHub Desktop.
aiogram custom filter example
import logging
from aiogram import Bot, Dispatcher, executor, types
from aiogram.dispatcher.filters import Filter
logging.basicConfig(level=logging.INFO)
bot = Bot(token="")
dp = Dispatcher(bot)
admins = set()
class IsAdmin(Filter):
key = "is_admin"
async def check(self, message: types.Message):
return message.from_user.id in admins
@dp.message_handler(IsAdmin())
async def only_for_admins(message: types.Message):
await message.reply("Only for admins!")
@dp.message_handler(commands="make")
async def add_to_admins(message: types.Message):
admins.add(message.from_user.id)
await message.reply(f"New admins list: {admins}")
if __name__ == "__main__":
dp.bind_filter(IsAdmin)
executor.start_polling(dp, skip_updates=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment