import telebot
bot = telebot.TeleBot('токен')
@bot.message_handler(commands=['start'])
def start(message):
keyboard = types.InlineKeyboardMarkup()
keyboard.add(types.InlineKeyboardButton(text='Оставить жалобу', callback_data='ZHALOBA'))
bot.send_message(message.chat.id, 'Главное меню', reply_markup=keyboard)
@bot.callback_query_handler(func=lambda call: True)
def ans(call):
if call.data == 'ZHALOBA':
func1(call.message, call)
def func1(message, call):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(*[types.KeyboardButton(name) for name in ['Назад']])
bot.send_message(message.chat.id, "Отправьте мне текст для жалобы", reply_markup=keyboard)
@bot.message_handler(content_types=['text'])
def test(message):
if message.text == 'Назад':
start(message)
elif message.text != None:
zhaloba = message.text
if __name__ == '__main__':
while True:
try:
bot.polling(none_stop=True)
except:
time.sleep(5)
count = 0
errors = 0
with sq.connect('base.db') as con:
cur = con.cursor()
cur.execute('''SELECT userid FROM users''')
AllUser = cur.fetchall()
start_time = time.time()
for s in range(len(AllUser)):
user_id = AllUser[count][0]
try:
bot.send_message(user_id, text='Текст для рассылки')
count += 1
except:
count += 1
errors += 1
with sq.connect('base.db') as con:
cur = con.cursor()
cur.execute('''DELETE FROM users WHERE userid=?''', (user_id,)) # поймали ошибку на айди юзера и удалили его из базы
allusers = int(len(dataid))
goodresult = allusers - errors
goodresult = str(goodresult)
errors = str(errors)
times = "Время выполнения: %s сек." % round((time.time() - start_time))
sms = 'Рассылка завершена!'+'\n'+ 'Успешных результатов: '+goodresult+'\n'+'Ошибок: '+errors+'\n'+str(times)
bot.send_message(твой_айди, sms)# сюда придет уведомление о результатах рассылки
userid = message.chat.id
with sq.connect('base.db') as con:
cur = con.cursor()
cur.execute('''SELECT userid FROM users''')
ALLuser = cur.fetchall()
if userid in ALLuser:
print('Такой ID уже есть')
else:
with sq.connect('base.db') as con:
cur = con.cursor()
cur.execute('''INSERT INTO users(userid) VALUES(?)''', (userid))
И как потом сделать рассылку чтобы можно было прекрепить инлайн кнопку,картинку и к нему фотку в одном сообщении?
with sq.connect('base.db') as con:
cur = con.cursor()
cur.execute('''SELECT userid FROM user''')
AllUser = cur.fetchall()
count = 0
errors = 0
start_time = time.time()
for s in range(len(AllUser)):
user_id = AllUser[count][0]
try:
bot.send_message(user_id, text='Текст для рассылки')
count += 1
except:
count += 1
errors += 1
allusers = int(len(dataid))
goodresult = allusers - errors
goodresult = str(goodresult)
errors = str(errors)
times = "Время выполнения: %s сек." % round((time.time() - start_time))
timesstr = times
sms = 'Рассылка завершена!'+'\n'+ 'Успешных результатов: '+goodresult+'\n'+'Ошибок: '+errors+'\n'+timesstr
bot.send_message(твой_айди, sms)# сюда придет уведомление о результатах рассылки