Advertisement
Guest User

trade

a guest
Sep 10th, 2017
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.91 KB | None | 0 0
  1. var Winston = require('winston');
  2. var express = require('express');
  3. var fs = require('fs');
  4. var app = require('http').createServer(handler);
  5. var io = require('socket.io')(app);
  6. var steamUserInventory = require('steam-user-inventory');
  7. var mysql = require('mysql');
  8. var request = require('request');
  9.  
  10.  
  11. app.listen(8090);
  12.  
  13. var pool = mysql.createPool({
  14. connectionLimit : 10,
  15. database: 'trade',
  16. host: 'localhost',
  17. user: 'root',
  18. password: 'fncjpfncjpdu86'
  19. });
  20. var response = [];
  21.  
  22. function handler (req, res) {
  23. fs.readFile(__dirname + '/index.html',
  24. function (err, data) {
  25. if (err) {
  26. res.writeHead(500);
  27. return res.end('Error loading index.html');
  28. }
  29.  
  30. res.writeHead(200);
  31. res.end(data);
  32. });
  33. }
  34.  
  35.  
  36.  
  37. var app = express();
  38.  
  39.  
  40. var items;
  41. var h1z1;
  42. var test;
  43. var table = [];
  44.  
  45. fs.readdir("items/", function(err, filenames) {
  46. if (err) {
  47. onError(err);
  48. return;
  49. }
  50. filenames.forEach(function(filename) {
  51. fs.readFile("items/" + filename, 'utf-8', function(err, content) {
  52. if (err) {
  53. onError(err);
  54. return;
  55. }
  56.  
  57. var items = JSON.parse(content);
  58. for (var i = 0; i < items.length; ++i) {
  59. table.push(items[i]);
  60. }
  61. });
  62. });
  63. });
  64.  
  65.  
  66. var h1z1prices;
  67. fs.readFile("price/H1Z1-price.json", 'utf-8', function (err, content) {
  68. if (err) {
  69. return console.log(err);
  70. }
  71. h1z1prices = JSON.parse(content);
  72. });
  73.  
  74.  
  75. function getUserInventory(steamID, game, context) {
  76. var url = "http://steamcommunity.com/inventory/"+steamID+"/"+game+"/"+context+"?l=english&count=5000";
  77. request(url , function (error, res, body) {
  78. if (!error && res.statusCode === 200) {
  79. // console.log(body) // Print the json response
  80. var data = JSON.parse(body);
  81. // console.log(data.descriptions);
  82. var desc = data.descriptions;
  83. var assets = data.assets;
  84.  
  85.  
  86. Object.keys(assets).forEach(key => {
  87. var temp = assets[key];
  88. var i;
  89. Object.keys(desc).forEach(key => {
  90. var temp2 = desc[key];
  91. if (temp.classid == temp2.classid){
  92. i = key;
  93. }
  94. });
  95.  
  96. let item = desc[i];
  97. // console.log(temp);
  98. // console.log(desc);
  99. let data = {
  100. id: temp.assetid,
  101. amount: temp.amount,
  102. pos: temp.pos,
  103. name: item.name,
  104. appid: item.appid,
  105. classid: item.classid,
  106. instanceid: item.instanceid,
  107. tradable: item.tradable,
  108. marketable: item.marketable,
  109. marketTradableRestriction: item.market_tradable_restriction,
  110. link: item.actions ? item.actions[0].link : null,
  111. image: `http://steamcommunity-a.akamaihd.net/economy/image/${item.icon_url_large || item.icon_url}`,
  112. category: null,
  113. type: null,
  114. exterior: null,
  115. quality: null,
  116. raw: item,
  117. };
  118.  
  119. item.tags.forEach(tag => {
  120. if (tag.category === 'Type') {
  121. data.type = tag.internal_name;
  122. }
  123. if (tag.category === 'Weapon') {
  124. data.weapon = tag.internal_name;
  125. }
  126. if (tag.category === 'Quality') {
  127. data.category = tag.internal_name;
  128. }
  129. if (tag.category === 'Exterior') {
  130. data.exterior = tag.internal_name;
  131. }
  132. });
  133.  
  134. response.push(data);
  135. });
  136. return response;
  137. // socket.emit('inv user', {inv: response})
  138. }
  139. });
  140. }
  141.  
  142.  
  143. function loadUserInventory (hash, socket){
  144. query('SELECT steamID, update_time FROM users WHERE hash = "' + hash +'";', function (err, res) {
  145. if(err) {
  146. console.log(err);
  147. } else {
  148. var time = res[0].update_time;
  149. var after = Date.now();
  150. var verif = after - time;
  151. var steamID = res[0].steamID;
  152. if(verif > 120000){
  153. query('UPDATE users SET update_time = "' + Date.now() + '" WHERE hash = "' + hash +'";', function (err, res1) {
  154. if (err) {
  155. console.log(err)
  156. } else {
  157. console.log(steamID);
  158. getUserInventory(steamID, '433850', '1');
  159. // console.log(getUserInventory(steamID, '433850', '1'));
  160. var intervalEmit = setInterval(function () {
  161. if (response.length != 0) {
  162. query('DELETE FROM users_items WHERE id_user = "' + steamID + '";', function (err, re) {
  163. if (err) {
  164. console.log(err)
  165. } else {
  166. for (var j in response) {
  167. query('INSERT INTO users_items (`appid`, `category`, `classid`, `exterior`, `id`, `image`, `instanceid`, `link`, `marketTradableRestriction`, `marketable`, `name`, `pos`, `commodity`, `description`, `icon_url`, `icon_url_large`, `market_hash_name`, `market_name`, `tag`, `tradable`, `type`, `id_user`) VALUES (' + response[j].appid + ', "' + response[j].category + '", ' + response[j].classid + ', "' + response[j].exterior + '", ' + response[j].id + ', "' + response[j].image + '", ' + response[j].instanceid + ', "' + response[j].link + '", "' + response[j].marketTradableRestriction + '", ' + response[j].marketable + ', "' + response[j].name + '", "' + response[j].pos + '", "' + response[j].commodity + '", "' + response[j].description + '", "' + response[j].icon_url + '", "' + response[j].icon_url_large + '", "' + response[j].market_hash_name + '", "' + response[j].market_name + '", "' + response[j].tag + '", ' + response[j].tradable + ', "' + response[j].type + '", "' + steamID + '" );', function (err, resultat) {
  168. if (err) {
  169. console.log(err)
  170. }
  171. });
  172. }
  173. }
  174. });
  175. socket.emit('inv user', {inv: response})
  176. clearInterval(intervalEmit);
  177. }
  178. }, 1000);
  179. if (response.length != 0) {
  180. query('DELETE FROM users_items WHERE id_user = "' + steamID + '";', function (err, re) {
  181. if (err) {
  182. console.log(err)
  183. } else {
  184. for (var j in response) {
  185. query('INSERT INTO users_items (`appid`, `category`, `classid`, `exterior`, `id`, `image`, `instanceid`, `link`, `marketTradableRestriction`, `marketable`, `name`, `pos`, `commodity`, `description`, `icon_url`, `icon_url_large`, `market_hash_name`, `market_name`, `tag`, `tradable`, `type`, `id_user`) VALUES (' + response[j].appid + ', "' + response[j].category + '", ' + response[j].classid + ', "' + response[j].exterior + '", ' + response[j].id + ', "' + response[j].image + '", ' + response[j].instanceid + ', "' + response[j].link + '", "' + response[j].marketTradableRestriction + '", ' + response[j].marketable + ', "' + response[j].name + '", "' + response[j].pos + '", "' + response[j].commodity + '", "' + response[j].description + '", "' + response[j].icon_url + '", "' + response[j].icon_url_large + '", "' + response[j].market_hash_name + '", "' + response[j].market_name + '", "' + response[j].tag + '", ' + response[j].tradable + ', "' + response[j].type + '", "' + steamID + '" );', function (err, resultat) {
  186. if (err) {
  187. console.log(err)
  188. }
  189. });
  190. }
  191. }
  192. });
  193. socket.emit('inv user', {inv: response})
  194. }
  195. }
  196. });
  197. } else {
  198. socket.emit('inv user', {inv: "Stop Refresh ! Just wait 2 minutes !!"})
  199. }
  200. }
  201. });
  202. }
  203.  
  204.  
  205.  
  206. io.on('connection', function (socket) {
  207. console.log("New connection !!");
  208. socket.emit('inventory', {result: table});
  209. socket.emit('h1z1json', { prices: h1z1prices });
  210.  
  211.  
  212. socket.on('load user', function (data) {
  213. console.log(data.client);
  214. loadUserInventory(data.client, socket)
  215.  
  216.  
  217.  
  218. });
  219. });
  220.  
  221.  
  222. function query(sql, callback) {
  223. if (typeof callback === 'undefined') {
  224. callback = function() {};
  225. }
  226. pool.getConnection(function(err, connection) {
  227. if(err) return callback(err);
  228. // console.log('DB connection ID: '+connection.threadId);
  229. connection.query(sql, function(err, rows) {
  230. if(err) return callback(err);
  231. connection.release();
  232. return callback(null, rows);
  233. });
  234. });
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement