Skip to content

Instantly share code, notes, and snippets.

@oro2714
Created September 7, 2018 05:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oro2714/fa8ff9c600fec9d82144f6e3e9036495 to your computer and use it in GitHub Desktop.
Save oro2714/fa8ff9c600fec9d82144f6e3e9036495 to your computer and use it in GitHub Desktop.
import csv
import time
import json
import os
import csv
from joblib import Parallel, delayed
import requests
from datetime import datetime
addrs1 = []
with open("addres_v5.csv", "r") as f:
reader = csv.reader(f)
for row in reader:
addrs1.append(row)
addrs = [a[0] for a in addrs1]
os.mkdir("data")
os.chdir("data")
def update(k,addrs):
def getbalance(i, addrs):
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
n = len(addrs)
data = []
while i < n:
url = "https://mona.chainsight.info/api/addr/" + addrs[i] + "/balance"
res = requests.get(url, headers=headers).text
data += [[addrs[i], res]]
i += 10
return data
r = Parallel(n_jobs=-1)([delayed(getbalance)(i, addrs) for i in range(10)])
data = []
for e in r:
data += e
with open('balance_'+str(k)+'.csv', 'w') as f2:
writer = csv.writer(f2, lineterminator='\n')
writer.writerows(data)
data = [e for e in data if int(e[1]) > 0]
data2 = []
for e in data:
if len(e) < 8:
a = "0" * (9 - len(e[1])) + e[1]
else:
a = e
data2 += [[e[0], a[:-8] + "." + a[-8:]]]
print(data2)
data2 += [["total", sum([float(e[1]) for e in data2])]]
data2 += [["time",datetime.now().strftime("%Y/%m/%d %H:%M:%S")]]
with open('final_balance_'+str(k)+'.csv', 'w') as f2:
writer = csv.writer(f2, lineterminator='\n')
writer.writerows(data2)
k=0
while True:
update(k,addrs)
if k>0:
new = []
with open('balance_' + str(k) + '.csv', "r") as f:
reader = csv.reader(f)
for row in reader:
new.append(row)
old = []
with open('balance_' + str(k - 1) + '.csv', "r") as f:
reader = csv.reader(f)
for row in reader:
old.append(row)
changelog = [[new[i][0], float(new[i][1]) - float(old[i][1])] for i in range(len(addrs))]
with open('changelog' + str(k) + '.csv', 'w') as f2:
writer = csv.writer(f2, lineterminator='\n')
writer.writerows(changelog)
k += 1
time.sleep(7200)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment