zhenxun_bot/plugins/search_buff_skin_price/data_source.py

66 lines
2.5 KiB
Python
Raw Normal View History

2021-06-30 19:50:55 +08:00
from utils.user_agent import get_user_agent
2021-05-20 19:23:32 +08:00
import aiohttp
2021-06-30 19:50:55 +08:00
from utils.utils import get_cookie_text
2021-10-03 14:24:07 +08:00
from configs.path_config import TEXT_PATH
2021-05-20 19:23:32 +08:00
from asyncio.exceptions import TimeoutError
2021-07-30 21:21:51 +08:00
from configs.config import BUFF_PROXY
2021-05-20 19:23:32 +08:00
from pathlib import Path
from services.log import logger
url = "https://buff.163.com/api/market/goods"
async def get_price(dname):
2021-07-30 21:21:51 +08:00
cookie = {"session": get_cookie_text("buff")}
2021-05-20 19:23:32 +08:00
name_list = []
price_list = []
2021-07-30 21:21:51 +08:00
parameter = {"game": "csgo", "page_num": "1", "search": dname}
2021-05-20 19:23:32 +08:00
try:
2021-07-30 21:21:51 +08:00
async with aiohttp.ClientSession(
cookies=cookie, headers=get_user_agent()
) as session:
async with session.get(
url, proxy=BUFF_PROXY, params=parameter, timeout=5
) as response:
2021-05-20 19:23:32 +08:00
if response.status == 200:
try:
if str(await response.text()).find("Login Required") != -1:
return "BUFF登录被重置请联系管理员重新登入", 996
data = (await 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:
return "没有查询到...", 998
else:
return "访问失败!", response.status
except TimeoutError as e:
return "访问超时! 请重试或稍后再试!", 997
result = f"皮肤: {dname}({len(name_list)})\n"
# result = "皮肤: " + dname + "\n"
for i in range(len(name_list)):
result += name_list[i] + ": " + price_list[i] + "\n"
return result[:-1], 999
def update_buff_cookie(cookie: str):
2021-10-03 14:24:07 +08:00
_cookie = Path(TEXT_PATH + "cookie/buff.txt")
2021-05-20 19:23:32 +08:00
try:
_cookie.parent.mkdir(parents=True, exist_ok=True)
2021-07-30 21:21:51 +08:00
with open(_cookie, "w") as f:
2021-05-20 19:23:32 +08:00
f.write(cookie)
return "更新cookie成功"
except Exception as e:
2021-07-30 21:21:51 +08:00
logger.error(f"更新cookie失败 e:{e}")
2021-05-20 19:23:32 +08:00
return "更新cookie失败"
2021-07-30 21:21:51 +08:00
if __name__ == "__main__":
2021-05-20 19:23:32 +08:00
print(get_price("awp 二西莫夫"))