Esempio n. 1
0
def get_data(value1, value2, path):
    try:
        ini = configparser.ConfigParser()
        ini.read(path)
        return ini[value1][value2]
    except Exception as error:
        exception.error(error, path)
Esempio n. 2
0
def get_ini_list(source1, section, value):
    try:
        ini = ini_manager.get_ini(source1)
        source = json.loads(ini.get('{}'.format(section), '{}'.format(value)))
        return source
    except Exception as error:
        exception.error(error, source1)
Esempio n. 3
0
def get_ini(path):
    try:
        ini = configparser.ConfigParser()
        ini.read(path)
        return ini
    except Exception as error:
        exception.error(error, path)
Esempio n. 4
0
def get_status(value1, value2, path):
    try:
        ini = configparser.ConfigParser()
        ini.read(path)
        if int(ini[value1][value2]) == 2:
            return True
        else:
            return False
    except Exception as error:
        exception.error(error, path)
Esempio n. 5
0
def get_region(guild):
    try:
        path = c.CLIENT_JSON['guild']
        if json_manager.get_status(path, 'guild_id', guild):
            data = json_manager.get_data(path)
            for guild_data in data:
                if guild_data['guild_id'] == guild:
                    return guild_data['time_line']
    except Exception as error:
        exception.error(error)
Esempio n. 6
0
def get_data(source1):
    try:
        data = []
        source = json.load(open_file(source1, 'r'))
        for value in source['data']:
            data.append(value)

        return data
    except Exception as error:
        exception.error(error, source1)
Esempio n. 7
0
    def event_in_progress(guild, value, mode):
        try:
            guild_t = origin.get_region(guild)
            path1 = c.GUILD_PATH['kc_tracker.json'].format(guild)
            path2 = c.GUILD_PATH['kc_tracker_g.ini']

            LIST1 = json_manager.get_ini_list(path2, 'CONSTANT1', 'NAME')
            LIST2 = json_manager.get_ini_list(path2, 'CONSTANT2', 'PRE')

            DATA1 = json_manager.get_data(path1)
            COUNTER = 0

            for data in DATA1:
                CHECK = True
                USERNAME = data['user_rsn']
                USERNAME = USERNAME.replace(' ', '%20')

                while CHECK:
                    USER = hiscores_kc.Hiscores2V(USERNAME, LIST1, LIST2)
                    if USER.getKc(value['event_name']):
                        while CHECK:
                            CHECK = False
                            if data[value['event_name']]:
                                current = server_timer.get_current_time(
                                    guild_t)
                                USER_STATS = USER.getKc(value['event_name'])
                                target_keys = [
                                    '{}_current'.format(value['event_name'])
                                ]
                                target_values = [int(USER_STATS['kc'])]
                                json_manager.update(path1, 'user_rsn',
                                                    data['user_rsn'],
                                                    target_keys, target_values)

                                client_message = 'Guild id: {} | Guild time: {} | Event: {} | Mode: {} | Rsn: {} | Registration KC: {} | Current KC: {} | Status: {}'.format(
                                    guild, current.strftime('%H:%M'),
                                    value['event_name'], mode,
                                    data['user_rsn'],
                                    data[value['event_name']],
                                    USER_STATS['kc'], 'KC update')
                                console_interface.console_message(
                                    'KC update', client_message)
                                logger.log_event(
                                    guild, 'kc_tracker',
                                    c.CLIENT_MESSAGES['kc_tracker_update'],
                                    client_message)
                    else:
                        if COUNTER >= 10:
                            CHECK = False
                            COUNTER = 0
                        else:
                            COUNTER += 1

        except Exception as error:
            exception.error(error)
