current_data_datetime = current_data_datetime[:-6] #prior to python 3.2 strptime doesnt work properly with numeric timezone offsets.
    current_data_datetime = datetime.datetime.strptime(current_data_datetime, '%a, %d %b %Y %H:%M:%S')
    current_data_timestamp = int((current_data_datetime - datetime.datetime(1970, 1, 1)).total_seconds())

    #do we need to check and create folder only when history demon started firstly?
    actual_currency_list = {}

    for currency_code in current_data_all:
        if currency_code in CURRENCY_LIST:
            actual_currency_list[currency_code] = current_data_all[currency_code]; # add currency code if it's represent in CURRENCY LIST
            if not os.path.exists(os.path.join(ba.server.HISTORY_DOCUMENT_ROOT, currency_code)):
                os.makedirs(os.path.join(ba.server.HISTORY_DOCUMENT_ROOT, currency_code))


    for currency_code in actual_currency_list:
        history_writers.write_24h_csv(currency_code, actual_currency_list[currency_code]['averages'], current_data_timestamp)
        history_writers.write_1mon_csv(currency_code, current_data_timestamp)
        history_writers.write_forever_csv(currency_code, actual_currency_list[currency_code]['averages']['total_vol'], current_data_timestamp)
        history_writers.write_volumes_csv(currency_code, actual_currency_list[currency_code], current_data_timestamp)

        #write global average 24th sliding window
        history_writers.write_24h_global_average(fiat_data_all, actual_currency_list,  currency_code, current_data_timestamp)


    current_time = time.time()
    timestamp = email.utils.formatdate(current_time)
    sleep_time = HISTORY_QUERY_FREQUENCY - (current_time % HISTORY_QUERY_FREQUENCY)
    sleep_time = min(HISTORY_QUERY_FREQUENCY, sleep_time)

    print '%s, sleeping %ss - history daemon' % (timestamp, str(sleep_time))
Example #2
0
    try:
        current_data_all = requests.get(ticker_url, headers=ba.config.API_REQUEST_HEADERS).json()
        fiat_data_all = requests.get(fiat_data_url, headers=ba.config.API_REQUEST_HEADERS).json()
    except (simplejson.decoder.JSONDecodeError, requests.exceptions.ConnectionError), err:
        write_log("can not get API data: {0}".format(str(err)), "ERROR")
        time.sleep(10)
        continue

    current_data_datetime = current_data_all['timestamp']
    current_data_datetime = current_data_datetime[:-6] #prior to python 3.2 strptime doesnt work properly with numeric timezone offsets.
    current_data_datetime = datetime.datetime.strptime(current_data_datetime, '%a, %d %b %Y %H:%M:%S')
    current_data_timestamp = int((current_data_datetime - datetime.datetime(1970, 1, 1)).total_seconds())

    for currency_code in CURRENCY_LIST:
        try:
            history_writers.write_24h_csv(currency_code, current_data_all[currency_code]['averages'], current_data_timestamp)
            history_writers.write_1mon_csv(currency_code, current_data_timestamp)
            history_writers.write_forever_csv(currency_code, current_data_all[currency_code]['averages']['total_vol'], current_data_timestamp)
            history_writers.write_volumes_csv(currency_code, current_data_all[currency_code], current_data_timestamp)

            history_writers.write_24h_global_average_csv(fiat_data_all, current_data_all,  currency_code, current_data_timestamp)
            history_writers.write_24h_global_average_short_csv(current_data_all,  currency_code, current_data_timestamp)
        except KeyError:
            pass

    current_time = time.time()
    timestamp = email.utils.formatdate(current_time)
    sleep_time = HISTORY_QUERY_FREQUENCY - (current_time % HISTORY_QUERY_FREQUENCY)
    sleep_time = min(HISTORY_QUERY_FREQUENCY, sleep_time)

    print '%s, sleeping %ss - history daemon' % (timestamp, str(sleep_time))
        time.sleep(2)
        continue

    current_data_datetime = current_data_all['timestamp']
    current_data_datetime = current_data_datetime[:
                                                  -6]  #prior to python 3.2 strptime doesnt work properly with numeric timezone offsets.
    current_data_datetime = datetime.datetime.strptime(
        current_data_datetime, '%a, %d %b %Y %H:%M:%S')
    current_data_timestamp = int(
        (current_data_datetime -
         datetime.datetime(1970, 1, 1)).total_seconds())

    for currency_code in CURRENCY_LIST:
        try:
            history_writers.write_24h_csv(
                currency_code, current_data_all[currency_code]['averages'],
                current_data_timestamp)
            history_writers.write_1mon_csv(currency_code,
                                           current_data_timestamp)
            history_writers.write_forever_csv(
                currency_code,
                current_data_all[currency_code]['averages']['total_vol'],
                current_data_timestamp)
            history_writers.write_volumes_csv(currency_code,
                                              current_data_all[currency_code],
                                              current_data_timestamp)

            history_writers.write_24h_global_average_csv(
                fiat_data_all, current_data_all, currency_code,
                current_data_timestamp)
            history_writers.write_24h_global_average_short_csv(