Как отправлять через бота уведомления пользователям зная их id?
Есть бот и БД, на языке python, в БД хранятся данные в том числе и chat_id, так вот как отправлять уведомления в бот всем пользователям зная id? как правильно прописать метод?
Ответы (2 шт):
Автор решения: Ян Морозов
→ Ссылка
ID_LIST = []
def connection_func(func):
"""Декоратор для соебинения с базой данных"""
def camel(*args, **kwargs):
try:
connection = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
database=db_name,
cursorclass=pymysql.cursors.DictCursor
)
print('successfully connected...')
print('#' * 30)
try:
result = func(connection, *args, **kwargs)
return result
finally:
connection.close()
except Exception as exp:
print('Connection refused...')
print(f'FAIL{exp}')
return camel
@connection_func
def upload_users_data(connection):
"""Выгрузка данных пользователя из базы данных"""
with connection.cursor() as cursor:
select_all_data = "SELECT * FROM `users`"
cursor.execute(select_all_data)
rows = cursor.fetchall()
print(f'•• DATA USERS\n'
f'{"Name":<10} {"ID":<10} Progress') # todo вынести в общий модуль
return rows
for i in upload_users_data():
ID_LIST.append(i['id'])
# Тксть для отправки
TEXT = 'Текст'
@bot.message_handler(commands=['start'])
async def get_user_info(message):
for user_id in ID_LIST:
await bot.send_message(chat_id=user_id, text="TEXT")
Если будут ошибки стоит слегка поправить последнюю функцию