mirror of
https://github.com/ArtzSU/SRSP-bot.git
synced 2026-09-17 10:29:04 +00:00
57 lines
2.2 KiB
Python
57 lines
2.2 KiB
Python
import asyncio
|
|
import aiohttp
|
|
from bs4 import BeautifulSoup
|
|
|
|
import random
|
|
import logging
|
|
|
|
URL = 'https://nekdo.ru/random/'
|
|
HEADERS = {
|
|
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
|
|
}
|
|
|
|
JOKES_list = [
|
|
'''— Доктор, у меня проблема: я всё время забываю, что хотел сказать.
|
|
— Сколько это уже продолжается?
|
|
— Что «это»?''',
|
|
|
|
'''— Почему вы опоздали на работу?
|
|
— Проспал.
|
|
— И что, до 16:00 спали?
|
|
— Нет, до 15:55.''',
|
|
|
|
'''— Папа, а кто такой пессимист?
|
|
— Это человек, который, когда ему дают выбор между двумя злами, выбирает оба.''',
|
|
]
|
|
|
|
def findInSoup(soup: BeautifulSoup):
|
|
element = soup.find('div', id=True, class_=True)
|
|
return element
|
|
|
|
async def getAnecdote() -> str:
|
|
logging.info("Запрашиваю анекдот с сайта.")
|
|
async with aiohttp.ClientSession(headers=HEADERS) as session:
|
|
try:
|
|
async with session.get(URL) as response:
|
|
if response.status == 200:
|
|
logging.info("Успешно получен ответ от сервера.")
|
|
html = await response.text()
|
|
soup = BeautifulSoup(html, 'html.parser')
|
|
|
|
element = findInSoup(soup)
|
|
if element:
|
|
logging.info("Анекдот успешно найден на странице.")
|
|
return element.text.strip()
|
|
|
|
logging.warning(f"Получен неудачный статус ответа: {response.status}. Использую локальный анекдот.")
|
|
return random.choice(JOKES_list)
|
|
except Exception as e:
|
|
logging.error(f"Ошибка при запросе: {e}. Использую локальный анекдот.")
|
|
return random.choice(JOKES_list)
|
|
|
|
if __name__ == "__main__":
|
|
async def main():
|
|
text = await getAnecdote()
|
|
print(text)
|
|
|
|
asyncio.run(main()) |