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))
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(