Esempio n. 8
0
    def event_in_progress(guild, value, mode):
        try:
            guild_t = origin.get_region(guild)
            path1 = c.GUILD_PATH['tracker.json'].format(guild)
            DATA1 = json_manager.get_data(path1)
            COUNTER = 0

            for data in DATA1:
                CHECK = True
                USERNAME = data['user_rsn']
                USERNAME = USERNAME.replace(' ', '%20')

                while CHECK:
                    USER = hiscores_xp.Hiscores(USERNAME, 'N')
                    if USER.status != 404:
                        if hasattr(USER, 'stats'):
                            while CHECK:
                                CHECK = False
                                if data[value['event_name']]:
                                    current = server_timer.get_current_time(
                                        guild_t)
                                    target_keys = [
                                        '{}_current'.format(
                                            value['event_name'])
                                    ]
                                    target_values = [
                                        USER.stats[value['event_name']]
                                        ['experience']
                                    ]
                                    json_manager.update(
                                        path1, 'user_rsn', data['user_rsn'],
                                        target_keys, target_values)

                                    client_message = 'Guild id: {} | Guild time: {} | Event: {} | Mode: {} | Rsn: {} | Registration XP: {} | Current XP: {} | Status: {}'.format(
                                        guild, current.strftime('%H:%M'),
                                        value['event_name'], mode,
                                        data['user_rsn'],
                                        data[value['event_name']], USER.stats[
                                            value['event_name']]['experience'],
                                        'XP update')
                                    console_interface.console_message(
                                        'XP update', client_message)
                                    logger.log_event(
                                        guild, 'xp_tracker',
                                        c.CLIENT_MESSAGES['xp_tracker_update'],
                                        client_message)
                    else:
                        if COUNTER >= 10:
                            CHECK = False
                            COUNTER = 0
                        else:
                            COUNTER += 1

        except Exception as error:
            exception.error(error)
Esempio n. 9
0
def update_data(value1, value2, value3, path):
    try:
        ini = configparser.ConfigParser()
        ini.read(path)
        if ini.has_option(value1, value2):
            ini.set(value1, value2, str(value3))
            ini.write(file_manager.open_file(path, 'w'))
            return True
        else:
            return False
    except Exception as error:
        exception.error(error, path)
Esempio n. 10
0
def log_error(module, event, event_log):
    try:
        time = server_timer.get_server_current_time()

        path = '{}{}'.format(
            c.CLIENT_PATH['origin'], c.CLIENT_PATH['logs2']
        )
        file_manager.create_directory(path, server_timer.get_server_current_date())
        event_message_log = '{} | {} | {} | {}'.format(c.CLIENT_NAME, time.strftime('%y/%m/%d %H:%M:%S'), event, event_log)
        file_manager.write_to_file('{}/{}/{}.txt'.format(path, server_timer.get_server_current_date(), module), 'a', event_message_log)
    except Exception as error:
        exception.error(error)
Esempio n. 11
0
def update(source1, key, id, target_keys, target_values):
    try:
        source = json.load(open_file(source1, 'r'))
        for line in source['data']:
            if line[key] == id:
                if isinstance(target_keys, list):
                    for index, target_key in enumerate(target_keys):
                        line[target_key] = target_values[index]
                else:
                    line[target_keys] = target_values
        json.dump(source, open_file(source1, 'w'), indent=2)
    except Exception as error:
        exception.error(error, source1)
Esempio n. 12
0
def log_event(data1, module, event, event_log):
    try:
        time = server_timer.get_server_current_time()

        path = '{}{}{}{}{}/'.format(
            c.CLIENT_PATH['guild'], str(data1.guild.id) if hasattr(data1, 'guild') else str(data1), c.CLIENT_PATH['logs'],
            c.CLIENT_PATH['origin2'], module
        )
        event_message_log = '{} | {} | {} | {}'.format(c.CLIENT_NAME, time.strftime('%y/%m/%d %H:%M:%S'), event, event_log)
        file_manager.create_directory(path, server_timer.get_server_current_date())
        file_manager.write_to_file('{}/{}/{}.txt'.format(path, server_timer.get_server_current_date(), module), 'a', event_message_log)
    except Exception as error:
        exception.error(error)
Esempio n. 13
0
    def reset(EVENT_NAME, USER, data, current, guild_id):
        try:
            USER_STATS = USER.getKc(EVENT_NAME)
            path1 = c.GUILD_PATH['kc_tracker.json'].format(guild_id)
            target_keys = [EVENT_NAME, '{}_current'.format(EVENT_NAME)]
            target_values = [int(USER_STATS['kc']), int(USER_STATS['kc'])]
            json_manager.update(path1, 'user_rsn', data['user_rsn'],
                                target_keys, target_values)

            client_message = 'Guild id: {} | Event: {} | Rsn: {} | Registration KC: {} | Current_KC: {} | Guild time: {} Status: {}'.format(
                guild_id, EVENT_NAME, data['user_rsn'], data[EVENT_NAME],
                USER_STATS['kc'], current.strftime('%H:%M'), 'KC reset')
            console_interface.console_message('KC reset', client_message)
            logger.log_event(guild_id, 'kc_tracker',
                             c.CLIENT_MESSAGES['kc_tracker_reset'],
                             client_message)
        except Exception as error:
            exception.error(error)
Esempio n. 14
0
def get_status(source1, keys, values):
    try:
        STATUS = False
        STATUS_COUNT = 0
        source = json.load(file_manager.open_file(source1, 'r'))
        for line in source['data']:
            if isinstance(keys, list):
                for index, key in enumerate(keys):
                    if line[key] == values[index]:
                        STATUS_COUNT += 1

                if STATUS_COUNT == len(keys):
                    STATUS = True
            else:
                if line[keys] == values:
                    STATUS = True
        return STATUS
    except Exception as error:
        exception.error(error, source1)
Esempio n. 15
0
    def tracker_update_kc(self, guild):
        try:
            while True:
                guild_t = origin.get_region(guild)
                path2 = c.GUILD_PATH['event.json'].format(guild)
                LIST1 = json_manager.get_data(path2)
                guild_current = server_timer.get_current_time(guild_t)

                if LIST1:
                    for value in LIST1:
                        if value['type'] == 3 and value['status'] == 1:
                            if guild_current.month == int(
                                    value['date_start'][:2]):
                                if guild_current.day == int(
                                        value['date_start'][3:]):
                                    if value['time_start'] + 1 >= guild_current.hour and value[
                                            'time_start'] + 1 <= guild_current.hour + 5:
                                        self.event_start(
                                            guild, value, c.MODE_NAME['std'])

                        if value['type'] == 3 and value['status'] == 1:
                            if guild_current.month == int(
                                    value['date_end'][:2]):
                                if guild_current.day == int(
                                        value['date_end'][3:]):
                                    if guild_current.hour + 6 >= value[
                                            'time_end'] and guild_current.hour < value[
                                                'time_end'] - 1:
                                        self.event_in_progress(
                                            guild, value, c.MODE_NAME['std'])

                        if value['type'] == 4 and value['status'] == 1:
                            if guild_current.month >= int(
                                    value['date_start'][:2]):
                                if guild_current.day >= int(
                                        value['date_start'][3:]):
                                    self.event_in_progress(
                                        guild, value, c.MODE_NAME['rush'])

                time.sleep(60 * 10)

        except Exception as error:
            exception.error(error)
Esempio n. 16
0
    def reset(EVENT_NAME, USER, data, current, guild_id):
        try:
            path1 = c.GUILD_PATH['tracker.json'].format(guild_id)
            target_keys = [EVENT_NAME, '{}_current'.format(EVENT_NAME)]
            target_values = [
                USER.stats[EVENT_NAME]['experience'],
                USER.stats[EVENT_NAME]['experience']
            ]
            json_manager.update(path1, 'user_rsn', data['user_rsn'],
                                target_keys, target_values)

            client_message = 'Guild id: {} | Event: {} | Rsn: {} | Registration XP: {} | Current_XP: {} | Hour: {} Status: {}'.format(
                guild_id, EVENT_NAME, data['user_rsn'],
                data[EVENT_NAME], USER.stats[EVENT_NAME]['experience'],
                current.strftime('%H:%M'), 'XP reset')
            console_interface.console_message('XP reset', client_message)
            logger.log_event(guild_id, 'xp_tracker',
                             c.CLIENT_MESSAGES['xp_tracker_reset'],
                             client_message)
        except Exception as error:
            exception.error(error)
Esempio n. 17
0
def open_file(source1, permission):
    try:
        file = open(source1, permission, encoding='utf8')
        return file
    except Exception as error:
        exception.error(error, source1)
Esempio n. 18
0
def get_current_time(region):
    try:
        LT = timezone(region)
        return datetime.now(LT)
    except Exception as error:
        exception.error(error)
Esempio n. 19
0
def get_server_current_time():
    try:
        LT = timezone(c.CLIENT_REGION)
        return datetime.now(LT)
    except Exception as error:
        exception.error(error)
Esempio n. 20
0
def get_current_date(region):
    try:
        date = get_current_time(region)
        return date.strftime('%y.%m.%d')
    except Exception as error:
        exception.error(error)
Esempio n. 21
0
def write_to_file(source1, permission, data1):
    try:
        with open(source1, permission) as data:
            data.write('{}\n'.format(data1))
    except Exception as error:
        exception.error(error, source1)
Esempio n. 22
0
    def event_start(self, guild, value, mode):
        try:
            guild_t = origin.get_region(guild)
            path1 = c.GUILD_PATH['kc_tracker.json'].format(guild)
            path2 = c.GUILD_PATH['kc_rates.json'].format(guild)
            path2 = c.GUILD_PATH['kc_tracker_g.ini']

            DATA1 = json_manager.get_data(path1)
            DATA2 = json_manager.get_data(path2)

            LIST1 = json_manager.get_ini_list(path3, 'CONSTANT1', 'NAME')
            LIST2 = json_manager.get_ini_list(path3, 'CONSTANT2', 'PRE')

            current = server_timer.get_current_time(guild_t)
            COUNTER = 0
            USER = None
            for data in DATA1:
                CHECK = True
                USERNAME = data['user_rsn']
                USERNAME = USERNAME.replace(' ', '%20')

                while CHECK:
                    USER = hiscores_kc.Hiscores2V(USERNAME, LIST1, LIST2)
                    if USER.status != 404:
                        if USER.getKc(value['event_name']):
                            while CHECK:
                                CHECK = False
                                if data[value['event_name']]:
                                    USER_STATS = USER.getKc(
                                        value['event_name'])
                                    target_keys = [
                                        '{}_current'.format(
                                            value['event_name'])
                                    ]
                                    target_values = [int(USER_STATS['kc'])]
                                    json_manager.update(
                                        path1, 'user_rsn', data['user_rsn'],
                                        target_keys, target_values)

                                    client_message = 'Guild id: {} | Guild time: {} | Event: {} | Mode: {} | Rsn: {} | Registration KC: {} | Current_KC: {} | Status: {}'.format(
                                        guild, current.strftime('%H:%M'),
                                        value['event_name'], mode,
                                        data['user_rsn'],
                                        data[value['event_name']],
                                        USER_STATS['kc'], 'KC update')
                                    console_interface.console_message(
                                        'KC update', client_message)
                                    logger.log_event(
                                        guild, 'kc_tracker',
                                        c.CLIENT_MESSAGES['kc_tracker_update'],
                                        client_message)
                    else:
                        if COUNTER >= 10:
                            CHECK = False
                            COUNTER = 0
                        else:
                            COUNTER += 1

                for value2 in DATA2:
                    for key, value3 in value.items():
                        if key == value['event_name']:
                            if (data['{}_current'.format(value['event_name'])]
                                    - data[value['event_name']]
                                ) >= value2[value['event_name']] and value[
                                    'date_start'] == current.strftime(
                                        '%m.%d'
                                    ) and value['time_start'] == current.hour:
                                self.reset(value['event_name'], USER, data,
                                           current, guild)
                            else:
                                pass

                            if (data['{}_current'.format(value['event_name'])]
                                    - data[value['event_name']]
                                ) >= value2[value['event_name']] * 2 and value[
                                    'date_start'] == current.strftime(
                                        '%m.%d') and value[
                                            'time_start'] + 1 == current.hour:
                                self.reset(value['event_name'], USER, data,
                                           current, guild)
                            else:
                                pass

                            if (data['{}_current'.format(value['event_name'])]
                                    - data[value['event_name']]
                                ) >= value2[value['event_name']] * 3 and value[
                                    'date_start'] == current.strftime(
                                        '%m.%d') and value[
                                            'time_start'] + 2 == current.hour:
                                self.reset(value['event_name'], USER, data,
                                           current, guild)
                            else:
                                pass

                            if (data['{}_current'.format(value['event_name'])]
                                    - data[value['event_name']]
                                ) >= value2[value['event_name']] * 4 and value[
                                    'date_start'] == current.strftime(
                                        '%m.%d') and value[
                                            'time_start'] + 3 == current.hour:
                                self.reset(value['event_name'], USER, data,
                                           current, guild)
                            else:
                                pass

                            if (data['{}_current'.format(value['event_name'])]
                                    - data[value['event_name']]
                                ) >= value2[value['event_name']] * 5 and value[
                                    'date_start'] == current.strftime(
                                        '%m.%d') and value[
                                            'time_start'] + 4 == current.hour:
                                self.reset(value['event_name'], USER, data,
                                           current, guild)
                            else:
                                pass

                            if (data['{}_current'.format(value['event_name'])]
                                    - data[value['event_name']]
                                ) >= value2['time_start'] + 5 == current.hour:
                                self.reset(value['event_name'], USER, data,
                                           current, guild)
                            else:
                                pass

        except Exception as error:
            exception.error(error)
Esempio n. 23
0
def create_directory(path, name):
    try:
        os.makedirs('{}{}'.format(path, name), exist_ok=True)
    except Exception as error:
        exception.error(error, path)