Skip to content
This repository has been archived by the owner on May 5, 2024. It is now read-only.

Commit

Permalink
Typings
Browse files Browse the repository at this point in the history
  • Loading branch information
pixeldeee committed Aug 3, 2023
1 parent 8967719 commit caccaf6
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 22 deletions.
4 changes: 4 additions & 0 deletions pytecord/annotations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from typing import TypeAlias

hash_str: TypeAlias = str
permissions_set: TypeAlias = str
37 changes: 19 additions & 18 deletions pytecord/guild.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,29 @@

from .interfaces import Object
from .user import User
from .role import Role
from .utils import MessagePayload, apost, rget

from .annotations import hash_str

class Guild(Object):
def __init__(self, data: dict[str, Any], token: str):
self.id = int(data.get('id'))
self.name = data.get('name')
self.icon = data.get('icon')
self.icon_hash = data.get('icon_hash')
self.splash = data.get('splash')
self.discovery_splash = data.get('discovery_splash')
self.is_owner = data.get('owner')
self.permissions = data.get('permissions')
self.region = data.get('region ')
self.afk_channel_id = int(x) if (x := data.get('afk_channel_id')) else None
self.afk_timeout = data.get('afk_timeout')
self.widget_enabled = data.get('widget_enabled')
self.widget_channel_id = int(x) if (x := data.get('widget_channel_id')) else None
self.verification_level = data.get('verification_level')
self.default_message_notifications = data.get('default_message_notifications')
self.explicit_content_filter = data.get('explicit_content_filter')
self.roles = data.get('roles')
self.id: int = int(data.get('id'))
self.name: str = data.get('name')
self.icon: hash_str | None = data.get('icon')
self.icon_hash: hash_str | None = data.get('icon_hash')
self.splash: hash_str | None = data.get('splash')
self.discovery_splash: hash_str | None = data.get('discovery_splash')
self.is_owner: bool | None = data.get('owner')
self.permissions: str | None = data.get('permissions')
self.region: str | None = data.get('region') # deprecated
self.afk_channel_id: int | None = int(x) if (x := data.get('afk_channel_id')) else None
self.afk_timeout: int = data.get('afk_timeout')
self.widget_enabled: bool | None = data.get('widget_enabled')
self.widget_channel_id: int | None = int(x) if (x := data.get('widget_channel_id')) else None
self.verification_level: int = data.get('verification_level')
self.default_message_notifications: int = data.get('default_message_notifications')
self.explicit_content_filter: int = data.get('explicit_content_filter')
self.roles: list[Role] = [Role(i) for i in data.get('roles')]
self.emojis = data.get('emojis')
self.features = data.get('features')
self.mfa_level = data.get('mfa_level')
Expand Down
28 changes: 28 additions & 0 deletions pytecord/role.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from typing import Any

from .annotations import hash_str, permissions_set

class RoleTags:
def __init__(self, data: dict[str, Any]) -> None:
self.bot_id = int(x) if (x := data.get('bot_id')) else None
self.integration_id = int(x) if (x := data.get('integration_id')) else None
self.premium_subscriber = data.get('premium_subscriber')
self.subscription_listing_id = int(x) if (x := data.get('subscription_listing_id')) else None
self.available_for_purchase = data.get('available_for_purchase')
self.guild_connections = data.get('guild_connections')


class Role:
def __init__(self, data: dict[str, Any]):
self.id: int = data.get('id')
self.name: str = data.get('name')
self.color: int = data.get('color')
self.hoist: bool = data.get('hoist')
self.icon: hash_str | None = data.get('icon')
self.unicode_emoji: str | None = data.get('unicode_emoji')
self.position: int = data.get('position')
self.permissions: permissions_set = data.get('permissions')
self.managed: bool = data.get('managed')
self.mentionable: bool = data.get('mentionable')
self.tags: RoleTags = RoleTags(x) if (x := data.get('tags')) else None
self.flags: int = data.get('flags')
23 changes: 20 additions & 3 deletions pytecord/user.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,28 @@
from typing import Any

from .interfaces import Object

from .annotations import hash_str

class User(Object):
def __init__(self, data: dict[str, Any], token: str) -> None:
self.id: int = int(data.get('id'))
self.username: str = data.get('username')
self.discriminator: str | None = data.get('discriminator')
self.global_name: str | None = data.get('global_name')
self.avatar: hash_str | None = data.get('avatar')
self.bot: bool | None = data.get('bot')
self.system: bool | None = data.get('system')
self.mfa_enabled: bool | None = data.get('mfa_enabled')
self.banner: hash_str | None = data.get('banner')
self.accent_color: int | None = data.get('accent_color')
self.locale: str | None = data.get('locale')
self.verified: bool | None = data.get('verified')
self.email: str | None = data.get('email')
self.flags: int | None = data.get('flags')
self.premium_type: int | None = data.get('premium_type')
self.public_flags: int | None = data.get('public_flags')
self.avatar_decoration: hash_str | None = data.get('avatar_decoration')

self.__token = token
self.__data = data

Expand All @@ -28,5 +46,4 @@ def __int__(self) -> int:
>>> int(obj)
```
"""
print('Is under developerment!')
return 0
return self.id
2 changes: 1 addition & 1 deletion pytecord/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import Any, Literal

from aiohttp import ClientSession
from requests import get, post
from requests import get

from .config import API_VERSION

Expand Down

0 comments on commit caccaf6

Please sign in to comment.