Skip to content

Commit

Permalink
feat: 优化类型声明与对象转换
Browse files Browse the repository at this point in the history
  • Loading branch information
FHU-yezi committed Jan 30, 2025
1 parent 0c4ad13 commit 4dfffe0
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 11 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ pip install jkit --pre
```python
import asyncio

from jkit import User
from jkit.user import User


async def main() -> None:
Expand All @@ -41,7 +41,7 @@ async def main() -> None:
print(f"用户昵称:{info.name}")
print(
f"性别:{info.gender.value},会员等级:{info.membership_info.type.value}\n"
f"会员过期时间:{info.membership_info.expired_at}"
f"会员过期时间:{info.membership_info.expire_time}"
)


Expand Down
7 changes: 5 additions & 2 deletions jkit/article.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,13 @@
_RESOURCE_UNAVAILABLE_STATUS_CODE,
)
from jkit.constraints import (
ArticleSlug,
CollectionSlug,
NonEmptyStr,
NonNegativeFloat,
NonNegativeInt,
NormalizedDatetime,
NotebookId,
Percentage,
PositiveFloat,
PositiveInt,
Expand Down Expand Up @@ -79,7 +81,8 @@ def to_user_obj(self) -> User:

class InfoData(DataObject, frozen=True):
id: PositiveInt
notebook_id: PositiveInt
slug: ArticleSlug
notebook_id: NotebookId
title: NonEmptyStr
description: str
wordage: NonNegativeInt
Expand Down Expand Up @@ -159,7 +162,6 @@ class _CommentPublisherInfoField(DataObject, frozen=True):
avatar_url: UserUploadedUrl
address_by_ip: NonEmptyStr

@property
def to_user_obj(self) -> User:
from jkit.user import User

Expand Down Expand Up @@ -241,6 +243,7 @@ async def info(self) -> InfoData:

return InfoData(
id=data["id"],
slug=data["slug"],
notebook_id=data["notebook_id"],
title=data["public_title"],
description=data["description"],
Expand Down
2 changes: 1 addition & 1 deletion jkit/lottery.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class UserInfoField(DataObject, frozen=True):
name: UserName
avatar_url: UserUploadedUrl

def to_user_obj(self) -> "User":
def to_user_obj(self) -> User:
from jkit.user import User

return User.from_slug(self.slug)._as_checked()
Expand Down
4 changes: 2 additions & 2 deletions jkit/notebook.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ class ArticleData(DataObject, frozen=True):
title: NonEmptyStr
description: str
image_url: UserUploadedUrl | None
published_at: NormalizedDatetime
publish_time: NormalizedDatetime
is_paid: bool
can_comment: bool
author_info: _ArticleAuthorInfoField
Expand Down Expand Up @@ -192,7 +192,7 @@ async def iter_articles(
image_url=item["list_image_url"]
if item["list_image_url"]
else None,
published_at=normalize_datetime(item["first_shared_at"]),
publish_time=normalize_datetime(item["first_shared_at"]),
is_paid=item["paid"],
can_comment=item["commentable"],
author_info=_ArticleAuthorInfoField(
Expand Down
2 changes: 1 addition & 1 deletion jkit/ranking/daily_update.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class UserInfoField(DataObject, frozen=True):
name: UserName
avatar_url: UserUploadedUrl

def to_user_obj(self) -> "User":
def to_user_obj(self) -> User:
from jkit.user import User

return User.from_slug(self.slug)._as_checked()
Expand Down
6 changes: 3 additions & 3 deletions jkit/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class _BadgeField(DataObject, frozen=True):

class _MembershipInfoField(DataObject, frozen=True):
type: MembershipType
expired_at: NormalizedDatetime | None
expire_time: NormalizedDatetime | None


class InfoData(DataObject, frozen=True):
Expand Down Expand Up @@ -227,12 +227,12 @@ async def info(self) -> InfoData:
"ordinary": "LEGACY_ORDINARY",
"distinguished": "LEGACY_DISTINGUISHED",
}[data["member"]["type"]], # type: ignore
expired_at=normalize_datetime(data["member"]["expires_at"]),
expire_time=normalize_datetime(data["member"]["expires_at"]),
)
if data.get("member")
else _MembershipInfoField(
type="NONE",
expired_at=None,
expire_time=None,
),
address_by_ip=data["user_ip_addr"],
followers_count=data["following_users_count"],
Expand Down

0 comments on commit 4dfffe0

Please sign in to comment.