add http_client

This commit is contained in:
felinae98
2022-05-22 21:38:18 +08:00
parent 5057d28e6d
commit 905476f9d5
11 changed files with 46 additions and 33 deletions
@@ -1,12 +1,12 @@
import json
from typing import Any
import httpx
from bs4 import BeautifulSoup as bs
from nonebot.plugin import require
from ..post import Post
from ..types import Category, RawPost, Target
from ..utils import http_client
from .platform import CategoryNotSupport, NewMessage, StatusChange
@@ -26,7 +26,7 @@ class Arknights(NewMessage):
return "明日方舟游戏信息"
async def get_sub_list(self, _) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
raw_data = await client.get(
"https://ak-conf.hypergryph.com/config/prod/announce_meta/IOS/announcement.meta.json"
)
@@ -44,7 +44,7 @@ class Arknights(NewMessage):
async def parse(self, raw_post: RawPost) -> Post:
announce_url = raw_post["webUrl"]
text = ""
async with httpx.AsyncClient() as client:
async with http_client() as client:
raw_html = await client.get(announce_url)
soup = bs(raw_html.text, "html.parser")
pics = []
@@ -99,7 +99,7 @@ class AkVersion(StatusChange):
return "明日方舟游戏信息"
async def get_status(self, _):
async with httpx.AsyncClient() as client:
async with http_client() as client:
res_ver = await client.get(
"https://ak-conf.hypergryph.com/config/prod/official/IOS/version"
)
@@ -155,7 +155,7 @@ class MonsterSiren(NewMessage):
return "明日方舟游戏信息"
async def get_sub_list(self, _) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
raw_data = await client.get("https://monster-siren.hypergryph.com/api/news")
return raw_data.json()["data"]["list"]
@@ -170,7 +170,7 @@ class MonsterSiren(NewMessage):
async def parse(self, raw_post: RawPost) -> Post:
url = f'https://monster-siren.hypergryph.com/info/{raw_post["cid"]}'
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(
f'https://monster-siren.hypergryph.com/api/news/{raw_post["cid"]}'
)
@@ -207,7 +207,7 @@ class TerraHistoricusComic(NewMessage):
return "明日方舟游戏信息"
async def get_sub_list(self, _) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
raw_data = await client.get(
"https://terra-historicus.hypergryph.com/api/recentUpdate"
)
@@ -1,10 +1,9 @@
import json
from typing import Any, Optional
import httpx
from ..post import Post
from ..types import Category, RawPost, Tag, Target
from ..utils import http_client
from .platform import CategoryNotSupport, NewMessage
@@ -28,7 +27,7 @@ class Bilibili(NewMessage):
has_target = True
async def get_target_name(self, target: Target) -> Optional[str]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(
"https://api.bilibili.com/x/space/acc/info", params={"mid": target}
)
@@ -38,7 +37,7 @@ class Bilibili(NewMessage):
return res_data["data"]["name"]
async def get_sub_list(self, target: Target) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
params = {"host_uid": target, "offset": 0, "need_top": 0}
res = await client.get(
"https://api.vc.bilibili.com/dynamic_svr/v1/dynamic_svr/space_history",
+2 -3
View File
@@ -1,9 +1,8 @@
from typing import Any
import httpx
from ..post import Post
from ..types import RawPost, Target
from ..utils import http_client
from .platform import NewMessage
@@ -23,7 +22,7 @@ class FF14(NewMessage):
return "最终幻想XIV官方公告"
async def get_sub_list(self, _) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
raw_data = await client.get(
"https://ff.web.sdo.com/inc/newdata.ashx?url=List?gameCode=ff&category=5309,5310,5311,5312,5313&pageIndex=0&pageSize=5"
)
@@ -1,9 +1,8 @@
from typing import Any, Optional
import httpx
from ..post import Post
from ..types import RawPost, Target
from ..utils import http_client
from .platform import NewMessage
@@ -20,7 +19,7 @@ class NcmArtist(NewMessage):
has_target = True
async def get_target_name(self, target: Target) -> Optional[str]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(
"https://music.163.com/api/artist/albums/{}".format(target),
headers={"Referer": "https://music.163.com/"},
@@ -31,7 +30,7 @@ class NcmArtist(NewMessage):
return res_data["artist"]["name"]
async def get_sub_list(self, target: Target) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(
"https://music.163.com/api/artist/albums/{}".format(target),
headers={"Referer": "https://music.163.com/"},
@@ -1,9 +1,8 @@
from typing import Any, Optional
import httpx
from ..post import Post
from ..types import RawPost, Target
from ..utils import http_client
from .platform import NewMessage
@@ -20,7 +19,7 @@ class NcmRadio(NewMessage):
has_target = True
async def get_target_name(self, target: Target) -> Optional[str]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.post(
"http://music.163.com/api/dj/program/byradio",
headers={"Referer": "https://music.163.com/"},
@@ -32,7 +31,7 @@ class NcmRadio(NewMessage):
return res_data["programs"][0]["radio"]["name"]
async def get_sub_list(self, target: Target) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.post(
"http://music.163.com/api/dj/program/byradio",
headers={"Referer": "https://music.163.com/"},
+3 -3
View File
@@ -2,11 +2,11 @@ import calendar
from typing import Any, Optional
import feedparser
import httpx
from bs4 import BeautifulSoup as bs
from ..post import Post
from ..types import RawPost, Target
from ..utils import http_client
from .platform import NewMessage
@@ -23,7 +23,7 @@ class Rss(NewMessage):
has_target = True
async def get_target_name(self, target: Target) -> Optional[str]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(target, timeout=10.0)
feed = feedparser.parse(res.text)
return feed["feed"]["title"]
@@ -35,7 +35,7 @@ class Rss(NewMessage):
return post.id
async def get_sub_list(self, target: Target) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(target, timeout=10.0)
feed = feedparser.parse(res)
entries = feed.entries
+4 -4
View File
@@ -3,12 +3,12 @@ import re
from datetime import datetime
from typing import Any, Optional
import httpx
from bs4 import BeautifulSoup as bs
from nonebot.log import logger
from ..post import Post
from ..types import *
from ..utils import http_client
from .platform import NewMessage
@@ -30,7 +30,7 @@ class Weibo(NewMessage):
has_target = True
async def get_target_name(self, target: Target) -> Optional[str]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
param = {"containerid": "100505" + target}
res = await client.get(
"https://m.weibo.cn/api/container/getIndex", params=param
@@ -42,7 +42,7 @@ class Weibo(NewMessage):
return None
async def get_sub_list(self, target: Target) -> list[RawPost]:
async with httpx.AsyncClient() as client:
async with http_client() as client:
params = {"containerid": "107603" + target}
res = await client.get(
"https://m.weibo.cn/api/container/getIndex?", params=params, timeout=4.0
@@ -128,7 +128,7 @@ class Weibo(NewMessage):
retweeted = True
pic_num = info["retweeted_status"]["pic_num"] if retweeted else info["pic_num"]
if info["isLongText"] or pic_num > 9:
async with httpx.AsyncClient() as client:
async with http_client() as client:
res = await client.get(
"https://m.weibo.cn/detail/{}".format(info["mid"]), headers=header
)