mirror of
https://github.com/MelisaDev/melisa.git
synced 2024-09-22 19:22:01 +03:00
asyncio debug and format current code
This commit is contained in:
parent
15da6ac9d2
commit
017ad57190
3 changed files with 34 additions and 27 deletions
|
@ -4,9 +4,9 @@
|
||||||
import logging
|
import logging
|
||||||
import asyncio
|
import asyncio
|
||||||
import signal
|
import signal
|
||||||
from typing import Dict, List, Union, Any, Iterable
|
|
||||||
|
|
||||||
from .models.app.intents import Intents
|
from typing import Dict, List, Union, Any, Iterable, Optional, TYPE_CHECKING
|
||||||
|
|
||||||
from .models import User, Guild, Activity
|
from .models import User, Guild, Activity
|
||||||
from .models.app import Shard
|
from .models.app import Shard
|
||||||
from .utils import Snowflake, APIModelBase
|
from .utils import Snowflake, APIModelBase
|
||||||
|
@ -16,6 +16,9 @@ from .core.gateway import GatewayBotInfo
|
||||||
from .models.guild.channel import Channel, ChannelType, channel_types_for_converting
|
from .models.guild.channel import Channel, ChannelType, channel_types_for_converting
|
||||||
from .utils.logging import init_logging
|
from .utils.logging import init_logging
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from .models.app.intents import Intents
|
||||||
|
|
||||||
_logger = logging.getLogger("melisa")
|
_logger = logging.getLogger("melisa")
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +32,8 @@ class Client:
|
||||||
----------
|
----------
|
||||||
token: :class:`str`
|
token: :class:`str`
|
||||||
The token to login (you can found it in the developer portal)
|
The token to login (you can found it in the developer portal)
|
||||||
|
asyncio_debug: :class:`bool`
|
||||||
|
If ``True``, then debugging is enabled for the asyncio event loop in use.
|
||||||
intents: :class:`Union[~melisa.Intents, Iterable[~melisa.Intents]]`
|
intents: :class:`Union[~melisa.Intents, Iterable[~melisa.Intents]]`
|
||||||
The Discord Intents values.
|
The Discord Intents values.
|
||||||
activity: :class:`~models.user.presence.BotActivity`
|
activity: :class:`~models.user.presence.BotActivity`
|
||||||
|
@ -59,8 +64,9 @@ class Client:
|
||||||
self,
|
self,
|
||||||
token: str,
|
token: str,
|
||||||
*,
|
*,
|
||||||
|
asyncio_debug: bool = False,
|
||||||
intents: Union[Intents, Iterable[Intents]] = None,
|
intents: Union[Intents, Iterable[Intents]] = None,
|
||||||
activity: Activity = None,
|
activity: Optional[Activity] = None,
|
||||||
status: str = None,
|
status: str = None,
|
||||||
mobile: bool = False,
|
mobile: bool = False,
|
||||||
logs: Union[None, int, str, Dict[str, Any]] = "INFO",
|
logs: Union[None, int, str, Dict[str, Any]] = "INFO",
|
||||||
|
@ -106,6 +112,9 @@ class Client:
|
||||||
|
|
||||||
print("(SIGINT received some seconds ago) Successfully stopped client loop")
|
print("(SIGINT received some seconds ago) Successfully stopped client loop")
|
||||||
|
|
||||||
|
if asyncio_debug:
|
||||||
|
self._loop.set_debug(True)
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, sigint_handler)
|
signal.signal(signal.SIGINT, sigint_handler)
|
||||||
|
|
||||||
async def _get_gateway(self):
|
async def _get_gateway(self):
|
||||||
|
|
|
@ -25,7 +25,8 @@ class WebhookType(IntEnum):
|
||||||
Incoming:
|
Incoming:
|
||||||
Incoming Webhooks can post messages to channels with a generated token
|
Incoming Webhooks can post messages to channels with a generated token
|
||||||
Channel_Follower:
|
Channel_Follower:
|
||||||
Channel Follower Webhooks are internal webhooks used with Channel Following to post new messages into channels
|
Channel Follower Webhooks are internal webhooks used with Channel Following
|
||||||
|
to post new messages into channels
|
||||||
Application:
|
Application:
|
||||||
Application webhooks are webhooks used with Interactions
|
Application webhooks are webhooks used with Interactions
|
||||||
"""
|
"""
|
||||||
|
@ -64,7 +65,8 @@ class Webhook(APIModelBase):
|
||||||
application_id: :class:`~melisa.utils.types.snowflake.Snowflake`
|
application_id: :class:`~melisa.utils.types.snowflake.Snowflake`
|
||||||
The bot/OAuth2 application that created this webhook
|
The bot/OAuth2 application that created this webhook
|
||||||
source_guild: :class:`~melisa.models.guild.guild.Guild`
|
source_guild: :class:`~melisa.models.guild.guild.Guild`
|
||||||
The guild of the channel that this webhook is following (returned for Channel Follower Webhooks)
|
The guild of the channel that this webhook is following
|
||||||
|
(returned for Channel Follower Webhooks)
|
||||||
source_channel: :class:`~melisa.models.guild.channel.Channel`
|
source_channel: :class:`~melisa.models.guild.channel.Channel`
|
||||||
The channel that this webhook is following (returned for Channel Follower Webhooks)
|
The channel that this webhook is following (returned for Channel Follower Webhooks)
|
||||||
url: :class:`str`
|
url: :class:`str`
|
||||||
|
@ -85,19 +87,22 @@ class Webhook(APIModelBase):
|
||||||
url: APINullable[str] = None
|
url: APINullable[str] = None
|
||||||
|
|
||||||
async def create(
|
async def create(
|
||||||
self,
|
self,
|
||||||
*,
|
*,
|
||||||
channel_id: Optional[Snowflake] = None,
|
channel_id: Optional[Snowflake] = None,
|
||||||
name: Optional[str] = None,
|
name: Optional[str] = None,
|
||||||
reason: Optional[str] = None
|
reason: Optional[str] = None,
|
||||||
):
|
):
|
||||||
"""|coro|
|
"""|coro|
|
||||||
Creates a new webhook and returns a webhook object on success. Requires the ``MANAGE_WEBHOOKS`` permission.
|
Creates a new webhook and returns a webhook object on success.
|
||||||
|
Requires the ``MANAGE_WEBHOOKS`` permission.
|
||||||
|
|
||||||
An error will be returned if a webhook name (`name`) is not valid. A webhook name is valid if:
|
An error will be returned if a webhook name (`name`) is not valid.
|
||||||
|
A webhook name is valid if:
|
||||||
|
|
||||||
* It does not contain the substring 'clyde' (case-insensitive)
|
* It does not contain the substring 'clyde' (case-insensitive)
|
||||||
* It follows the nickname guidelines in the Usernames and Nicknames documentation, with an exception that
|
* It follows the nickname guidelines in the Usernames
|
||||||
|
and Nicknames documentation, with an exception that
|
||||||
webhook names can be up to 80 characters
|
webhook names can be up to 80 characters
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
|
@ -108,13 +113,9 @@ class Webhook(APIModelBase):
|
||||||
Name of the webhook (1-80 characters)
|
Name of the webhook (1-80 characters)
|
||||||
reason: Optional[:class:`str`]
|
reason: Optional[:class:`str`]
|
||||||
The reason for pinning the message. Shows up on the audit log.
|
The reason for pinning the message. Shows up on the audit log.
|
||||||
|
|
||||||
Returns
|
|
||||||
-------
|
|
||||||
¯\_(ツ)_/¯
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
await self._http.post(
|
await self._http.post(
|
||||||
f"/channels/{channel_id}/webhooks",
|
f"/channels/{channel_id}/webhooks",
|
||||||
headers={"name": name, "X-Audit-Log-Reason": reason}
|
headers={"name": name, "X-Audit-Log-Reason": reason},
|
||||||
)
|
)
|
||||||
|
|
|
@ -201,9 +201,7 @@ class Message(APIModelBase):
|
||||||
sticker_items: APINullable[List] = None
|
sticker_items: APINullable[List] = None
|
||||||
stickers: APINullable[List] = None
|
stickers: APINullable[List] = None
|
||||||
|
|
||||||
async def pin(
|
async def pin(self, *, reason: Optional[str] = None):
|
||||||
self, *, reason: Optional[str] = None
|
|
||||||
):
|
|
||||||
"""|coro|
|
"""|coro|
|
||||||
|
|
||||||
Pins the message.
|
Pins the message.
|
||||||
|
@ -218,7 +216,8 @@ class Message(APIModelBase):
|
||||||
Raises
|
Raises
|
||||||
-------
|
-------
|
||||||
HTTPException
|
HTTPException
|
||||||
Pinning the message failed, probably due to the channel having more than 50 pinned messages.
|
Pinning the message failed,
|
||||||
|
probably due to the channel having more than 50 pinned messages.
|
||||||
ForbiddenError
|
ForbiddenError
|
||||||
You do not have permissions to pin the message.
|
You do not have permissions to pin the message.
|
||||||
NotFound
|
NotFound
|
||||||
|
@ -230,9 +229,7 @@ class Message(APIModelBase):
|
||||||
headers={"X-Audit-Log-Reason": reason},
|
headers={"X-Audit-Log-Reason": reason},
|
||||||
)
|
)
|
||||||
|
|
||||||
async def unpin(
|
async def unpin(self, *, reason: Optional[str] = None):
|
||||||
self, *, reason: Optional[str] = None
|
|
||||||
):
|
|
||||||
"""|coro|
|
"""|coro|
|
||||||
|
|
||||||
Unpins the message.
|
Unpins the message.
|
||||||
|
@ -247,7 +244,8 @@ class Message(APIModelBase):
|
||||||
Raises
|
Raises
|
||||||
-------
|
-------
|
||||||
HTTPException
|
HTTPException
|
||||||
Pinning the message failed, probably due to the channel having more than 50 pinned messages.
|
Pinning the message failed,
|
||||||
|
probably due to the channel having more than 50 pinned messages.
|
||||||
ForbiddenError
|
ForbiddenError
|
||||||
You do not have permissions to unpin the message.
|
You do not have permissions to unpin the message.
|
||||||
NotFound
|
NotFound
|
||||||
|
@ -258,4 +256,3 @@ class Message(APIModelBase):
|
||||||
f"channels/{self.channel_id}/pins/{self.id}",
|
f"channels/{self.channel_id}/pins/{self.id}",
|
||||||
headers={"X-Audit-Log-Reason": reason},
|
headers={"X-Audit-Log-Reason": reason},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue