-
Notifications
You must be signed in to change notification settings - Fork 0
/
jokes_api.py
39 lines (27 loc) · 1.23 KB
/
jokes_api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import json
import requests
def get_joke() -> str:
"""Получить анекдот с сайта rzhunemogu.ru.
Возвращает:
`str`: текст анекдота.
"""
# Ссылка на API
url = 'http://rzhunemogu.ru/RandJSON.aspx?CType=1'
# Выполнение HTTP GET запроса к API
response = requests.get(url)
# Получение текста страницы
text = response.text
########## ПЕРЕРАБОТКА ВОЗВРАТА API ##########
# Убираем символ возврата каретки
text = text.replace('\r', '')
# Экранируем символ новой строки
text = text.replace('\n', '\\n')
# Временно заменяем все кавычки
text = text.replace('"', '”')
# Восстанавливаем структуру JSON, заменяя кавычки на двойные
text = text.replace('”content”:”', '"content": "')
text = text[::-1].replace('”', '"', 1)[::-1]
# Сериализуем строку в словарь (str → dict)
json_response = json.loads(text)
# Возвращаем текст анекдота
return json_response["content"]