From fbef6fe29abf2c9c64ab26598a77cfff73bfdc05 Mon Sep 17 00:00:00 2001 From: grey-cat-1908 Date: Sun, 4 Jun 2023 13:32:13 +0300 Subject: [PATCH] fixes && get_server_info() method --- LICENSE.txt | 2 +- boticordpy/client.py | 18 +++++++++++++++++- boticordpy/http.py | 11 +---------- boticordpy/types.py | 10 +++++----- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 7ab55d1..df4f53d 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright 2021 Victor Kotlin +Copyright 2021 - 2023 Viktor K Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/boticordpy/client.py b/boticordpy/client.py index e353f2c..55ad05f 100644 --- a/boticordpy/client.py +++ b/boticordpy/client.py @@ -43,7 +43,7 @@ class BoticordClient: response = await self.http.get_bot_info(bot_id) return boticord_types.ResourceBot.from_dict(response) - async def post_bot_stats( + async def get_server_info( self, bot_id: typing.Union[str, int], *, @@ -72,6 +72,22 @@ class BoticordClient: ) return boticord_types.ResourceBot.from_dict(response) + async def get_server_info( + self, server_id: typing.Union[str, int] + ) -> boticord_types.ResourceServer: + """Gets information about specified server. + + Args: + server_id (Union[:obj:`str`, :obj:`int`]) + Id of the server + + Returns: + :obj:`~.types.ResourceServer`: + ResourceServer object. + """ + response = await self.http.get_server_info(server_id) + return boticord_types.ResourceServer.from_dict(response) + def autopost(self) -> AutoPost: """Returns a helper instance for auto-posting. diff --git a/boticordpy/http.py b/boticordpy/http.py index 77c82cc..55eda40 100644 --- a/boticordpy/http.py +++ b/boticordpy/http.py @@ -57,15 +57,6 @@ class HttpClient: """Post bot's stats""" return self.make_request("POST", f"bots/{bot_id}/stats", json=stats) - def get_server_info(self, server_id: int): + def get_server_info(self, server_id: typing.Union[str, int]): """Get information about specified server""" return self.make_request("GET", f"servers/{server_id}") - - # TODO - def get_server_comments(self, server_id: int): - """Get list of specified server comments""" - return self.make_request("GET", f"server/{server_id}/comments") - - def get_user_info(self, user_id: int): - """Get information about the user""" - return self.make_request("GET", f"users/{user_id}") diff --git a/boticordpy/types.py b/boticordpy/types.py index 22a60fe..66667d3 100644 --- a/boticordpy/types.py +++ b/boticordpy/types.py @@ -637,10 +637,10 @@ class ResourceServer(APIObjectBase): self = super().__new__(cls) - self.id = data["id"] - self.name = data["name"] - self.short_description = data["shortDescription"] - self.description = data["description)"] + self.id = data.get("id") + self.name = data.get("name") + self.short_description = data.get("shortDescription") + self.description = data.get("description") self.avatar = data.get("avatar") self.short_link = data.get("shortLink") self.invite_link = data.get("inviteLink") @@ -658,7 +658,7 @@ class ResourceServer(APIObjectBase): ResourceRating.from_dict(rating) for rating in data.get("ratings", []) ] self.created_date = datetime.strptime( - data["createdDate"], "%Y-%m-%dT%H:%M:%S.%f%z" + data.get("createdDate"), "%Y-%m-%dT%H:%M:%S.%f%z" ) self.tags = [ServerTag(tag) for tag in data.get("tags", [])] self.ups = [ResourceUp.from_dict(up) for up in data.get("ups", [])]