-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathdatabase.py
61 lines (49 loc) · 1.82 KB
/
database.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from pymongo import MongoClient
from datetime import datetime
class DB:
def __init__(self, cred):
self.client = MongoClient(cred)
self.db = self.client.arb
self.balance = self.db.balance
self.jobs = self.db.jobs
def post_job(self, job):
result = self.jobs.insert_one(job)
return result
def post_balance(self, balance):
result = self.balance.insert_one(balance)
def post_action(self, action):
result = self.thortrader.insert_one(action)
return result
def post_filtered_action(self, action, additional=None):
tx = {}
tx['tx_id'] = action['tx']['id']
tx['in_asset'] = action['tx']['coins'][0]['asset']
tx['in_amount'] = float(action['tx']['coins'][0]['amount'])
tx['gas_asset'] = action['tx']['gas'][0]['asset']
tx['gas_amount'] = float(action['tx']['gas'][0]['amount'])
tx["time"] = datetime.now()
if additional:
tx.update(additional)
result = self.ftxtrader.insert_one(tx)
return result
def get_action(self):
result = self.thortrader.find_one()
return result
def get_filtered_action(self, filter=None):
if filter:
result = self.ftxtrader.find_one(filter)
else:
result = self.ftxtrader.find_one()
return result
def delete_action(self, filter):
result = self.thortrader.delete_one(filter)
return result
def delete_filtered_action(self, filter):
result = self.ftxtrader.delete_one(filter)
return result
def delete_collection(self):
result = self.ftxtrader.drop()
return result
def update_filtered_action(self, filter, update):
result = self.ftxtrader.update_one(filter=filter, update={"$set": update})
return result