zhenxun_bot/plugins/search_buff_skin_price/data_source.py

59 lines
2.1 KiB
Python
Raw Normal View History

2021-05-20 19:23:32 +08:00
from asyncio.exceptions import TimeoutError
2021-11-04 16:11:50 +08:00
from configs.config import Config
2021-11-23 21:44:59 +08:00
from utils.http_utils import AsyncHttpx
from services.log import logger
2021-05-20 19:23:32 +08:00
url = "https://buff.163.com/api/market/goods"
2021-11-23 21:44:59 +08:00
async def get_price(d_name: str) -> "str, int":
"""
查看皮肤价格
:param d_name: 武器皮肤awp 二西莫夫
"""
2021-11-04 16:11:50 +08:00
cookie = {"session": Config.get_config("search_buff_skin_price", "COOKIE")}
2021-05-20 19:23:32 +08:00
name_list = []
price_list = []
2021-11-23 21:44:59 +08:00
parameter = {"game": "csgo", "page_num": "1", "search": d_name}
2021-05-20 19:23:32 +08:00
try:
2021-11-23 21:44:59 +08:00
response = await AsyncHttpx.get(
url,
proxy=Config.get_config("search_buff_skin_price", "BUFF_PROXY"),
params=parameter,
cookies=cookie,
)
if response.status_code == 200:
try:
if response.text.find("Login Required") != -1:
return "BUFF登录被重置请联系管理员重新登入", 996
data = response.json()["data"]
total_page = data["total_page"]
data = data["items"]
for _ in range(total_page):
for i in range(len(data)):
name = data[i]["name"]
price = data[i]["sell_reference_price"]
name_list.append(name)
price_list.append(price)
except Exception as e:
logger.error(f"BUFF查询皮肤发生错误 {type(e)}{e}")
return "没有查询到...", 998
else:
return "访问失败!", response.status_code
2021-11-04 16:11:50 +08:00
except TimeoutError:
2021-05-20 19:23:32 +08:00
return "访问超时! 请重试或稍后再试!", 997
2021-11-23 21:44:59 +08:00
result = f"皮肤: {d_name}({len(name_list)})\n"
2021-05-20 19:23:32 +08:00
for i in range(len(name_list)):
result += name_list[i] + ": " + price_list[i] + "\n"
return result[:-1], 999
2021-11-04 16:11:50 +08:00
def update_buff_cookie(cookie: str) -> str:
Config.set_config("search_buff_skin_price", "COOKIE", cookie)
return "更新cookie成功"
2021-05-20 19:23:32 +08:00
2021-07-30 21:21:51 +08:00
if __name__ == "__main__":
2021-05-20 19:23:32 +08:00
print(get_price("awp 二西莫夫"))