52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import requests
|
|
import os
|
|
import arrow
|
|
import json
|
|
|
|
payload = {'jsonrpc': '2.0', 'id': '0', 'method': '', 'params': {}}
|
|
headers = {'Content-Type': 'application/json'}
|
|
daemon = 'http://crypto.int.lzahq.tech:34568'
|
|
json_rpc = daemon + '/json_rpc'
|
|
data_path = './data/logs'
|
|
|
|
def make_payload(rpc_method, params={}):
|
|
payload['method'] = rpc_method
|
|
payload['params'] = params
|
|
return payload
|
|
|
|
def make_rpc(rpc_method, http_method='get', _payload={}):
|
|
if http_method == 'get':
|
|
req = requests.get
|
|
else:
|
|
req = requests.post
|
|
r = req(
|
|
json_rpc, timeout=5, headers=headers,
|
|
json=make_payload(rpc_method, _payload)
|
|
)
|
|
r.raise_for_status()
|
|
return r.json()['result']
|
|
|
|
def run():
|
|
top_block = make_rpc('get_block_count', 'get')['count']
|
|
for block in range(top_block - 1, 0, -1):
|
|
_path = f'{data_path}/{block}.json'
|
|
if not os.path.isfile(_path):
|
|
block_data = make_rpc('get_block', 'get', {'height': block})['block_header']
|
|
ts = arrow.get(block_data['timestamp'])
|
|
if block_data['timestamp'] == 0:
|
|
ts = arrow.get('2018-04-01 04:20:00')
|
|
block_data['datetime'] = ts.format('YYYY-MM-DD HH:mm:ss')
|
|
index_date = ts.format('YYYY-MM')
|
|
index_name = f'wownero-block-data-{index_date}'
|
|
r = requests.post(
|
|
f'http://localhost:9200/{index_name}/_doc/{block_data["height"]}',
|
|
json=block_data, timeout=5, headers=headers
|
|
)
|
|
r.raise_for_status()
|
|
with open(_path, 'w') as f:
|
|
f.write(json.dumps(block_data))
|
|
print(f'Added file {_path} for index {index_name}')
|
|
|
|
if __name__ == '__main__':
|
|
run()
|