AzideCupric 24b6d60d69
开播提醒推送的图片改为使用直播间封面 (#249)
*  为bilibili直播添加下播提醒,添加直播分区信息

🚸 开播提醒推送的图片改为使用直播间封面

* ♻️ 使用Enum

* 🐛 修复bilibili发送视频动态时不推送视频标题的问题

* 🎨 调整LiveAction的注释和jaccard函数代码位置

* 🚨 修改RawPost类型定义,优化bililive类型显示
2023-05-14 01:41:25 +08:00

55 lines
1009 B
Python

from dataclasses import dataclass
from datetime import time
from typing import Any, Literal, NamedTuple, NewType
from httpx import URL
from pydantic import BaseModel
RawPost = Any
Target = NewType("Target", str)
Category = int
Tag = str
@dataclass(eq=True, frozen=True)
class User:
user: int
user_type: Literal["group", "private"]
@dataclass(eq=True, frozen=True)
class PlatformTarget:
target: str
platform_name: str
target_name: str
class UserSubInfo(NamedTuple):
user: User
categories: list[Category]
tags: list[Tag]
class TimeWeightConfig(BaseModel):
start_time: time
end_time: time
weight: int
class WeightConfig(BaseModel):
default: int
time_config: list[TimeWeightConfig]
class PlatformWeightConfigResp(BaseModel):
target: Target
target_name: str
platform_name: str
weight: WeightConfig
class ApiError(Exception):
def __init__(self, url: URL) -> None:
msg = f"api {url} error"
super().__init__(msg)