Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. in app.js
  2.  
  3. async function test(){
  4. let queryDev = mysqlDB.query('TRUNCATE TABLE marketorders', (err, res, fields) => {
  5. if (err) throw err;
  6. });
  7. queryDev.sql;
  8.  
  9. const location = new getLocations();
  10. await location.getOldRegions();
  11.  
  12. for (let region of location.regionList) {
  13. await getMarketOrders(region);
  14. global.gc();
  15.  
  16. }
  17. }
  18. test();
  19.  
  20.  
  21. //////
  22.  
  23. const fetch = require("node-fetch"),
  24. mysql = require('mysql');
  25.  
  26. const mysqlDB = mysql.createConnection({
  27. host: '127.0.0.1',
  28. port: 3306,
  29. user: 'root',
  30. password: '',
  31. database: 'evemarketserver'
  32. });
  33.  
  34. mysqlDB.connect((err) => {
  35. if (err) {
  36. console.error('error connecting to mysql db: ' + mysqlDB.threadId);
  37.  
  38. return;
  39. }
  40. console.log('connected to mysql db as id ' + mysqlDB.threadId);
  41. });
  42.  
  43.  
  44.  
  45. module.exports = async (region) => {
  46. let notEmpty = true;
  47. let page = 0;
  48. console.log('Processing: ' +region);
  49.  
  50. while (notEmpty) {
  51. page++;
  52. let searchQuery = `https://esi.evetech.net/latest/markets/${region}/orders/?datasource=tranquility&order_type=all&page=${page}`;
  53. let res = await orderQuery(searchQuery);
  54. if (Object.entries(res).length === 0 /*&& res.constructor === Object*/ ) {
  55. notEmpty = false;
  56. } else {
  57. writeToDatabase(res, region);
  58. }
  59. console.log(page+ '\t' + notEmpty);
  60.  
  61. }
  62. };
  63.  
  64. function writeToDatabase(res, region) {
  65. for (const entry of res) {
  66. entry.region_id = region;
  67. let query = mysqlDB.query('INSERT INTO marketorders SET ?', entry, (err) => {
  68. if (err) throw err;
  69. });
  70. query.sql;
  71. }
  72. };
  73.  
  74. async function orderQuery(searchQuery) {
  75. return fetch(searchQuery)
  76. .then((response) => {
  77. if (response.status === 200 && response.ok) {
  78. return response.json();
  79. } else {
  80. orderQuery(searchQuery);
  81. }
  82. })
  83. .then((json) => {
  84. if (json === null) {
  85. return json;
  86. } else {
  87. for (let entry of json) {
  88. entry.location = entry.range;
  89. delete entry.range;
  90. }
  91. return json;
  92. }
  93. })
  94. .catch(err => console.log(err));
  95. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement