Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- in app.js
- async function test(){
- let queryDev = mysqlDB.query('TRUNCATE TABLE marketorders', (err, res, fields) => {
- if (err) throw err;
- });
- queryDev.sql;
- const location = new getLocations();
- await location.getOldRegions();
- for (let region of location.regionList) {
- await getMarketOrders(region);
- global.gc();
- }
- }
- test();
- //////
- const fetch = require("node-fetch"),
- mysql = require('mysql');
- const mysqlDB = mysql.createConnection({
- host: '127.0.0.1',
- port: 3306,
- user: 'root',
- password: '',
- database: 'evemarketserver'
- });
- mysqlDB.connect((err) => {
- if (err) {
- console.error('error connecting to mysql db: ' + mysqlDB.threadId);
- return;
- }
- console.log('connected to mysql db as id ' + mysqlDB.threadId);
- });
- module.exports = async (region) => {
- let notEmpty = true;
- let page = 0;
- console.log('Processing: ' +region);
- while (notEmpty) {
- page++;
- let searchQuery = `https://esi.evetech.net/latest/markets/${region}/orders/?datasource=tranquility&order_type=all&page=${page}`;
- let res = await orderQuery(searchQuery);
- if (Object.entries(res).length === 0 /*&& res.constructor === Object*/ ) {
- notEmpty = false;
- } else {
- writeToDatabase(res, region);
- }
- console.log(page+ '\t' + notEmpty);
- }
- };
- function writeToDatabase(res, region) {
- for (const entry of res) {
- entry.region_id = region;
- let query = mysqlDB.query('INSERT INTO marketorders SET ?', entry, (err) => {
- if (err) throw err;
- });
- query.sql;
- }
- };
- async function orderQuery(searchQuery) {
- return fetch(searchQuery)
- .then((response) => {
- if (response.status === 200 && response.ok) {
- return response.json();
- } else {
- orderQuery(searchQuery);
- }
- })
- .then((json) => {
- if (json === null) {
- return json;
- } else {
- for (let entry of json) {
- entry.location = entry.range;
- delete entry.range;
- }
- return json;
- }
- })
- .catch(err => console.log(err));
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement