mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-11 17:28:08 +00:00
commit
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
|
||||
|
||||
import ccxt from '../../js/ccxt.js';
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
|
||||
const enableRateLimit = true,
|
||||
// exchange defaults
|
||||
// ------------------------------------------------------------------------
|
||||
// path to your folder, for example '/myproject/markets' or 'C:/myproject/markets'
|
||||
options = { enableRateLimit },
|
||||
// writes to current working directory if left empty
|
||||
// ------------------------------------------------------------------------
|
||||
// use a reasonable value for maxConcurrency to avoid network congestion
|
||||
// a burst of requests in a short period of time will cause
|
||||
// excessive competition for networking resources within the application
|
||||
folder = '',
|
||||
maxConcurrency = 7;
|
||||
|
||||
async function main () {
|
||||
|
||||
const allExchanges = ccxt.exchanges.map (id => {
|
||||
try {
|
||||
return new ccxt[id] (options)
|
||||
} catch (e) {
|
||||
console.log ('Failed to initialize', id, e.constructor.name)
|
||||
}
|
||||
}).filter (x => x)
|
||||
, allExchangesByIds = ccxt.indexBy (allExchanges, 'id')
|
||||
, exchangeIds = Object.keys (allExchangesByIds)
|
||||
|
||||
const load = async () => {
|
||||
while (exchangeIds.length > 0) {
|
||||
const id = exchangeIds.pop ()
|
||||
const exchange = allExchangesByIds[id]
|
||||
const file = path.join (folder, `saved-markets-${exchange.id}.json`)
|
||||
try {
|
||||
await exchange.loadMarkets ()
|
||||
const { id, markets } = exchange
|
||||
await writeFile (file, JSON.stringify ({ id, markets }))
|
||||
console.log ('Loaded markets from', id, 'to', file)
|
||||
} catch (e) {
|
||||
console.log ('Failed to load markets from', id, 'to', file, e.constructor.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const started = ccxt.milliseconds ()
|
||||
const loaders = Array (maxConcurrency).fill ().map (x => load ())
|
||||
await Promise.all (loaders)
|
||||
const stopped = ccxt.milliseconds ()
|
||||
console.log ('Done loading', allExchanges.length, 'exchanges in', ((stopped - started) / 1000).toFixed (2), 'seconds')
|
||||
|
||||
// other code...
|
||||
}
|
||||
|
||||
main ()
|
||||
Reference in New Issue
Block a user