Browse Source

новые фишечки

huy
gsd 2 years ago
parent
commit
e23dcbda47
  1. 7
      bot.py
  2. 3
      exceptions.py
  3. 34
      player.py
  4. 14
      user_ext/powered.py

7
bot.py

@ -11,7 +11,7 @@ from exceptions import *
#Скрыть сообщение если надо ephemeral=True
class DiscordClient(discord.Client):
ANY_INPUT = "ссылка на стим | имя игрока | стимид"
ANY_INPUT = "ссылка на стим | имя игрока | стимид | ид бана через #"
discord2steam_cache = {}
backend_url = ""
secret_key = ""
@ -59,8 +59,9 @@ class DiscordClient(discord.Client):
if isinstance(error.original, CannotCastToSteamID):
return await interaction.response.send_message("Не возможно найти такой профиль, попробуй написать иные данные!", ephemeral=True)
elif isinstance(error.original, LowPermition):
#Добавить проверку на модератора или в бекенде добавить другой код ответа
return await interaction.response.send_message("Это не для тебя и не для таких как ты сделано...\n", ephemeral=True)
return await interaction.response.send_message("Это не для тебя и не для таких как ты сделано...", ephemeral=True)
elif isinstance(error.original, AdminLowPermition):
return await interaction.response.send_message("Нельзя сделать это действие, ибо ты крут, но не настолько чтоб это совершить", ephemeral=True)
elif isinstance(error.original, NotFoundPlayerOnServer):
return await interaction.response.send_message("Игрок не найден на серверах", ephemeral=True)
elif isinstance(error.original, UnknownBackendResponse):

3
exceptions.py

@ -14,4 +14,7 @@ class NotFoundPlayerOnServer(Exception):
pass
class UnknownBackendResponse(Exception):
pass
class AdminLowPermition(Exception):
pass

34
player.py

@ -163,10 +163,12 @@ class Player:
result = await response.text()
if response.status == 200:
return "Кикнут с серверов"
if response.status == 404:
elif response.status == 404:
raise NotFoundPlayerOnServer
if response.status == 403:
elif response.status == 403:
raise LowPermition
elif response.status == 406:
raise AdminLowPermition
raise UnknownBackendResponse
async def rcon(self, command, args):
@ -190,13 +192,33 @@ class Player:
"secretkey":os.getenv("BACKEND_SECRETKEY"),
"steam64": self.requester_steam64}) as session:
async with session.post(f"{os.getenv('BACKEND_URL')}/api/admin/ban?steam64={self.steam64}&ban_reason={reason}&ban_length={minutes}", ssl=False) as response:
await response.text()
ban_id = await response.text()
if response.status == 201:
return "Игрок забанен или уже был в бане"
if response.status == 404:
return f"Игрок теперь забанен! Ид бана: #{ban_id}"
elif response.status == 202:
return f"Игрок уже в бане! Ид бана #{ban_id}"
elif response.status == 404:
raise NotFoundPlayerOnServer
if response.status == 403:
elif response.status == 403:
raise LowPermition
elif response.status == 406:
raise AdminLowPermition
raise UnknownBackendResponse
async def unban(self):
async with aiohttp.ClientSession(cookies={
"secretkey":os.getenv("BACKEND_SECRETKEY"),
"steam64": self.requester_steam64}) as session:
async with session.post(f"{os.getenv('BACKEND_URL')}/api/admin/unban?steam64={self.steam64}", ssl=False) as response:
ban_id = await response.text()
if response.status == 200:
return f"Игрок теперь разбанен!"
elif response.status == 404:
return f"Игрок не в бане("
elif response.status == 403:
raise LowPermition
elif response.status == 406:
raise AdminLowPermition
raise UnknownBackendResponse
###############

14
user_ext/powered.py

@ -0,0 +1,14 @@
import discord
class Extension:
def __init__(self, core):
@core.tree.command(name = "powered", description = "Информация о боте")
async def powered(
interaction: discord.Interaction
):
return await interaction.response.send_message(f"""
Крутой бот на '/ API' для взаимодействие с сервисами фактов13!
Создан на основе: https://github.com/Rapptz/discord.py ({discord.__version__})
Исходник бота: https://git.pblr-nyk.pro/gsd/Facti13.Bot.Discord.V2
Исходник сервисов: https://git.pblr-nyk.pro/gsd/Facti13.Web.Backend.Java.V2
""", ephemeral=False)
Loading…
Cancel
Save