コード例 #1
0
 def setUp(self):
     self.generalSettingsCheck = GeneralSettings(updateDelay=60,
                                                 timeUntilTimeout=30,
                                                 timeoutsLimit=5,
                                                 bombMessagesTime=15,
                                                 dialogWindowTime=60)
     GeneralSettingsService.delete_general_settings()
コード例 #2
0
    def test_get_general_settings_count(self):
        print('Testing get_general_settings_count()')

        GeneralSettingsService.create_general_settings()
        answer = GeneralSettingsService.get_general_settings_count()

        self.assertEqual(
            answer, 1, 'rows_count should be {0} actual {1}'.format(1, answer))
        print('Successful\n')
コード例 #3
0
    def test_create_and_get_general_settings(self):
        print('Testing create_general_settings() and get_general_settings()')

        GeneralSettingsService.create_general_settings()
        generalSettings = GeneralSettingsService.get_general_settings()

        self._check_data(control_obj=generalSettings,
                         checking_obj=self.generalSettingsCheck)
        print('Successful\n')
コード例 #4
0
async def set_param(ctx: discord.ext.commands.Context, *words):
    if words[0] not in DBGeneralSettings.__dict__.keys():
        await message.bomb_message(ctx=ctx,
                                   message='Неверное ключевое слово',
                                   type='error')
    else:
        DBGeneralSettings.__dict__[words[0]] = int(words[1])
        GeneralSettingsService.update_general_settings(
            generalSettings=DBGeneralSettings)
        await message.bomb_message(ctx=ctx,
                                   message='Настройка {0} обновлена'.format(
                                       words[0]))
コード例 #5
0
    def test_update_general_settings(self):
        print('Testing update_general_settings()')
        GeneralSettingsService.create_general_settings()

        self.generalSettingsCheck.timeoutsLimit = 10
        self.generalSettingsCheck.updateDelay = 150
        self.generalSettingsCheck.bombMessagesTime = 30
        self.generalSettingsCheck.dialogWindowTime = 120
        self.generalSettingsCheck.timeUntilTimeout = 100

        GeneralSettingsService.update_general_settings(
            generalSettings=self.generalSettingsCheck)
        generalSettings = GeneralSettingsService.get_general_settings()

        self._check_data(control_obj=generalSettings,
                         checking_obj=self.generalSettingsCheck)
        print('Successful\n')
コード例 #6
0
    def test_get_or_init_general_settings(self):
        print('Testing get_or_init_general_settings()')

        generalSettings = GeneralSettingsService.get_or_init_general_settings()

        self._check_data(control_obj=generalSettings,
                         checking_obj=self.generalSettingsCheck)
        print('Successful\n')
コード例 #7
0
async def on_ready():
    dataBaseProcessing.bot = bot
    _dialog.message.bot = bot
    global DBGuilds, DBGeneralSettings, lastWriteTime, usersInVoiceChats
    usersInVoiceChats = {}

    # Подгрузка данных
    with open('configs/ShutdownInfo.txt') as TF:
        lastWriteTime = TF.readline().replace('\n', '')
    DBGeneralSettings = GeneralSettingsService.get_or_init_general_settings()
    DBGuilds = GuildService.get_guild_boot_setup()
    for discordGuild in bot.guilds:
        if discordGuild.id not in DBGuilds.keys():
            GuildService.add_new_guild(guildId=discordGuild.id)
            DBGuilds[discordGuild.id] = GuildService.get_guild_by_guild_id(
                guildId=discordGuild.id)
            await _dialog.message.log(
                message='``` [Инициализирован сервер {0}]```'.format(
                    discordGuild.name))

    # дорассчёт статистики
    await _dialog.message.log(
        message='обнаружено время последней записи: {0}'.format(lastWriteTime))

    try:
        time: datetime = datetime.strptime(lastWriteTime, "%Y-%m-%d %H:%M:%S")
        N = 4
        time.astimezone(tzoffset("UTC+{}".format(N), N * 60 * 60))
        for guildId in DBGuilds:
            discordGuild = bot.get_guild(guildId)
            if discordGuild is None:
                print(f'сервер {guildId} недоступен')
                continue
            answer = await dataProcessing.calc_all_stats_after_time(
                guild=discordGuild,
                time=time,
                spamChannelsId=DBGuilds[guildId].spamChannels)
            await _dialog.message.log(message=str(answer))
            await update_counters(bot.get_guild(guildId))

    except ValueError as valErr:
        print('Обработана ошибка:\n' + str(valErr))
        await _dialog.message.log(
            message=' ошибка при чтении времини, будет только перезаписано время'
        )
        await update_write_time()

    message.generalSettings = DBGeneralSettings
    await _dialog.message.log(message='bot online', color='yellow')
    print('booted')
    await update_data_loop()