]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - main.py
Store reports to database
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / main.py
diff --git a/main.py b/main.py
index 55981bf94d82c966aea93e3f89ea25a01cdb7c79..3e9828952867dc7034fb588d865d713655d1a112 100644 (file)
--- a/main.py
+++ b/main.py
@@ -62,7 +62,7 @@ def make_order(market, value, currency, action="acquire",
 
 def get_user_market(config_path, user_id, debug=False):
     pg_config, report_path = parse_config(config_path)
-    market_config = list(fetch_markets(pg_config, str(user_id)))[0][0]
+    market_config = list(fetch_markets(pg_config, str(user_id)))[0][1]
     args = type('Args', (object,), { "debug": debug, "quiet": False })()
     return market.Market.from_config(market_config, args, user_id=user_id, report_path=report_path)
 
@@ -71,9 +71,9 @@ def fetch_markets(pg_config, user):
     cursor = connection.cursor()
 
     if user is None:
-        cursor.execute("SELECT config,user_id FROM market_configs")
+        cursor.execute("SELECT id,config,user_id FROM market_configs")
     else:
-        cursor.execute("SELECT config,user_id FROM market_configs WHERE user_id = %s", user)
+        cursor.execute("SELECT id,config,user_id FROM market_configs WHERE user_id = %s", user)
 
     for row in cursor:
         yield row
@@ -132,10 +132,12 @@ def parse_args(argv):
 
     return args
 
-def process(market_config, user_id, report_path, args):
+def process(market_id, market_config, user_id, report_path, args, pg_config):
     try:
         market.Market\
-                .from_config(market_config, args, user_id=user_id, report_path=report_path)\
+                .from_config(market_config, args,
+                        pg_config=pg_config, market_id=market_id,
+                        user_id=user_id, report_path=report_path)\
                 .process(args.action, before=args.before, after=args.after)
     except Exception as e:
         print("{}: {}".format(e.__class__.__name__, e))
@@ -149,11 +151,13 @@ def main(argv):
         import threading
         market.Portfolio.start_worker()
 
-        for market_config, user_id in fetch_markets(pg_config, args.user):
-            threading.Thread(target=process, args=[market_config, user_id, report_path, args]).start()
+        for row in fetch_markets(pg_config, args.user):
+            threading.Thread(target=process, args=[
+                *row, report_path, args, pg_config
+                ]).start()
     else:
-        for market_config, user_id in fetch_markets(pg_config, args.user):
-            process(market_config, user_id, report_path, args)
+        for row in fetch_markets(pg_config, args.user):
+            process(*row, report_path, args, pg_config)
 
 if __name__ == '__main__': # pragma: no cover
     main(sys.argv[1:])