UNPKG

bluebot

Version:

A bitcoin trading bot for auto trading at various exchanges

57 lines (39 loc) 1.4 kB
var _ = require('lodash'); var fs = require('fs'); var util = require('../../core/util.js'); var config = util.getConfig(); var dirs = util.dirs(); var adapter = config.sqlite; // verify the correct dependencies are installed var pluginHelper = require(dirs.core + 'pluginUtil'); var pluginMock = { slug: 'sqlite adapter', dependencies: adapter.dependencies }; var cannotLoad = pluginHelper.cannotLoad(pluginMock); if(cannotLoad) util.die(cannotLoad); // should be good now if(config.debug) var sqlite3 = require('sqlite3').verbose(); else var sqlite3 = require('sqlite3'); var plugins = require(util.dirs().bluebot + 'plugins'); var version = adapter.version; var dbName = config.watch.exchange.toLowerCase() + '_' + version + '.db'; var dir = dirs.bluebot + adapter.dataDirectory; var fullPath = [dir, dbName].join('/'); var mode = util.bluebotMode(); if(mode === 'realtime' || mode === 'importer') { if(!fs.existsSync(dir)) fs.mkdirSync(dir); } else if(mode === 'backtest') { if(!fs.existsSync(dir)) util.die('History directory does not exist.'); if(!fs.existsSync(fullPath)) util.die(`History database does not exist for exchange ${config.watch.exchange} at version ${version}.`); } var db = new sqlite3.Database(fullPath); db.run('PRAGMA journal_mode = ' + config.sqlite.journalMode||'WAL'); db.configure('busyTimeout', 1500); module.exports = db;