-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbot.py
42 lines (32 loc) · 1.12 KB
/
bot.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import logging
import os
import sys
from telegram.ext import Updater, MessageHandler, Filters
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(levelname)-8s %(name)-30s: %(message)s',
datefmt='%Y-%m-%d %H:%M')
LOG = logging.getLogger(__name__)
def check_new_user(user):
return len(user.full_name.split()) > 5
def new_user_handler(bot, update):
kicked = False
for member in update.message.new_chat_members:
if check_new_user(member):
update.message.chat.kick_member(member.id)
LOG.info(f'Kicked "{member.full_name}"')
kicked = True
if kicked:
LOG.debug('Deleting new message')
update.message.delete()
if __name__ == '__main__':
token = os.environ.get('TOKEN')
if not token:
logging.error('Please set TOKEN env variable')
sys.exit(1)
updater = Updater(token)
updater.dispatcher.add_handler(
MessageHandler(callback=new_user_handler, filters=Filters.status_update.new_chat_members)
)
updater.start_polling()
logging.info('Bot started')
updater.idle()