@realfreshman

Как разнести функционал бота по файлам?

Нужно один файл - функция get_data(), а во втором файле бот. Как это сделать?

import requests
import telebot
from auth_data import token
from bs4 import BeautifulSoup
import lxml
import telebot
from telebot import types


def get_data(x):                                                # Получение данных с school№.edu-penza (Адрес, Почта, Телефон)
    url = f"http://school{x}.edu-penza.ru/about/contacts/"
    print(url)
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml', )

    value = soup.find_all("td")
    item_list = []

    for item in value:
        item_list.append(item.text.strip())


    dict_items = {}

    for items in item_list:
        if items == 'Адрес':
            dict_items['Адрес'] = item_list[item_list.index("Адрес") + 1]
        if items == 'E-mail':
            dict_items['E-mail'] = item_list[item_list.index("E-mail") + 1]
        if items == 'Телефон':
            dict_items['Телефон'] = item_list[item_list.index("Телефон") + 1]

        dict_items['Сайт'] = f'http://school{x}.edu-penza.ru'

    return dict_items


bot = telebot.TeleBot('5116629610:AAGaVs83TrbnUmHiwMLnjSBH0UaW4gcN2o4')

@bot.message_handler(commands=['start', 'help'])
def start_message(message):                         # Приветственное сообщение бота
    bot.send_message(message.chat.id, "Привет")


@bot.message_handler(content_types=['text'])
def get_text_messages(message):                     # Бот отправляет данные с сайта (используется функция get_data())
    if message.text == message.text:
        result = message.text.split()
        school_ticket = get_data(result[1])

        strings = []
        for key, item in school_ticket.items():
            strings.append("{}: {}".format(key.capitalize(), item))
        result = "\n".join(strings)


        bot.send_message(message.chat.id, result)


if __name__ == '__main__':
    bot.polling()
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MaximPython
Создайте новый файл .py, закиньте туда get_data() и через import подключите ваш файл
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы