コード例 #1
0
def get_current_rate(currency, bot, chat_id):
    '''
    Функция выдает курс запрошенной валюты
    Перед выполнением запроса проверяется актуальность данных
    '''
    now = datetime.datetime.now()
    today_date = now.strftime("%Y.%m.%d")
    if database.check_for_actual_information():
        print("обновление базы")
        get_today_rate(currency, bot, chat_id, today_date)
        #bot.send_message(chat_id, 'Пожалуйста подождите\nНужно обновить базу')
        database.insert_new_information(today_date)
    try:
        query = 'SELECT price FROM prices WHERE currency_code = "{}" AND date = "{}"'.format(
            currency, today_date)
        response_currency = database.db_execute_query(query)[0][0]
        query_count = 'SELECT currency_count FROM general_info WHERE currency_code = "{}"'.format(
            currency)
        response_count = database.db_execute_query(query_count)[0][0]
        message = 'Цена {} {} на сегодняшний день составляет {} руб.'.format(
            response_count, currency, response_currency)
        bot.send_message(chat_id, message)
    except:
        print('Ошибка в get_current_rate')
        bot.send_message(chat_id,
                         'Ошибка\n возможно команда была некорректная')
コード例 #2
0
def check_correct_currency_name(currency):
    '''
    Функция проверяет правильность написания запрощенной валюты. Сверяет со списком валют в базе
    '''
    print('проверка правильности написания валюты')
    query = 'SELECT currency_code FROM general_info'
    currency = currency.upper()
    response = database.db_execute_query(query)
    for tup in response:
        if currency == tup[0]:
            return True
    return False
コード例 #3
0
def get_list_of_currency(bot, chat_id):
    '''
    При получения команды "./get" без аругментов.
    Отправляет сообщение пользователю со списком всех поддерживаемых валют
    '''
    query = 'SELECT * FROM general_info'
    text = database.db_execute_query(query)
    message = ''
    for line in text:
        a = '{} {}({})"\n'.format(line[2], line[3], line[1])
        message += a
    bot.send_message(chat_id, message)
コード例 #4
0
def parse_get_command(message, bot):
    '''
    Функция парсит команду "/get .."
    Если аргументы отсутствуют то выдается список доступных валют.
    При наличии валюты, проверяется корректность запроса и выдается текущий курс
    '''
    pattern = r'/get\s\b\w\w\w\b'
    match = re.search(pattern, message.text.lower())
    if not match:
        get_list_of_currency(bot, message.chat.id)
        return
    currency_ = match[0][5:8].upper()
    query = 'SELECT currency_code FROM general_info'
    response = database.db_execute_query(query)
    for tup in response:
        if currency_ == tup[0]:
            print('запрос курса {}'.format(currency_))
            get_current_rate(currency_, bot, message.chat.id)
            return
    bot.send_message(message.chat.id, 'Некорректная валюта')
コード例 #5
0
def get_today_rate(currency, bot, chat_id, date):
    try:
        print("kek")
        year = date[0:4]
        month = date[5:7]
        day = date[8:]
        print("kek")
        url = "https://www.cbr.ru/currency_base/daily/?date_req=" + day + "." + month + "." + year
        print(url)
        list = database.get_query_from_link(url, True)
        print("получили список")
        for item in list:
            if item[0] == currency:
                price = item[1]
                print(price)
        print('нашли цену')
        query_count = 'SELECT currency_count FROM general_info WHERE currency_code = "{}"'.format(
            currency)
        response_count = database.db_execute_query(query_count)[0][0]
        message = 'Цена {} {} на сегодняшний день составляет {} руб.'.format(
            response_count, currency, price)
        bot.send_message(chat_id, message)
    except:
        print('Ошибка быстрой валюты')