Browse Source

Может запоминать юзеров между сессиями

Запоминает юзеров, пишет их в базу.
master
Дмитрий 3 years ago
parent
commit
6c877e4626
  1. 20
      main.py

20
main.py

@ -61,7 +61,15 @@ class Token(Base):
def auth(func):
async def wrapper(message):
if message["from"]["id"] not in ALLOWED_USERS:
users_list: Allowed_user = (
session.query(Allowed_user).order_by(Allowed_user.id).all()
)
finded_user: Allowed_user = next(
(u for u in users_list if u.user_id == message["from"]["id"]), None
)
if not finded_user:
return # await message.reply("Access Denied", reply=False)
return await func(message)
@ -151,7 +159,8 @@ async def add_me(message: types.Message):
"""Добавление юзера в чат.
Когда бот получает токен, он проверяет его на валидность (есть ли
такой вообще, не истек ли) и высылает разовую ссылку на вступление.
такой вообще, не истек ли) и высылает разовую ссылку на вступление
в группу.
"""
user_token = message.text[8:].strip()
@ -162,9 +171,14 @@ async def add_me(message: types.Message):
if finded_token.expired():
print("Пизда токену")
# если с токеном все впорядке, то добавляем юзера в базу
if finded_token and not finded_token.expired():
new_user: Allowed_user = Allowed_user(
user_id=message["from"]["id"], date_add=datetime.now()
)
session.add(new_user)
session.commit()
ALLOWED_USERS.append(message["from"]["id"])
# генерируем ссылку, истечет через 5 минут, может вступить 1 человек
link = await bot.create_chat_invite_link(
chat_id=CHAT_ID, expire_date=timedelta(minutes=5), member_limit=1

Loading…
Cancel
Save