Здравствуйте, я пытаюсь написать бота, который выводит расписание межгородский автобусов, с фиксированной точкой отправления у меня все работает, но вот если делать точки отправления разными, то у меня не получается. Я попробовал сделать через registr , но тоже не получилось(хотя возможно я не правильно понял как им пользоваться). Если не трудно, то помогите пожалуйста.
import telebot, wikipedia,re
import requests
from bs4 import BeautifulSoup as BS
import random
import numpy as np
wikipedia.set_lang('ru')
# BOT TOKEN FROM @BOTFATHER
bot = telebot.TeleBot('token')
def bus(URL):
r=requests.get(URL)
soup=BS(r.text,'html.parser')
timebus=soup.find_all('span',class_='o-text-inline o-text-header o-text-headerSmall')
return[c.text for c in timebus]
URL_a='https://bus.tutu.ru/raspisanie/gorod_Vladimir/gorod_Aleksandrov/'
alecksandrov=bus(URL_a)
URL_g='https://bus.tutu.ru/raspisanie/gorod_Vladimir/gorod_Gus-Hrustalnyj/'
gus_hryst=bus(URL_g)
URL_m='https://bus.tutu.ru/raspisanie/gorod_Vladimir/gorod_Murom/'
myrom=bus(URL_m)
URL_i='https://bus.tutu.ru/raspisanie/gorod_Vladimir/gorod_Ivanovo/'
ivanovo=bus(URL_i)
URL_s='https://bus.tutu.ru/raspisanie/gorod_Vladimir/gorod_Sobinka/'
sobinka=bus(URL_s)
def anektod(url):
r=requests.get(url)
soup=BS(r.text,'html.parser')
anektods=soup.find_all('div',class_='text')
return [c.text for c in anektods]
URL='https://www.anekdot.ru/author-best/years/?years=anekdot'
rand=anektod(URL)
random.shuffle(rand)
def inputs(message):
stanstion=message.text
from telebot import types
@bot.message_handler(commands=['start'])
def welcome(message):
# keyboard
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton("Информация о боте")
item2 = types.KeyboardButton("Расписание автобусов")
wik = types.KeyboardButton('Wiki')
anektods=types.KeyboardButton('Анекдот')
markup.add(item1, item2,wik,anektods)
bot.send_message(message.chat.id,
"Добро пожаловать, {0.first_name}! Я бот ,который скажет расписание автобуса или даст инормацию из Wikipedia \nСписок команд:\n/start - начальная страница\n".format(
message.from_user, bot.get_me()),
parse_mode='html',reply_markup=markup)
@bot.message_handler(content_types=['text'])
def info(message):
if message.text == 'Информация о боте':
bot.send_message(message.chat.id,"Приветсвую, Я бот ,который будет предоставлять информацию о расписание автобусов \n P.S. Так же могу рассказать анектод или вывести информацию из wikipedia")
elif message.text == 'Анекдот':
bot.send_message(message.chat.id,"Анектод:\n")
bot.send_message(message.chat.id,rand[0])
del rand[0]
elif message.text == 'Wiki':
bot.send_message(message.chat.id, 'Напиши слово и я найду его в Wikipedia')
elif message.text =='Расписание автобусов':
lol = types.ReplyKeyboardMarkup(resize_keyboard=True)
alex = types.KeyboardButton("Александров")
myr = types.KeyboardButton("Муром")
gus = types.KeyboardButton ( "Гусь-Хрустальный" )
ivan = types.KeyboardButton ( "Иванова" )
sob = types.KeyboardButton("Собинка")
vlad = types.KeyboardButton("Владимир")
lol.add(alex,myr,gus,ivan,sob,vlad)
bot.send_message(message.chat.id,'Выберите город отправления',reply_markup=lol)
elif message.text=='Владимир':
stops = types.ReplyKeyboardMarkup(resize_keyboard=True)
alex_1 = types.KeyboardButton("Александров")
myr_1 = types.KeyboardButton("Муром")
gus_1 = types.KeyboardButton("Гусь-Хрустальный")
ivan_1 = types.KeyboardButton("Иванова")
sob_1 = types.KeyboardButton("Собинка")
stops.add(alex_1,myr_1,gus_1,ivan_1,sob_1)
otvet=bot.send_message(message.chat.id, 'Выберите город прибытия', reply_markup=stops)
bot.register_message_handler(otvet,inputs)
if message.text == 'Собинка':
bot.send_message ( message.chat.id,'Расписание автобусов по маршруту Владимир -> Собинка' )
for i in range(len(sobinka)//2+1):
if i<(len(sobinka)-2):
s = sobinka[:-1]
bot.send_message(message.chat.id, 'Отправление -> Прибытие ',)
bot.send_message ( message.chat.id, s[i] )
bot.send_message ( message.chat.id, s[i+1] )
del sobinka[1]
else:
bot.send_message ( message.chat.id, 'Больше рейсов нет' )
elif message.text == 'Александров':
bot.send_message ( message.chat.id, 'Расписание автобусов по маршруту Владимир -> Александров:' )
for i in range(len(alecksandrov)//2+1):
if i<(len(alecksandrov)-2):
s = alecksandrov[:-1]
bot.send_message(message.chat.id, 'Отправление -> Прибытие ',)
bot.send_message ( message.chat.id, s[i] )
bot.send_message ( message.chat.id, s[i+1] )
del alecksandrov[1]
else:
bot.send_message ( message.chat.id, 'Больше рейсов нет' )
elif message.text == 'Муром':
bot.send_message ( message.chat.id, 'Расписание автобусов по маршруту Владимир -> Муром:' )
for i in range ( len ( myrom ) //2+1 ):
if i < (len ( myrom ) - 2):
s = myrom[:-1]
bot.send_message(message.chat.id, 'Отправление -> Прибытие ', )
bot.send_message(message.chat.id, s[i])
bot.send_message(message.chat.id, s[i + 1])
del myrom[1]
else:
bot.send_message ( message.chat.id, 'Больше рейсов нет' )
elif message.text == 'Гусь-Хрустальный':
bot.send_message ( message.chat.id, 'Расписание автобусов по маршруту Владимир -> Гусь-Хрустальный:' )
for i in range ( len ( gus_hryst ) //2+1 ):
if i < (len ( gus_hryst ) - 2):
s = gus_hryst[:-1]
bot.send_message(message.chat.id, 'Отправление -> Прибытие ', )
bot.send_message(message.chat.id, s[i])
bot.send_message(message.chat.id, s[i + 1])
del gus_hryst[1]
else:
bot.send_message ( message.chat.id, 'Больше рейсов нет' )
elif message.text == 'Иванова':
bot.send_message ( message.chat.id, 'Расписание автобусов по маршруту Владимир -> Иванова:' )
for i in range ( len ( ivanovo ) //2+1 ):
if i < (len ( ivanovo ) - 2):
s = ivanovo[:-1]
bot.send_message(message.chat.id, 'Отправление -> Прибытие ', )
bot.send_message(message.chat.id, s[i])
bot.send_message(message.chat.id, s[i + 1])
del ivanovo[1]
else:
bot.send_message ( message.chat.id, 'Больше рейсов нет' )
else:
bot.send_message(message.chat.id,'в разработке')
else:
bot.send_message ( message.chat.id,'По вашему запросу было найдено вот это:')
bot.send_message(message.chat.id, getwiki(message.text))
# RUN
bot.polling(none_stop=True)