From 45fed0b232af7cb292fb3ad0913eaf0030f33dda Mon Sep 17 00:00:00 2001 From: hemengyang Date: Fri, 18 Feb 2022 18:09:07 +0800 Subject: [PATCH] feat: add ff14 news --- src/plugins/nonebot_bison/platform/ff14.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/plugins/nonebot_bison/platform/ff14.py diff --git a/src/plugins/nonebot_bison/platform/ff14.py b/src/plugins/nonebot_bison/platform/ff14.py new file mode 100644 index 0000000..68be182 --- /dev/null +++ b/src/plugins/nonebot_bison/platform/ff14.py @@ -0,0 +1,45 @@ +from typing import Any + +import httpx + +from ..post import Post +from ..types import RawPost, Target +from .platform import NewMessage + + +class FF14(NewMessage): + + categories = {} + platform_name = "ff14" + name = "最终幻想XIV官方公告" + enable_tag = False + enabled = True + is_common = False + schedule_type = "interval" + schedule_kw = {"seconds": 60} + has_target = False + + async def get_target_name(self, _: Target) -> str: + return "最终幻想XIV官方公告" + + async def get_sub_list(self, _) -> list[RawPost]: + async with httpx.AsyncClient() 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" + ) + return raw_data.json()["Data"] + + def get_id(self, post: RawPost) -> Any: + """用发布时间当作 ID + + 因为有时候官方会直接编辑以前的文章内容 + """ + return post["PublishDate"] + + def get_date(self, _: RawPost) -> None: + return None + + async def parse(self, raw_post: RawPost) -> Post: + text = f'{raw_post["Title"]}\n{raw_post["Summary"]}' + url = raw_post["Author"] + return Post("ff14", text=text, url=url, target_name="最终幻想XIV官方公告")