feat: 初版

This commit is contained in:
范胜发
2022-12-13 14:54:11 +08:00
commit 7b04d8bc16
12 changed files with 371 additions and 0 deletions

61
bgmTVApi.py Normal file
View File

@ -0,0 +1,61 @@
import requests
from requests import exceptions
# 消除ssl告警
requests.packages.urllib3.disable_warnings()
tokenFile = open('accessToken', encoding = "utf-8")
token = tokenFile.read()
tokenFile.close()
headers = { 'Authorization': f'Bearer {token}', 'Content-Type': 'application/json', 'User-Agent': 'Hiiragi/bangumi-mail-notification' }
def fetchSubjectInfo(subject_name):
result = {
'status': False,
'data': None,
'message': ''
}
try:
response = requests.get(url=f'https://api.bgm.tv/search/subject/{subject_name}?type=2&responseGroup=medium', verify=False, headers=headers)
except exceptions.Timeout as e:
result['message'] = '番剧信息请求超时:' + str(e.message)
except exceptions.HTTPError as e:
result['message'] = '番剧信息http请求错误' + str(e.message)
else:
if response.status_code == 200:
resJson = response.json()
if resJson.get('list') is not None:
result['data'] = resJson.get('list')[0]
result['status'] = True
else:
result['message'] = '番剧信息请求错误:' + str(response.status_code) + ',' + str(response.reason)
return result
def fetchEpisodeInfo(subject_id, episodeNo):
result = {
'status': False,
'data': None,
'message': ''
}
try:
response = requests.get(url=f'https://api.bgm.tv/v0/episodes?subject_id={subject_id}', verify=False, headers=headers)
except exceptions.Timeout as e:
result['message'] = '剧集信息请求超时:' + str(e.message)
except exceptions.HTTPError as e:
result['message'] = '剧集信息http请求错误' + str(e.message)
else:
if response.status_code == 200:
resJson = response.json()
if resJson.get('data') is not None:
for d in resJson.get('data'):
if d.get('ep') == int(episodeNo):
result['data'] = d
result['status'] = True
else:
result['message'] = '剧集信息请求错误:' + str(response.status_code) + ',' + str(response.reason)
return result