class Mybot(telebot.TeleBot):
def __init__(self,arg, *args, **kwargs):
super().__init__(arg, *args, **kwargs)
def loop_poop(self):
while True:
time.sleep(15)
print(time.ctime())
def polling(self, *args, **kwargs):
thread = threading.Thread(target=self.loop_poop)
thread.start()
super().polling(*args, **kwargs)
# -*- coding: utf-8 -*-
import telebot
bot = telebot.TeleBot('11111111111')
en = ['one','two','three']
ru = ['один','два','три']
@bot.message_handler(commands=[ 'start'])
def send_welcome(message):
msg = bot.send_message(message.chat.id,f'Переведи слово {ru[0]}')
bot.register_next_step_handler(msg, process_name_step, 0 )
def process_name_step(message, count=0):
print(message.text, count, len(en))
if message.text == en[count]:
if count<len(en)-1:
msg = bot.send_message(message.chat.id,f'Молодец,\nПереведи слово {ru[count+1]}')
bot.register_next_step_handler(msg, process_name_step, count+1)
else:
bot.send_message(message.chat.id,'Вопросы закончились')
count=0
else:
if count<len(en)-1:
msg = bot.send_message(message.chat.id,f'Неугадал,\nПереведи слово {ru[count+1]}')
bot.register_next_step_handler(msg, process_name_step, count+1)
else:
bot.send_message(message.chat.id,'Вопросы закончились')
count = 0
bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers()
bot.polling()
@bot.message_handler(func=lambda message: message.text == "start")
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Добро пожаловать в бот Агрегатор новостей! Здесь вы можете подписаться на рассылку '
'интересующих вас новостей, которые бот будет вам отправлять. '
'Для вывода новостных источников напишите команду /news', reply_markup = start_buttons())
Base().add_user(message.from_user.id, message.chat.id)
class Mybot(telebot.TeleBot):
def __init__(self,arg, *args, **kwargs):
super().__init__(arg, *args, **kwargs)
def loop_poop(self):
while True:
parse_all_news(self)
time.sleep(15)
print(time.ctime())
def polling(self, *args, **kwargs):
thread = threading.Thread(target=self.loop_poop)
thread.start()
super().polling(*args, **kwargs)
@bot.callback_query_handler(func=lambda call: call.data in news_sources.values())
def callback_worker(call):
news_source = ''
for k,v in news_sources.items():
if call.data == v:
news_source = k
try:
Base().add_subscribe(call.from_user.id, call.data)
bot.edit_message_text(f'Вы подписались на новости {news_source}', call.message.chat.id, call.message.message_id, reply_markup=subscribe_news_buttons())
except Exception as e:
bot.send_message(call.message.chat.id, f'Подписка на новости {news_source} не удалась')
def subscribe_news_buttons():
keyboard = types.InlineKeyboardMarkup()
for btn_text, callback in news_sources.items():
keyboard.add(types.InlineKeyboardButton(text=btn_text, callback_data=callback))
return keyboard
def get_user_subscribes(user_id):
keyboard = types.InlineKeyboardMarkup()
sc = Base().get_subscribes(user_id)
for chanel,sbs in sc:
if sbs == '1':
news_source = ''
for k,v in news_sources.items():
if chanel == v:
news_source = k
keyboard.add(types.InlineKeyboardButton(text='Отписаться от '+news_source, callback_data=f'del_{chanel}'))
return keyboard
def get_subscribes(self,user_id):
r1,r2=[],[]
sql = f"SELECT * FROM {self.table} WHERE {user_id} = user_id"
try:
res = self.cursor.execute(sql).fetchall()
rows = self.cursor.execute(sql).description
x=0
for row in rows[2:]:
r1.append(row[0])
for _ in res[0][2:]:
r2.append(_)
result = zip(r1,r2)
return list(result)
except Exception as e:
return False, e
Вообщем, мне нужен код
@bot.message_handler(commands=["start"])
def welcome(message):
#Сделаем клавиатуру
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Как дела?")
item2 = types.KeyboardButton("Я знаю что ты вор!")
item3 = types.KeyboardButton("Есть хочешь?")
item4 = types.KeyboardButton("А спать хочешь?")
item5 = types.KeyboardButton("Что-то секретное...")
markup.add(item1, item2, item5)
bot.send_message(message.chat.id, "Привет, {0.first_name}!\nЯ - <b>{1.first_name}</b>. Напиши мне что-то, может познакомимся, да?".format(message.from_user, bot.get_me()),
parse_mode='html', reply_markup=markup)
start_page_buttons=["Как дела?","Я знаю что ты вор!","Есть хочешь?","А спать хочешь?", "Что-то секретное..."]
def start_buttons_create():
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
for _ in start_page_buttons:
keyboard.add(_)
return keyboard
bot.send_message(message.chat.id, "Привет, {0.first_name}!\nЯ - <b>{1.first_name}</b>. Напиши мне что-то, может познакомимся, да?".format(message.from_user, bot.get_me()),
parse_mode='html', reply_markup=start_buttons_create())
bot.send_message (message.chat.id, 'Напиши, и я запомню', callback_data = 'i know')
markup4 = types.InlineKeyboardMarkup()
item1 = types.InlineKeyboardButton("Разозлиться", callback_data='good1')
item2 = types.InlineKeyboardButton("Вытереть слезки", callback_data='bad1')
markup4.add(item1, item2)
bot.send_message(message.chat.id, text='Выбрать действие:', reply_markup=markup4)
def process_age_step(message):
try:
chat_id = message.chat.id
age = message.text
if not age.isdigit():
msg = bot.reply_to(message, 'Age should be a number. How old are you?')
bot.register_next_step_handler(msg, process_age_step)
return
user = user_dict[chat_id]
user.age = age
markup = types.ReplyKeyboardMarkup(one_time_keyboard=True)
markup.add('Male', 'Female')
msg = bot.reply_to(message, 'What is your gender', reply_markup=markup)
bot.register_next_step_handler(msg, process_sex_step)
except Exception as e:
bot.reply_to(message, 'oooops')
def process_sex_step(message):
try:
chat_id = message.chat.id
sex = message.text
keybord = keybord_yes_or_no()
bot.send_message(massage.from_user.id, text= quest, reply_markup=keybord)
def day_btns():
days = types.InlineKeyboardMarkup(row_width=7)
days.add(*[types.InlineKeyboardButton(text='Day '+str(i),callback_data='call'+str(i)) for i in range(1,8)])
return days
#Пример использования
bot.send_message(message.chat.id,'Days of week',reply_markup=day_btns())
#Хватает и одной строки
import telebot
import time
import threading
API_TOKEN = '11111111111111111111111111111111'
class my_bot(telebot.TeleBot):
def loop_poop(self):
while True:
print(time.ctime())
time.sleep(1)
def start_action(self):
thread = threading.Thread(target=self.loop_poop)
thread.start()
bot = my_bot(token = API_TOKEN, threaded=False)
@bot.message_handler(commands=['start'])
def wellcome(message):
if message.chat.type == 'private':
bot.send_message(message.chat.id,'Hello')
bot.start_action()
bot.polling()
@bot.message_handler(content_types=['text']) сделать вычисления, а потом в @bot.callback_query_handler(func=lambda call: True) эти вычисления отправлять.
1 лошадь
5 лошадь
kb2 = types.InlineKeyboardButton('1 horse', callback_data = '1h')
kb3 = types.InlineKeyboardButton('5 horse', callback_data = '10h')
def inline (call): if call.message: if call.data == '10': time.sleep(10)
import telebot
import time
import threading
API_TOKEN = '11111111111111111111111111111111'
class my_bot(telebot.TeleBot):
def loop_poop(self):
while True:
print(time.ctime())
time.sleep(1)
def start_action(self):
thread = threading.Thread(target=self.loop_poop)
thread.start()
bot = my_bot(token = API_TOKEN, threaded=False)
@bot.message_handler(commands=['start'])
def wellcome(message):
if message.chat.type == 'private':
bot.send_message(message.chat.id,'Hello')
bot.start_action()
bot.polling()
@bot.message_handler(content_types=["video"])
def confirming(message):
if message.content_type == 'video':
print(message.video.file_id) #ID видео файла на сервере
bot.send_video(message.chat.id, message.video.file_id)# Отправляешь его сам себе
else:
pass
@bot.message_handler(commands=['start'])
def start_m(message):
kkb = types.ReplyKeyboardMarkup()
bbt = types.KeyboardButton('Отправить контакт',request_contact=True)
kkb.add(bbt)
bot.send_message(message.chat.id,'Нажми на кнопку, чтобы отправить контакт', reply_markup = kkb)
import telebot
from telebot import types
token = bottoken
bot = telebot.TeleBot(token)
bot.polling()
#Все хендлеры
@bot.message_handler(commands=['start'])
def welcome(message):
#Все коллбеки без elif а нормально читаемые
@bot.callback_query_handler(func=lambda call: call.data == '7')
def seven(call):
bot.send_message(call.message.chat.id,text = 'seven')
@bot.callback_query_handler(func=lambda call: call.data == '1')
def one(call):
bot.send_message(call.message.chat.id,text = 'one')
type_of_choice = int(input('Type: '))
num = int(input("Quantity of passwords: "))
length = int(input("Length of password: "))