def __init__(self, currency: str, should_use_localhost_db: bool = True): # make sure currency is in lower-case format if not currency.islower(): raise Exception("<currency> parameter should be a lower-cased symbol of the target currency!") super().__init__() # init db mongodb_uri = Global.read_mongodb_uri(should_use_localhost_db) db_client = MongoClient(mongodb_uri) bithumb_db = db_client["bithumb"] coinone_db = db_client["coinone"] # korbit_db = db_client["korbit"] gopax_db = db_client["gopax"] okcoin_db = db_client["okcoin"] # coinnest_db = db_client["coinnest"] # init api bithumb_api = BithumbApi.instance(True) coinone_api = CoinoneApi.instance(True) # korbit_api = KorbitApi.instance(True) gopax_api = GopaxApi.instance(True) okcoin_api = OkcoinApi.instance(True) # coinnest_api = CoinnestApi.instance(True) # init currency bithumb_currency = BithumbCurrency[currency.upper()] coinone_currency = CoinoneCurrency[currency.upper()] # korbit_currency = KorbitCurrency[currency.upper()] goapx_currency = GopaxCurrency[currency.upper()] okcoin_currency = OkcoinCurrency[currency.upper()] # coinnest_currency = CoinnestCurrency[currency.upper()] # init collector self.bt_collector = Collector( bithumb_api, bithumb_currency, bithumb_db ) self.co_collector = Collector( coinone_api, coinone_currency, coinone_db ) # self.kb_collector = Collector( # korbit_api, korbit_currency, korbit_db # ) self.go_collector = Collector( gopax_api, goapx_currency, gopax_db ) self.oc_collector = Collector( okcoin_api, okcoin_currency, okcoin_db )
import logging from config.global_conf import Global from pymongo import MongoClient Global.configure_default_root_logging(should_log_to_file=False, log_level=logging.INFO) local_mongo = MongoClient(Global.read_mongodb_uri(True)) remote_mongo = MongoClient(Global.read_mongodb_uri(False)) for db_name in ["coinone", "gopax", "korbit", "bithumb", "okcoin", "coinnest"]: for col_name in ["bch_orderbook", "btc_orderbook", "eth_orderbook", "tron_orderbook", "xrp_orderbook", "qtum_orderbook"]: try: local_target = local_mongo[db_name][col_name] remote_target = remote_mongo[db_name][col_name] from_time = local_target.find().sort([("requestTime", -1)]).limit(1)[0]["requestTime"] logging.info("Copying <%s.%s> from remote to local" % (db_name, col_name)) logging.info("Local before: %d" % local_target.count()) cursor = remote_target.find({ "requestTime": { "$gt": from_time } }).sort([("requestTime", 1)]) for data in cursor: local_target.insert(data) logging.info("Remote added: %d" % cursor.count()) logging.info("Local after: %d" % local_target.count())
def __init__(self, should_use_localhost_db: bool): mongodb_uri = Global.read_mongodb_uri(should_use_localhost_db) self.mongo_client = MongoClient(mongodb_uri)