Advertisement
Guest User

Untitled

a guest
Apr 8th, 2016
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.98 KB | None | 0 0
  1. var _ = require('lodash');
  2. var server = require('http').Server();
  3. var io = require('socket.io')(server);
  4.  
  5. var Redis = require('ioredis');
  6.  
  7. var redis = new Redis();
  8.  
  9. var mysql = require('mysql');
  10. var connection = mysql.createConnection({
  11. host: 'localhost',
  12. user: 'adminn',
  13. password: 'C5kgXx((@@',
  14. database: 'jackpot'
  15. });
  16.  
  17. var raven = require('raven');
  18. var client = new raven.Client('https://8fec85232011482dae733f94072cde13:69990b9a383b4b2da9c83b16192d5283@app.getsentry.com/71658');
  19. client.patchGlobal();
  20.  
  21. redis.subscribe('test-channel');
  22. server.listen(3000);
  23. var SteamBot = false;
  24. var WebApi = false;
  25. var request = require("request");
  26. var gameTime = 125;
  27.  
  28. var timeleft;
  29. var winnerID = '';
  30. var randomstring = require("randomstring");
  31. var md5 = require('MD5');
  32.  
  33. io.on('connection', function (socket) {
  34. var q = "SELECT * FROM chat ORDER BY ID DESC LIMIT 1";
  35. var q3 = "SELECT * FROM chat ORDER BY ID DESC LIMIT 15";
  36. var q2 = "SELECT * FROM chat ORDER BY ID DESC LIMIT 1";
  37. var currentPot = "SELECT * FROM currentPot ORDER BY ID DESC";
  38. var getPlayers = 'SELECT sum(itemPrice) as userPutIN, ownerSteamId64 as steamid FROM currentPot group by ownerSteamId64 ORDER BY userPutIN DESC';
  39. var lastItemInPot = "SELECT * FROM currentPot ORDER BY ID DESC LIMIT 1";
  40. var currentPotValue = "SELECT * FROM currentPot ORDER BY ID DESC";
  41. var getWholeHistory = "SELECT count(*) as Count FROM history ORDER BY ID DESC";
  42. var getLastHistID = "SELECT * FROM history ORDER BY ID DESC LIMIT 1,1";
  43.  
  44. var mess_id = 0;
  45. var potItemsCount = 0;
  46. var lastHistory = 0;
  47. var PotItems = 0;
  48. var HistoryCount = 0;
  49. var allPlayers = 0;
  50.  
  51. socket.on('refreshChatrefreshChat', function (data) {
  52. socket.emit('all-messages', true);
  53. });
  54. socket.on('banUser', function (data) {
  55. $steamID = data;
  56. connection.query('UPDATE users SET chat_blocked="1" WHERE `steamId64` = ?', [$steamID], function (error, results, fields) {
  57. console.log(results.message);
  58. socket.emit('userBanned', data);
  59. });
  60. });
  61. connection.query(getPlayers, function (err, rows, fields) {
  62. socket.emit('allPlayers', rows);
  63. });
  64.  
  65. connection.query(q, function (err, rows, fields) {
  66. if (rows.length > 0) {
  67. mess_id = rows[0]['id'];
  68. }
  69. });
  70. connection.query(q3, function (err, rows, fields) {
  71. if (rows.length > 0) {
  72. socket.emit('all-messages', true);
  73. } else {
  74. socket.emit('no-messages', '0');
  75. }
  76. });
  77.  
  78. connection.query(getWholeHistory, function (err, rows) {
  79. //console.log(rows[0]['Count']);
  80. HistoryCount = rows[0]['Count'];
  81. socket.emit('historyCount', HistoryCount);
  82.  
  83. });
  84. connection.query(getLastHistID, function (err, rows) {
  85. if (rows.length > 0) {
  86. lastHistory = rows[0]['id'];
  87. }
  88. });
  89. connection.query(currentPot, function (err, rows) {
  90. if (rows.length > 0) {
  91. socket.emit('allItemsPot', rows);
  92. socket.emit('PotItemsCount', rows.length);
  93. potItemsCount = rows[0]['id'];
  94. } else {
  95. socket.emit('PotItemsCount', 0);
  96. socket.emit('allItemsPot', 0);
  97. }
  98. });
  99.  
  100. var potValuation = 0;
  101. connection.query(currentPotValue, function (err, rows) {
  102. if (rows.length > 0) {
  103. rows.forEach(function (value, index) {
  104. var price = value['itemPrice'];
  105. potValuation += price;
  106. });
  107. socket.emit('potValue', potValuation);
  108. } else {
  109. socket.emit('potValue', 0);
  110. }
  111. });
  112. setInterval(function () {
  113. connection.query(q2, function (err, rows, fields) {
  114. if (rows.length > 0) {
  115. var ThisMess_id = rows[0]['id'];
  116. if (ThisMess_id > mess_id) {
  117. mess_id = ThisMess_id;
  118. socket.emit('new_message', rows[0]);
  119. }
  120. }
  121. });
  122. connection.query("SELECT roundHash FROM history ORDER BY id DESC LIMIT 1", function (err, rows, fields) {
  123. if (rows.length > 0) {
  124. socket.emit('roundHash', rows[0]);
  125. }
  126. });
  127. connection.query("SELECT * FROM currentPot ORDER BY ID DESC", function (err, rows) {
  128. connection.query("SELECT * FROM currentPot ORDER BY ID DESC", function (err, rows) {
  129. var thisCount = rows.length;
  130. if (thisCount != 0) {
  131. if (potItemsCount != thisCount) {
  132. var ThisPrice = rows[0]['itemPrice'];
  133. potItemsCount = thisCount;
  134. potValuation += ThisPrice;
  135. connection.query(currentPot, function (err, rows) {
  136. socket.emit('PotItemsCount', rows.length);
  137. socket.emit('allItemsPot', rows);
  138. });
  139. connection.query(currentPotValue, function (err, rows) {
  140. var potValuation = 0;
  141. rows.forEach(function (value, index) {
  142. var price = value['itemPrice'];
  143. potValuation += price;
  144. });
  145. socket.emit('potValue', potValuation);
  146. });
  147. connection.query(getPlayers, function (err, rows, fields) {
  148. socket.emit('allPlayers', rows);
  149. });
  150. }
  151. } else {
  152. socket.emit('PotItemsCount', 0);
  153. socket.emit('allItemsPot', 0);
  154. socket.emit('potValue', 0);
  155. socket.emit('allPlayers', 0);
  156. }
  157. });
  158. })
  159. connection.query(getLastHistID, function (err, rows) {
  160. var ThislastID = rows[0]['id'];
  161. if (lastHistory < ThislastID) {
  162. lastHistory = ThislastID;
  163. HistoryCount++;
  164. socket.emit('historyCount', HistoryCount);
  165. }
  166.  
  167. });
  168. //console.log(winnerID);
  169. if (winnerID != '') {
  170. socket.emit('clearGame', winnerID);
  171. setTimeout(function () {
  172. winnerID = '';
  173. socket.emit('clearWinner', true);
  174. }, 5000);
  175. return;
  176. }
  177. if (timeleft < 1) {
  178. socket.emit('counter', 125);
  179. } else if (timeleft == 30) {
  180. socket.emit('speedUp', true);
  181. socket.emit('counter', timeleft);
  182. } else if (timeleft == 20) {
  183. socket.emit('speedUpMore', true);
  184. socket.emit('counter', timeleft);
  185. } else if (timeleft == 6) {
  186. socket.emit('slow5', true);
  187. socket.emit('counter', timeleft);
  188. } else if (timeleft == 5) {
  189. socket.emit('slow4', true);
  190. socket.emit('counter', timeleft);
  191. } else if (timeleft == 4) {
  192. socket.emit('slow3', true);
  193. socket.emit('counter', timeleft);
  194. } else if (timeleft == 3) {
  195. socket.emit('slow2', true);
  196. socket.emit('counter', timeleft);
  197. } else {
  198. socket.emit('counter', timeleft);
  199. }
  200. }, 1000);
  201.  
  202. });
  203.  
  204. connection.connect(function (err) {
  205. if (err) {
  206. console.error('error connecting: ' + err.stack);
  207. return;
  208. WebApi = false;
  209. }
  210. WebApi = true;
  211. });
  212. ////////////////// CSBOX.pl Bot v0.0.1
  213.  
  214. var admins = ['76561198269216247', '76561198258632124'];
  215. var util = require('util');
  216. var ParentBot = require('steam-parentbot'); //change to 'steam-parentbot' if not running from examples directory
  217. var Steam = ParentBot.Steam; //instance of the Steam object
  218. var PriceApiKey = 'fFlJtSeeJb7wzswQG5FYJyeytkVK6dE8';
  219. var my = 0;
  220. var their = 0;
  221. var PriceApiKey = 'fFlJtSeeJb7wzswQG5FYJyeytkVK6dE8';
  222.  
  223. var ChildBot = function () {
  224. ChildBot.super_.apply(this, arguments);
  225. }
  226.  
  227. util.inherits(ChildBot, ParentBot);
  228.  
  229. var Bot = new ChildBot('rygielpds', 'C5kgXx99', {
  230. apikey: 'C146A31E1E6845C75E86728A1A488481', //steam api key, will be registered automatically if one isn't supplied
  231. sentryfile: 'rygielpds.sentry', //sentry file that stores steamguard info, defaults to username.sentry
  232. logfile: 'rygielpds.log', //filename to log stuff to, defaults to username.log
  233. sharedSecret: 'Z5v34dZ9GetrNdwkGgXgiXD6jxo=', //shared secret, needed to automatically generate twoFactorCode
  234. identitySecret: 'M0ux6n9RJ3NurQgdmcx08wyJGHk=', //identity secret, needed to automatically confirm trade offers, must be used with confirmationInterval
  235. confirmationInterval: 10000, //how often we should check for new trades to confirm in miliseconds, must be used with identitySecret
  236. richPresenceID: 730 //game to use rich presence with, don't include for no rich presence
  237. });
  238. var SteamTotp = require('steam-totp');
  239. var util = require('util');
  240. var botMain = function () {
  241. botMain.super_.apply(this, arguments);
  242. }
  243. util.inherits(botMain, ParentBot);
  244.  
  245. var TOTP = require('onceler').TOTP;
  246. var totp = new TOTP('D2EUYJ7OKUV6TUKU');
  247.  
  248. //Bot.steamUser.on('webSessionID', function (sessionID) {
  249. // globalSessionID = sessionID;
  250. // steam.webLogOn(function (newCookie) {
  251. // Bot.offers.setup({
  252. // sessionID: sessionID,
  253. // webCookie: newCookie
  254. // }, function (err) {
  255. // if (err) {
  256. // throw err;
  257. // }
  258. // setInterval(CheckTimer, 1000);
  259. // });
  260. // console.log(webCookie);
  261. // });
  262. //});
  263. Bot.steamUser.on('webSessionID', function (webSessionID) {
  264. console.log('Event "webSessionID" sessionID: ' + webSessionID);
  265. console.log('Event "webSessionID" SteamClient.sessionID: ' + SteamClient.sessionID);
  266.  
  267. gSessionID = webSessionID;
  268. globalSessionID = webSessionID;
  269.  
  270. });
  271. //setInterval(function(){
  272. // var _2facode = SteamTotp.generateAuthCode(Bot.sharedSecret);
  273. // console.log('Proszę : ' + _2facode + '');
  274. //},3000);
  275. ChildBot.prototype._onFriendMsg = function (steamID, message, type) { //overwrite default event handlers
  276. if (admins.indexOf(steamID) !== -1) {
  277. if (message == '/token') {
  278. var _2facode = SteamTotp.generateAuthCode(Bot.sharedSecret);
  279. Bot.steamFriends.sendMessage(steamID, 'Proszę : ' + _2facode + '');
  280. } else if (message == '/check') {
  281. handleOffers();
  282. } else if (message == '/send') {
  283. Bot.offers.loadMyInventory({
  284. appId: 730,
  285. contextId: 2
  286. }, function (err, items) {
  287.  
  288. //console.log(items);
  289. if (err) {
  290. console.log('Problem');
  291. steam.webLogOn(function (newCookie) {
  292. offers.setup({
  293. sessionID: globalSessionID,
  294. webCookie: newCookie
  295. }, function (err) {
  296. if (err) {
  297. }
  298. });
  299. });
  300. return;
  301. }
  302. var item = [], num = 0;
  303. var itemssToSend = [], numero = 0;
  304.  
  305. for (var i = 0; i < items.length; i++) {
  306. if (items[i].tradable) {
  307. item[num] = {
  308. appid: 730,
  309. contextid: 2,
  310. amount: items[i].amount,
  311. assetid: items[i].id
  312. }
  313. num++;
  314. }
  315. }
  316. if (num > 0) {
  317. Bot.offers.makeOffer({
  318. partnerSteamId: steamID,
  319. itemsFromMe: item,
  320. itemsFromThem: [],
  321. message: ''
  322. }, function (err, response) {
  323. if (err) {
  324. throw err;
  325. }
  326. console.log('Wysłałem');
  327. });
  328. }
  329. });
  330. }
  331. } else {
  332. if (type === Steam.EChatEntryType.ChatMsg) {
  333. //Bot.steamFriends.sendMessage(steamID, 'CSBOX.pl'); //use your custom options
  334. //this.logger.info(steamID + ' sent: ' + message);
  335. }
  336. else {
  337. //console.log(type);
  338. }
  339. }
  340.  
  341. }
  342.  
  343. ChildBot.prototype._onFriend = function (steamID, relationship) {
  344. if (relationship === 2) {
  345. if (admins.indexOf(steamID) !== -1) {
  346. Bot.steamFriends.addFriend(steamID);
  347. }
  348. else {
  349. Bot.logger.warn('Someone who isn\'t an admin tried to add me, denying...');
  350. Bot.steamFriends.removeFriend(steamID);
  351. }
  352. }
  353. }
  354.  
  355. Bot.steamUser.on('tradeOffers', function (number) {
  356. if (number > 0) {
  357. if (timeleft < 13 && timeleft != undefined && timeleft > 0) {
  358. bang('Mało czasu, spierdalam');
  359. return;
  360. }
  361. handleOffers();
  362. bang('Przeglądam oferty :) Jest ich: ' + number + '');
  363. }
  364. });
  365.  
  366.  
  367. function sendMessage(steamID, message) {
  368. Bot.steamFriends.sendMessage(steamID, message);
  369. }
  370.  
  371. function declineOffer(tradeID, steamid, reason, nick) {
  372. Bot.offers.declineOffer({
  373. tradeOfferId: tradeID
  374. });
  375. if (reason == '730') {
  376. // sendMessage(steamid, 'Csbox.pl jest jakcpotem csgo :) Nie wysyłaj itemów nie z tej gry....');
  377. bang('Anuluję ofertę od: (' + nick + ') ponieważ jeden lub więcej itemów nie jest z csgo :)');
  378. } else if (reason == 'hold') {
  379. // sendMessage(steamid, 'Odrzuciłem twoją ofertę ponieważ na koncie zarejestrowana jest blokada wymian');
  380. bang('Anuluję ofertę od: (' + nick + ') ponieważ na koncie zarejestrowana jest blokada wymian :)');
  381. } else if (reason == 'give') {
  382. // sendMessage(steamid, 'Odrzuciłem twoją ofertę ponieważ chciałeś coś wziąć :)');
  383. bang('Anuluję ofertę od: (' + nick + ') ponieważ chciał coś wziąć a nie dać :)');
  384. } else if (reason == 'none') {
  385. bang('Anuluję ofertę od: (' + nick + ') ponieważ huj wie czemu');
  386. } else if (reason == 'to_much') {
  387. // sendMessage(steamid, 'Odrzuciłem twoją ofertę ponieważ maksymalna ilość przedmiotów to 20.');
  388. bang('Anuluję ofertę od: (' + nick + ') ponieważ max przedmiotów to 20.');
  389. }
  390.  
  391. }
  392.  
  393. function checkItemPrice(itemName) {
  394. secret = totp.now();
  395. apikey = '4ca564b7-ff8d-44d9-908f-c002bd28fd3f';
  396. item = itemName;
  397. request({
  398. url: 'https://bitskins.com/api/v1/get_price_data_for_items_on_sale/?api_key=' + apikey + '&names=' + item + '&code=' + secret + '',
  399. json: true
  400. }, function (error, response, body) {
  401. item = [];
  402. item['itemName'] = body.data.items[0]['market_hash_name'];
  403. item['itemPrice'] = body.data.items[0]['lowest_price'];
  404. item['itemPrice'] = itemPrice * 100;
  405.  
  406. console.log(item);
  407. });
  408. }
  409.  
  410. function bang(message) {
  411. console.log(message);
  412. }
  413.  
  414. Bot.steamClient.on('logOnResponse', function (logonResp) {
  415. console.log('Event "logOnResponse": ' + JSON.stringify(logonResp));
  416. if (logonResp.eresult === Steam.EResult.OK) {
  417. console.log('Logged in!');
  418. handleOffers();
  419. SteamBot = true;
  420. reWebLogOn();
  421. }
  422. });
  423. Bot.steamClient.on('loggedOff', function () {
  424. SteamBot = false;
  425. });
  426. Bot.steamClient.on('error', function (e) {
  427. console.log('Wystąpił błąd : ' + e + '');
  428. });
  429. var locked = false, proceeded;
  430. var itemscopy;
  431. var detected = false;
  432. var detected2 = false;
  433. var recheck = true;
  434. var startTime = false;
  435. var currentIsGoing = false;
  436. var proceed = false;
  437.  
  438. Bot.connect();
  439. ////////////// END OF BOT
  440. setInterval(function () {
  441. connection.query('SELECT * FROM history ORDER BY id DESC LIMIT 1', function (err, rows) {
  442. var endTime = rows[0]['endTime'];
  443. var winner = rows[0]['winnerSteamId64'];
  444. var allItemsJson = rows[0]['endTime'];
  445. //console.log(rows);
  446. if (winner != null) {
  447.  
  448. var roundHash = randomstring.generate({
  449. length: 25,
  450. charset: '=!%123456789lcanwfhuiwnexyfgeragncacsbox'
  451. });
  452. console.log('Nie ma w histori nowej rundy, trzeba ją dodać. Hash: ' + roundHash + '');
  453. connection.query('INSERT INTO history SET roundHash="' + roundHash + '", endTime="0"', function (err, rows) {
  454. if (err != undefined) {
  455. console.log(err);
  456. }
  457. });
  458. }
  459. });
  460. }, 1000);
  461. setInterval(function () {
  462. CheckTimer();
  463. }, 1000);
  464. setInterval(function () {
  465. handleOffers();
  466. }, 30000);
  467. function CheckTimer() {
  468. // handleOffers();
  469. var unixTime = parseInt(new Date().getTime() / 1000, 10);
  470. connection.query('SELECT id,endTime FROM history ORDER BY id DESC limit 1', function (err, rows) {
  471. if (err) return;
  472. var roundID = rows[0]['id'];
  473. var endTime = rows[0]['endTime'];
  474.  
  475.  
  476. //Sprawdź czy Runda się już zaczeła, jeśli nie to zacznij ją :)
  477. connection.query('SELECT * from currentPot group by ownerSteamId64', function (err, rows) {
  478. var Users = rows.length;
  479. if (endTime == 0 && Users > 1) {
  480. connection.query('UPDATE history SET endTime="' + unixTime + '" WHERE id="' + roundID + '"', function (err, rows) {
  481. if (err) {
  482. console.log('Wystąpił błąd');
  483. } else {
  484. console.log('Zaczynam rundę');
  485. }
  486. });
  487. return;
  488. }
  489. // Runda dopiero sie zaczęła, odlicz gameTime i wybierz zwycięzce.
  490. connection.query('SELECT * from currentPot group by ownerSteamId64', function (err, rows) {
  491. var Users = rows.length;
  492. if (Users > 1) {
  493. timeleft = endTime + gameTime - unixTime;
  494. if (timeleft < 6) {
  495. console.log('Pozostały czas rundy:' + timeleft);
  496. }
  497. if (timeleft == 0) {
  498. proceedWinners(roundID);
  499. return;
  500. }
  501. }
  502. });
  503. });
  504.  
  505.  
  506. });
  507. }
  508.  
  509. function proceedWinners(roundID) {
  510. var winnerIDE = '';
  511. request({
  512. url: 'http://csbox.pl/getWinner2124954id273',
  513. json: true
  514. }, function (error, response, body) {
  515. if (body == undefined) {
  516. return;
  517. }
  518. winnerID = body['winnerSteamId'];
  519. winnerIDE = body['winnerSteamId'];
  520. var haveCSBOX = body['haveCSBOX'];
  521. var nick = body['nick'];
  522. var prowizja = body['prowizja'];
  523.  
  524. console.log('Have : ' + haveCSBOX + ' . Nick: ' + nick + ' . Zabrałem ' + prowizja + '% prowizji.');
  525. if (body['allPlayers'] == undefined) {
  526. return;
  527. }
  528. console.log('Daj zwycięzce');
  529. var winnerItems = body['tradeItems'];
  530. var toKeep = body['profitItems'];
  531. var WinnerTradeToken = body['winnerTradeToken'];
  532. if (WinnerTradeToken == undefined || WinnerTradeToken == '') {
  533. if (winnerIDE != undefined) {
  534. sendMessage(winnerIDE, 'Nie wprowadziłeś tradeURL na stronie i nie mam jak ci wysłać oferty, zgłoś problem poprzez formularz kontaktowy na stronie w celu odebrania wygranej');
  535. return;
  536. }
  537. }
  538. Bot.offers.loadMyInventory({
  539. appId: 730,
  540. contextId: 2
  541. }, function (err, items) {
  542. if (err) {
  543. console.log('Problem z pobraniem ekwipunku.');
  544. console.log(err);
  545. return;
  546. }
  547. var item = [], num = 1;
  548. var itemo = [], numo = 1;
  549. var itemos = [], numos = 1;
  550. var itemToSend = [];
  551. var itemToKepp = [];
  552. var numero = 0;
  553. var itemssToSend = [];
  554. var itemssToKepp = [];
  555. var itemsToSend = winnerItems;
  556. var itemsToKepp = toKeep;
  557.  
  558. itemsToSend.forEach(function (value, index) {
  559. itemssToSend.push(value);
  560. });
  561. itemsToKepp.forEach(function (value, index) {
  562. itemssToKepp.push(value);
  563. });
  564. var prevID = 0;
  565. itemssToSend.forEach(function (value, index) {
  566. var finder = _.find(items, function (o) {
  567. var findom = _.find(itemo, {assetid: o.id});
  568. return o.id != prevID && o.market_name == value['itemName'] && findom == undefined;
  569. });
  570. if (finder != undefined) {
  571. itemo[numo] = {
  572. appid: 730,
  573. contextid: 2,
  574. amount: 1,
  575. assetid: finder['id']
  576. }
  577.  
  578. prevID = finder['id'];
  579. }
  580. numo++;
  581. });
  582. if (numo > 0) {
  583. //console.log('Są itemy do wysłania, jedziemy z koksem');
  584. Bot.offers.makeOffer({
  585. partnerSteamId: winnerIDE,
  586. itemsFromMe: itemo,
  587. itemsFromThem: [],
  588. accessToken: WinnerTradeToken,
  589. message: 'Wygrałeś na csbox.pl ! #' + body['roundHash'] + ' , unikalny link do wygranej to : http://csbox.pl/history/' + body['gameID'] + ''
  590. }, function (err, response) {
  591. if (err) {
  592. connection.query('INSERT INTO que SET items="' + itemsToSend + '", userID="' + winnerIDE + '"');
  593. console.log(err);
  594. return;
  595. }
  596. console.log('Wysłałem ofertę z rundy #' + body['gameID'] + '');
  597.  
  598. });
  599. }
  600. });
  601. });
  602. proceeded = false;
  603. }
  604. function handleOffers() {
  605.  
  606. if (timeleft < 13 && timeleft > 0) {
  607. console.log('Zostało mało czasu, nie bierz ofert.');
  608. return;
  609. }
  610.  
  611. Bot.offers.getOffers({
  612. get_received_offers: 1,
  613. active_only: 1,
  614. time_historical_cutoff: Math.round(Date.now() / 1000),
  615. get_descriptions: 1
  616. }, function (error, body) {
  617. if (error) {
  618. return bang(error);
  619. }
  620. var TradesRecived = body.response.trade_offers_received;
  621. if (TradesRecived == undefined) {
  622. //bang('Brak ofert, papa :)');
  623. return false;
  624. } else {
  625. tradeOffersNumber = Object.keys(TradesRecived).length;
  626. if (tradeOffersNumber < 1) {
  627. } else {
  628. //bang('Ofert do przejrzenia : ' + tradeOffersNumber + '');
  629. }
  630. }
  631. TradesRecived.forEach(function (value, index) {
  632. var tradeOwner = value.steamid_other;
  633. var tradeID = value.tradeofferid;
  634. var tradeItems = value.items_to_receive;
  635. var csgo = true;
  636. var holded = false;
  637. if (value.items_to_receive != undefined) {
  638. value.items_to_receive.forEach(function (value, index) {
  639. if (value.appid != '730') {
  640. csgo = false;
  641. }
  642. });
  643. }
  644. request({
  645. url: 'http://csbox.pl/getUserInfo/' + tradeOwner + '',
  646. json: true
  647. }, function (error, response, body) {
  648. if (body == undefined) {
  649. return;
  650. }
  651. var tradeT = body['tradeToken'];
  652. Bot.offers.getHoldDuration({
  653. partnerSteamId: value.steamid_other,
  654. accessToken: tradeT
  655. }, function (err, response) {
  656. if (err) {
  657. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  658. return;
  659. }
  660. var heis = response['their'];
  661. if (heis != 0) {
  662. //console.log('TradeLock, wyrzuć');
  663. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  664. return;
  665. } else {
  666. Bot.offers.getTradeHoldDuration({
  667. tradeOfferId: tradeID
  668. }, function (err, hold) {
  669. if (err) {
  670. // console.log(heis);
  671. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  672. return;
  673. } else {
  674.  
  675. var HisHold = hold['their'];
  676. if (HisHold != '0') {
  677. holded = true;
  678. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  679. return;
  680. } else {
  681. // console.log('Brak tradelocka, przyjmij.');
  682. }
  683. }
  684. });
  685. // console.log('Owner' + tradeOwner);
  686. request({
  687. url: 'http://csbox.pl/getUserInfo/' + tradeOwner + '',
  688. json: true
  689. }, function (error, response, body) {
  690. if (!error && response.statusCode === 200) {
  691. if (body == undefined) {
  692. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  693. return;
  694. }
  695. var tradeOwnerNick = body.nick;
  696. if (value.items_to_give) {
  697. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  698. return;
  699. }
  700. if (value.items_to_receive == undefined) {
  701. return;
  702. }
  703. if (value.items_to_receive.length == undefined) {
  704. return;
  705. }
  706. if (value.items_to_receive.length > 30 || tradeOwnerNick == undefined || value.items_to_give || csgo == false) {
  707. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  708. } else {
  709. // console.log(holded);
  710. if (holded == true) {
  711. console.log(their);
  712. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  713. return;
  714. } else {
  715. Bot.offers.loadPartnerInventory({
  716. partnerSteamId: tradeOwner,
  717. appId: '730',
  718. contextId: '2',
  719. language: 'pl'
  720. }, function (err, items) {
  721. if (!err) {
  722. Bot.offers.acceptOffer({
  723. tradeOfferId: tradeID
  724. }, function (err) {
  725. if (err) {
  726. //console.log(err);
  727. //console.log('Ups :)), Oferta od: ' + tradeOwner + '');
  728. Bot.offers.declineOffer({tradeOfferId: value.tradeofferid});
  729. return;
  730. } else {
  731. bang('Akceptuję ofertę od: (' + tradeOwnerNick + ')');
  732. if (value.items_to_receive != undefined) {
  733. value.items_to_receive.forEach(function (value, index) {
  734. var itemDetils = _.find(items, {id: value.assetid});
  735. if (itemDetils != undefined) {
  736. var itemName = itemDetils['market_name'];
  737. var itemColor = itemDetils['name_color'];
  738. var itemType = itemDetils['type'];
  739. var itemIcon = itemDetils['icon_url'];
  740. var classid = itemDetils['classid'];
  741. var instanceid = itemDetils['id'];
  742. var ownerSteamID64 = tradeOwner;
  743.  
  744. // console.log(itemDetils);
  745. secret = totp.now();
  746. apikey = '4ca564b7-ff8d-44d9-908f-c002bd28fd3f';
  747. var item = itemName;
  748. var item = encodeURIComponent(item);
  749. request({
  750. url: 'http://csbox.pl/getItemPrice/' + item + '',
  751. json: true
  752. }, function (error, response, body) {
  753. item = decodeURIComponent(item);
  754. if (body != '') {
  755. //console.log(body);
  756. var itemPrice = body['lowest_price'];
  757. connection.query('INSERT INTO currentPot SET classId="' + classid + '",' +
  758. 'instanceId="' + instanceid + '",' +
  759. 'ownerSteamId64="' + ownerSteamID64 + '",' +
  760. 'ownerSteamId32="STEAM_0:0:128976850",' +
  761. 'itemName="' + body[0]['marketName'] + '",' +
  762. 'itemPrice="' + body[0]['avgPrice30Days'] + '",' +
  763. 'itemRarityName="' + itemType + '",' +
  764. 'itemRarityColor="' + itemColor + '",' +
  765. 'itemIcon="' + itemIcon + '"', function (error, results, fields) {
  766. if (error) {
  767. console.log(error)
  768. }
  769. });
  770. connection.query('INSERT INTO wholeItems SET ownerSteamId64="' + ownerSteamID64 + '",' +
  771. 'ownerSteamId32="STEAM_0:0:128976850",' +
  772. 'itemName="' + body[0]['marketName'] + '",' +
  773. 'itemPrice="' + body[0]['avgPrice30Days'] + '",' +
  774. 'itemRarityName="' + itemType + '",' +
  775. 'itemRarityColor="' + itemColor + '",' +
  776. 'itemIcon="' + itemIcon + '"', function (error, results, fields) {
  777. if (error) {
  778. console.log(error)
  779. }
  780. });
  781. } else {
  782. console.log('Nie mam ceny, biore z rynku.');
  783. var item = itemName;
  784. var item = encodeURIComponent(item);
  785. request({
  786. url: 'http://csgolyzer.com/api/price/' + item + '?api_key=' + PriceApiKey + '',
  787. json: true
  788. }, function (error, response, body) {
  789. item = decodeURIComponent(item);
  790. var itemPrice = body['median_price'];
  791. var itemPrice = itemPrice * 100;
  792. if (itemPrice == 0) {
  793. console.log(item);
  794. return;
  795. } else if (itemPrice == undefined) {
  796. console.log(item);
  797. return;
  798. }
  799. connection.query('INSERT INTO currentPot SET classId="' + classid + '",' +
  800. 'instanceId="' + instanceid + '",' +
  801. 'ownerSteamId64="' + ownerSteamID64 + '",' +
  802. 'ownerSteamId32="STEAM_0:0:128976850",' +
  803. 'itemName="' + item + '",' +
  804. 'itemPrice="' + itemPrice + '",' +
  805. 'itemRarityName="' + itemType + '",' +
  806. 'itemRarityColor="' + itemColor + '",' +
  807. 'itemIcon="' + itemIcon + '"', function (error, results, fields) {
  808. if (error) {
  809. console.log(error)
  810. }
  811. });
  812. connection.query('INSERT INTO items SET marketName="' + item + '", avgPrice30Days="' + itemPrice + '"', function (error, results, fields) {
  813. if (error) {
  814. console.log(error);
  815. return;
  816. } else {
  817. console.log('Dodałem do bazy : ' + item + ', jego cena to : ' + itemPrice + '');
  818. }
  819. });
  820. console.log(itemPrice);
  821.  
  822. });
  823. }
  824. });
  825.  
  826.  
  827. }
  828. })
  829. }
  830. }
  831. });
  832.  
  833. }
  834.  
  835.  
  836. });
  837. }
  838. }
  839. }
  840. });
  841. }
  842. });
  843. });
  844.  
  845. });
  846.  
  847. });
  848. };
  849. function reWebLogOn(callback) {
  850. Bot.steamUser.on('webSessionID', function (sessionID, newCookie) {
  851. console.log('webLogOn: ' + JSON.stringify({
  852. sessionID: sessionID,
  853. cookie: newCookie
  854. }));
  855.  
  856. getSteamAPIKey({
  857. sessionID: sessionID,
  858. webCookie: newCookie
  859. }, function (err, apiKey) {
  860. if (err) {
  861. console.log('Ошибка в событии logOnResponse ERROR ' + err);
  862. }
  863. else {
  864. console.log('getSteamAPIKey: ' + apiKey);
  865.  
  866. Bot.offers.setup({
  867. sessionID: sessionID,
  868. webCookie: newCookie, //APIKey: config.apiKey
  869. APIKey: apiKey
  870. });
  871.  
  872. if (typeof callback == "function") {
  873. callback();
  874. }
  875. }
  876. });
  877. });
  878. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement