У меня ест две функции с рассылкой. Одна отправляет фото, а другая текс. Сейчас при отправки фото в диалог с ботом, оно автоматически разошьется всем. Как сделать так чтобы фото отправлялось только при условии того, что функция с отправкой текста выполнена или выполняется.
#mailing
@bot.message_handler(commands=['news'])
def hendler_newsletter(message):
connect = sqlite3.connect('admins.db')
cursor = connect.cursor()
admin = [x[0] for x in cursor.execute('SELECT * FROM admins_id ORDER BY id') if x[0] == message.chat.id]
connect.commit()
if admin:
msg = bot.send_message(message.chat.id, "Что вы хотите отправить всем пользователям бота ?")
bot.register_next_step_handler(msg, mailing)
def mailing(message):
# рассылка текста
connect = sqlite3.connect('admins.db')
cursor = connect.cursor()
admin = [x[0] for x in cursor.execute('SELECT * FROM admins_id ORDER BY id') if x[0] == message.chat.id]
connect.commit()
if admin:
connect = sqlite3.connect('users.db')
cursor = connect.cursor()
for user in cursor.execute('SELECT * FROM login_id ORDER BY id'):
bot.send_message(user[0],message.text)
connect.commit()
kb = types.ReplyKeyboardMarkup(True)
kb.row('✅Да', '❌Нет')
bot.send_message(message.chat.id,"Прикрепить фото ?" , reply_markup=kb)
if message.text == '✅Да':
bot.register_next_step_handler(msg, handle_docs_photo)
if message.text == '❌Нет':
bot.register_next_step_handler(msg, hendler_keyboard)
@bot.message_handler(content_types=['photo'])
def handle_docs_photo(message):
# рассылка фото
connect = sqlite3.connect('admins.db')
cursor = connect.cursor()
admin = [x[0] for x in cursor.execute('SELECT * FROM admins_id ORDER BY id') if x[0] == message.chat.id]
connect.commit()
if admin:
file_info = bot.get_file(message.photo[len(message.photo)-1].file_id)
downloaded_file = bot.download_file(file_info.file_path)
src='C:/Python/Bot/'+file_info.file_path;
with open(src, 'wb') as new_file:
new_file.write(downloaded_file)
connect = sqlite3.connect('users.db')
cursor = connect.cursor()
for user in cursor.execute('SELECT * FROM login_id ORDER BY id'):
bot.send_photo(user[0], open(src, 'rb'))
msg = bot.send_message(message.chat.id, "Рассылка окончена")
bot.register_next_step_handler(msg, hendler_keyboard)