furmeet-bot/webproj/bot/tasks.py

46 lines
1.5 KiB
Python
Raw Normal View History

2020-07-10 04:57:06 +00:00
import datetime
2020-07-11 21:01:23 +00:00
import django.utils.timezone
2020-07-10 04:57:06 +00:00
from background_task import background
from telegram.bot import Bot
from . import models
@background()
def captcha_kicker():
for pendingCaptchaUser in models.PendingCaptchaUser.objects.all():
2020-07-11 21:01:23 +00:00
td: datetime.timedelta = (pendingCaptchaUser.created + datetime.timedelta(seconds=pendingCaptchaUser.lifetime)) - django.utils.timezone.now()
sec_remain = int(td.total_seconds())
if sec_remain < 0:
if sec_remain < -1800:
2020-07-10 04:57:06 +00:00
pendingCaptchaUser.delete()
continue
bot_token = pendingCaptchaUser.bot_token
bot = Bot(token=bot_token)
2020-07-11 03:34:48 +00:00
try:
bot.kick_chat_member(
chat_id=pendingCaptchaUser.group.telegram_id,
user_id=pendingCaptchaUser.user.telegram_id,
)
except:
pass
try:
bot.unban_chat_member(
chat_id=pendingCaptchaUser.group.telegram_id,
user_id=pendingCaptchaUser.user.telegram_id,
)
except:
pass
try:
bot.delete_message(
chat_id=pendingCaptchaUser.group.telegram_id,
message_id=pendingCaptchaUser.captcha_message_id,
)
except:
pass
2020-07-10 04:57:06 +00:00
pendingCaptchaUser.delete()
captcha_kicker(schedule=1, repeat=10, repeat_until=None)