mirror of
https://github.com/halfwaystudent/douyin-sparkflow.git
synced 2026-07-05 22:41:37 +08:00
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
import requests
|
|
from utils.config import get_config
|
|
|
|
hitokotoApi = "https://v1.hitokoto.cn/"
|
|
|
|
allHitokotoTypes = {
|
|
"动画": "a",
|
|
"漫画": "b",
|
|
"游戏": "c",
|
|
"文学": "d",
|
|
"原创": "e",
|
|
"来自网络": "f",
|
|
"其他": "g",
|
|
"影视": "h",
|
|
"诗词": "i",
|
|
"哲学": "k",
|
|
"抖机灵": "l",
|
|
}
|
|
|
|
|
|
def request_hitokoto():
|
|
"""请求一言 API 获取一句话"""
|
|
config = get_config()
|
|
|
|
api_url = hitokotoApi
|
|
|
|
for t in allHitokotoTypes.keys():
|
|
if t in config["hitokotoTypes"]:
|
|
if "?" not in api_url:
|
|
api_url += "?"
|
|
if "c=" in api_url:
|
|
api_url += f"&c={allHitokotoTypes[t]}"
|
|
else:
|
|
api_url += f"c={allHitokotoTypes[t]}"
|
|
|
|
try:
|
|
response = requests.get(api_url, timeout=10)
|
|
response.raise_for_status()
|
|
data = response.json()
|
|
theFrom = data.get("from")
|
|
if theFrom is None or theFrom.strip() == "":
|
|
theFrom = "未知来源"
|
|
theFromWho = data.get("from_who")
|
|
if theFromWho is None or theFromWho.strip() == "":
|
|
theFromWho = "未知作者"
|
|
return f"{data['hitokoto']} —— {theFrom} ({theFromWho})"
|
|
except Exception as e:
|
|
return "[error] 无法获取一言内容"
|