first commit

This commit is contained in:
Francois Klieber committed 2021-06-06 20:25:14 +02:00
commit aa7869eb33
386 files changed
+69375

No files matched your search

+64
View File
@@ -0,0 +1,64 @@
const _ = require('lodash');
const async = require('async');
const fs = require('fs');
const util = require('../../core/util.js');
const config = util.getConfig();
const dirs = util.dirs();
const sqlite3 = require('sqlite3');
// todo: rewrite with generators or async/await..
module.exports = done => {
const dbDirectory = dirs.gekko + config.sqlite.dataDirectory
if(!fs.existsSync(dbDirectory))
return done(null, []);
const files = fs.readdirSync(dbDirectory);
const dbs = files
.filter(f => {
let parts = f.split('.');
if(_.last(parts) === 'db')
return true;
})
if(!_.size(dbs))
return done(null, []);
let markets = [];
async.each(dbs, (db, next) => {
const exchange = _.first(db.split('_'));
const handle = new sqlite3.Database(dbDirectory + '/' + db, sqlite3.OPEN_READONLY, err => {
if(err)
return next(err);
handle.all(`SELECT name FROM sqlite_master WHERE type='table'`, (err, tables) => {
if(err)
return next(err);
_.each(tables, table => {
let parts = table.name.split('_');
let first = parts.shift();
if(first === 'candles')
markets.push({
exchange: exchange,
currency: _.first(parts),
asset: _.last(parts)
});
});
next();
});
});
},
// got all tables!
err => {
done(err, markets);
});
}