- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
'''
Main file of bot
Главный фаил бота
'''
from discord.ext import commands
import wotb_api
import settings
import messages as m
from messages_gen import pars
from settings import bot_settings
class App():
'''
Main class of bot
Главный класс бота
'''
def __init__(self):
self.pars = pars()
self.msg = m.msg()
self.api = wotb_api.API()
self.bot = commands.Bot(command_prefix=
bot_settings['command_prefix'])
self.__token__ = settings.bot_settings['TOKEN']
def error_handler(self,data):
'''
Сопостовляем полученную ошибку со словарём
и возвращаем True если данные совпадают
со словарём ошибок.
'''
for i in self.api.error_list:
if data == i:
return True
return False
def main(self):
'''
Здесь описанна логика бота, и его взаимодействие
с другими модулями
'''
@self.bot.command()
async def stats(ctx):
command = ctx.message.content
command = command.split(' ')
print(f'Запрос: {command}')
if len(command) == 2:
player_data = self.api.get_player_stats(command[1])
if self.error_handler(player_data):
await ctx.send(embed = self.
msg.return_error_emb(player_data))
else:
embed = self.pars.get_data(player_data,
self.api.last_id)
await ctx.send(embed = embed)
elif len(command) == 3:
player_data = self.api.get_player_stats(command[1],
command[2])
if self.error_handler(player_data):
await ctx.send(embed = self.
msg.return_error_emb(player_data))
else:
embed = self.pars.get_data(player_data,
self.api.last_id)
await ctx.send(embed = embed)
elif len(command) > 3:
await ctx.send(embed = self.msg.return_error_emb('CFE'))
else:
await ctx.send(embed = self.msg.return_error_emb('NN'))
@self.bot.command()
async def ver(ctx):
await ctx.send(embed = self.msg.about_embed())
@self.bot.command()
async def server(ctx):
command = ctx.message.content
command = command.split(' ')
if len(command) == 2:
if command[1].lower() == 'all':
s_status = ''
s_status = self.api.get_server_status('all')
if self.error_handler(s_status):
embed = ''
embed = self.msg.return_error_emb(s_status)
await ctx.send(embed = embed)
else:
embed = ''
embed = self.pars.server_status_all(s_status)
await ctx.send(embed = embed)
Как вам код в плане читаемости. Pylint дал мне 9.78/10 балов (это не полный код)