mirror of
https://github.com/ArtzSU/SRSP-bot.git
synced 2026-09-17 05:48:54 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
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())
|
||||
Reference in New Issue
Block a user