Отправка индивидуального файла в telegram bot python
не знаю как сделать что бы открывало индивидуальный файл пользователя и отправляло ему его "телефонную книгу" (новичок, обучаюсь)
@bot.message_handler(func=lambda message: True, content_types=['text'])
def msg(message):
file_name = str(message.from_user.id) + ".txt"
f = open(file_name, 'a')
f.write(message.text + ' \n')
f.close()
markap = types.InlineKeyboardMarkup()
item = types.InlineKeyboardButton('Посмотреть список контактов', callback_data='qq')
markap.add(item)
bot.send_message(message.chat.id, 'Пользователь добавлен в книгу ✅', reply_markup=markap)
@bot.callback_query_handler(func=lambda call:True)
def callback(call):
if call.message:
if call.data == 'qq':
with open("f{user.id}.txt",'r') as file:
content = file.read()
bot.send_message(call.message.chat.id, f'Список контактов: \n{content}')
Ответы (1 шт):
Автор решения: Мокен
→ Ссылка
Не очень понятен вопрос, ведь в коде все работает. Если вы хотите сделать рассылку пользователям какой-то их личной информации, то сделайте список пользователей
Users = []
и добавляйте в этот список пользователей после сообщения, если его там не было
@bot.message_handler(func=lambda message: True, content_types=['text'])
def msg(message):
isInUsers = False
for(i in Users):
if(message.from_user.id == i):
isInUser = True
if(not isInUser):
Users.append(message.from_user.id)
file_name = str(message.from_user.id) + ".txt"
f = open(file_name, 'a')
f.write(message.text + ' \n')
f.close()
markap = types.InlineKeyboardMarkup()
item = types.InlineKeyboardButton('Посмотреть список контактов', callback_data='qq')
markap.add(item)
bot.send_message(message.chat.id, 'Пользователь добавлен в книгу ✅', reply_markup=markap)
далее можете делать рассылку, проверять пользователя на наличие в базе и т. д. P.S. этот список лучше тоже записать в отдельный файл