bluebot
Version:
A bitcoin trading bot for auto trading at various exchanges
57 lines (39 loc) • 1.4 kB
JavaScript
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;