Advertisement
Guest User

Untitled

a guest
Aug 4th, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.85 KB | None | 0 0
  1. var admin = '76561198033831771';
  2.  
  3. var logOnOptions = {
  4. accountName: '***',
  5. password: '****'
  6. };
  7. var GameTime = 120;
  8.  
  9.  
  10. ////
  11.  
  12. var authCode = 'V4DC5';
  13.  
  14. var globalSessionID;
  15.  
  16. if (require('fs').existsSync('sentry_'+logOnOptions['accountName']+'.hash')) {
  17. logOnOptions['shaSentryfile'] = require('fs').readFileSync('sentry_'+logOnOptions['accountName']+'.hash');
  18. } else if (authCode != '') {
  19. logOnOptions['authCode'] = authCode;
  20. }
  21.  
  22. var sitename;
  23.  
  24. sitename = "csgobang.com";
  25. var Steam = require('steam');
  26. var SteamTradeOffers = require('steam-tradeoffers');
  27. var mysql = require('mysql');
  28. var request = require("request");
  29. var steamuserinfo = require('steam-userinfo');
  30.  
  31. steamuserinfo.setup("***");
  32.  
  33. var mysqlInfo;
  34. mysqlInfo = {
  35. host : 'localhost',
  36. user : '***',
  37. password : '***',
  38. database : '***',
  39. charset : 'utf8_general_ci'
  40. };
  41.  
  42. var mysqlConnection = mysql.createConnection(mysqlInfo);
  43.  
  44. var steam = new Steam.SteamClient();
  45. var offers = new SteamTradeOffers();
  46.  
  47. var recheck = true;
  48.  
  49. steam.logOn(logOnOptions);
  50.  
  51. steam.on('debug', console.log);
  52.  
  53. function getUserName(steamid) {
  54. steamuserinfo.getUserInfo(steamid, function(error, data){
  55. if(error) throw error;
  56. var datadec = JSON.parse(JSON.stringify(data.response));
  57. return (datadec.players[0].personaname);
  58. });
  59. }
  60.  
  61. function proceedWinners() {
  62. var url = 'http://'+sitename+'/getwinner34634f.php';
  63. request(url, function(error, response, body){});
  64. }
  65.  
  66. function addslashes(str) {
  67. str=str.replace(/\\/g,'\\\\');
  68. str=str.replace(/\'/g,'\\\'');
  69. str=str.replace(/\"/g,'\\"');
  70. str=str.replace(/\0/g,'\\0');
  71. return str;
  72. }
  73.  
  74. var locked=false,proceeded;
  75. var itemscopy;
  76. var detected=false;
  77. var detected2=false;
  78. function CheckTimer() {
  79. if(locked == true) return;
  80. locked = true;
  81. if(recheck == true) {
  82. recheck = false;
  83. checkoffers(1);
  84. }
  85. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, rows, fields) {
  86. if(err) return;
  87. mysqlConnection.query('SELECT `starttime` FROM `games` WHERE `id`=\''+rows[0].value+'\'', function(errs, rowss, fieldss) {
  88. if(errs) return;
  89. var timeleft;
  90. if(rowss[0].starttime == 2147483647) timeleft = GameTime;
  91. else {
  92. var unixtime = Math.round(new Date().getTime()/1000.0);
  93. timeleft = rowss[0].starttime+GameTime-unixtime;
  94. if(timeleft < 0) timeleft = 0;
  95. }
  96. if(timeleft == 0) {
  97. if(proceeded == true) return;
  98. proceedWinners();
  99. proceeded = true;
  100. } else proceeded = false;
  101. });
  102. });
  103. detected2 = false;
  104. offers.loadMyInventory({
  105. appId: 730,
  106. contextId: 2
  107. }, function(err, itemx) {
  108. if(err) {
  109. steam.webLogOn(function(newCookie) {
  110. offers.setup({
  111. sessionID: globalSessionID,
  112. webCookie: newCookie
  113. }, function(err) {
  114. if (err) {
  115. }
  116. });
  117. });
  118. return;
  119. }
  120. if(detected2 == true) {
  121. return;
  122. }
  123. detected2 = true;
  124. itemscopy = itemx;
  125. detected = false;
  126. mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
  127. if(err) {
  128. return;
  129. }
  130. if(detected == true) {
  131. return;
  132. }
  133. detected = true;
  134. for(var i=0; i < row.length; i++) {
  135. var gameid = row[i].id;
  136. mysqlConnection.query('UPDATE `queue` SET `status`=\'sent\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
  137. var sendItems = (row[i].items).split('/');
  138. var item=[],num=0;
  139. for (var x = 0; x < itemscopy.length; x++) {
  140. for(var j=0; j < sendItems.length; j++) {
  141. if (itemscopy[x].tradable && (itemscopy[x].market_name).indexOf(sendItems[j]) == 0) {
  142. sendItems[j] = "hgjhgnhgjgnjghjjghjghjghjhgjghjghjghngnty";
  143. itemscopy[x].market_name = "fgdfgdfgdfgdfgfswfewefewrfewrewrewr";
  144. item[num] = {
  145. appid: 730,
  146. contextid: 2,
  147. amount: itemscopy[x].amount,
  148. assetid: itemscopy[x].id
  149. }
  150. num++;
  151. }
  152. }
  153. }
  154. if (num > 0) {
  155. var gamenum = row[i].id;
  156. offers.makeOffer ({
  157. partnerSteamId: row[i].userid,
  158. itemsFromMe: item,
  159. accessToken: row[i].token,
  160. itemsFromThem: [],
  161. message: 'Ваш выигрыш на сайте '+sitename+' в игре #'+gamenum
  162. }, function(err, response){
  163. if (err) {
  164. return;
  165. }
  166. console.log('Trade offer for queue '+gamenum+' sent!');
  167. });
  168. }
  169. }
  170. });
  171. });
  172. setTimeout(function(){locked = false;},1000);
  173. }
  174.  
  175. steam.on('loggedOn', function(result) {
  176. console.log('Logged in!');
  177. steam.setPersonaState(Steam.EPersonaState.LookingToTrade);
  178. steam.addFriend(admin);
  179. steam.sendMessage(admin,"Hey, I'm online!");
  180. });
  181.  
  182. steam.on('webSessionID', function(sessionID) {
  183. globalSessionID = sessionID;
  184. steam.webLogOn(function(newCookie) {
  185. offers.setup({
  186. sessionID: sessionID,
  187. webCookie: newCookie
  188. }, function(err) {
  189. if (err) {
  190. throw err;
  191. }
  192. setInterval(CheckTimer,1000);
  193. });
  194. });
  195. });
  196.  
  197. steam.on('friendMsg', function(steamID, message, type) {
  198. if(type != Steam.EChatEntryType.ChatMsg) return;
  199. if(steamID == admin) {
  200. if(message.indexOf("/sendallitems") == 0) {
  201. offers.loadMyInventory({
  202. appId: 730,
  203. contextId: 2
  204. }, function(err, items) {
  205. if(err) {
  206. steam.sendMessage(steamID, 'Не могу загрузить свой инвентарь, попробуй ещё раз');
  207. steam.webLogOn(function(newCookie) {
  208. offers.setup({
  209. sessionID: globalSessionID,
  210. webCookie: newCookie
  211. }, function(err) {
  212. if (err) {
  213. }
  214. });
  215. });
  216. return;
  217. }
  218. var item=[],num=0;
  219. for (var i = 0; i < items.length; i++) {
  220. if (items[i].tradable) {
  221. item[num] = {
  222. appid: 730,
  223. contextid: 2,
  224. amount: items[i].amount,
  225. assetid: items[i].id
  226. }
  227. num++;
  228. }
  229. }
  230. if (num > 0) {
  231. offers.makeOffer ({
  232. partnerSteamId: steamID,
  233. itemsFromMe: item,
  234. itemsFromThem: [],
  235. message: ''
  236. }, function(err, response){
  237. if (err) {
  238. throw err;
  239. }
  240. steam.sendMessage(steamID, 'Обмен отправлен!');
  241. });
  242. }
  243. });
  244. } else if(message.indexOf("/send") == 0) {
  245. var params = message.split(' ');
  246. if(params.length == 1) return steam.sendMessage(steamID, 'Формат: /send [название предмета]');
  247. offers.loadMyInventory({
  248. appId: 730,
  249. contextId: 2
  250. }, function(err, items) {
  251. if(err) {
  252. steam.sendMessage(steamID, 'Не могу загрузить свой инвентарь, попробуй ещё раз');
  253. steam.webLogOn(function(newCookie) {
  254. offers.setup({
  255. sessionID: globalSessionID,
  256. webCookie: newCookie
  257. }, function(err) {
  258. if (err) {
  259. }
  260. });
  261. });
  262. return;
  263. }
  264. var item=0;
  265. for (var i = 0; i < items.length; i++) {
  266. if((items[i].market_name).indexOf(params[1]) != -1) {
  267. item = items[i].id;
  268. break;
  269. }
  270. }
  271. if (item != 0) {
  272. offers.makeOffer ({
  273. partnerSteamId: steamID,
  274. itemsFromMe: [
  275. {
  276. appid: 730,
  277. contextid: 2,
  278. amount: 1,
  279. assetid: item
  280. }
  281. ],
  282. itemsFromThem: [],
  283. message: ''
  284. }, function(err, response){
  285. if (err) {
  286. throw err;
  287. }
  288. steam.sendMessage(steamID, 'Обмен отправлен!');
  289. });
  290. }
  291. });
  292. } else if(message.indexOf("/show") == 0) {
  293. var params = message.split(' ');
  294. offers.loadMyInventory({
  295. appId: 730,
  296. contextId: 2
  297. }, function(err, items) {
  298. if(err) {
  299. steam.sendMessage(steamID, 'Не могу загрузить свой инвентарь, попробуй ещё раз');
  300. steam.webLogOn(function(newCookie) {
  301. offers.setup({
  302. sessionID: globalSessionID,
  303. webCookie: newCookie
  304. }, function(err) {
  305. if (err) {
  306. }
  307. });
  308. });
  309. return;
  310. }
  311. steam.sendMessage(steamID,'Смотри: ');
  312. for (var i = 0; i < items.length; i++) {
  313. steam.sendMessage(steamID,'http://steamcommunity.com/profiles/76561198239367172/inventory/#'+items[i].appid+'_'+items[i].contextid+'_'+items[i].id);
  314. }
  315. });
  316. }
  317. }
  318. steamuserinfo.getUserInfo(steamID, function(error, data){
  319. if(error) throw error;
  320. var datadec = JSON.parse(JSON.stringify(data.response));
  321. var name = datadec.players[0].personaname;
  322. console.log(name + ': ' + message); // Log it
  323. });
  324. //steam.sendMessage(steamID, 'I\'m a bot that accepts all your unwanted items. If you would like to grab a few crates from me, please request a trade.');
  325. });
  326.  
  327. var lastoffer = -1;
  328.  
  329. function checkoffers(number) {
  330. if (number > 0) {
  331. offers.getOffers({
  332. get_received_offers: 1,
  333. active_only: 1,
  334. get_sent_offers: 0,
  335. get_descriptions: 1,
  336. language: "en_us"
  337. }, function(error, body) {
  338. if(error) return;
  339. if(body.response.trade_offers_received){
  340. body.response.trade_offers_received.forEach(function(offer) {
  341. if (offer.trade_offer_state == 2){
  342. if(offer.items_to_give) {
  343. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  344. return;
  345. }
  346. if(lastoffer == offer.steamid_other) return;
  347. lastoffer = offer.steamid_other;
  348. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) {
  349. if(offer.items_to_receive.length > row[0].value) {
  350. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  351. offer.items_to_receive = [];
  352. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'toomuch\',\'System\')', function(err, row, fields) {});
  353. return;
  354. }
  355. });
  356. var delock = false;
  357. offers.loadPartnerInventory({partnerSteamId: offer.steamid_other, appId: 730, contextId: 2, tradeOfferId: offer.tradeofferid, language: "en"}, function(err, hitems) {
  358. if(err) {
  359. steam.webLogOn(function(newCookie) {
  360. offers.setup({
  361. sessionID: globalSessionID,
  362. webCookie: newCookie
  363. }, function(err) {
  364. if (err) {
  365. }
  366. });
  367. });
  368. recheck = true;
  369. return;
  370. }
  371. if(delock == true) return;
  372. delock = true;
  373. var items = offer.items_to_receive;
  374. var wgg=[],num=0;
  375. for (var i = 0; i < items.length; i++) {
  376. for(var j=0; j < hitems.length; j++) {
  377. if(items[i].assetid == hitems[j].id) {
  378. wgg[num] = hitems[j];
  379. num++;
  380. break;
  381. }
  382. }
  383. }
  384. var price=[];
  385. for(var i=0; i < num; i++) {
  386. if(wgg[i].appid != 730) {
  387. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  388. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'onlycsgo\',\'System\')', function(err, row, fields) {});
  389. return;
  390. }
  391. if(wgg[i].market_name.indexOf("Souvenir") != -1) {
  392. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  393. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'souvenir\',\'System\')', function(err, row, fields) {});
  394. return;
  395. }
  396. var itemname = wgg[i].market_name;
  397. var url = 'http://'+sitename+'/cost.php?item='+encodeURIComponent(itemname);
  398. (function(someshit) {
  399. request(url, function(error, response, body){
  400. if(!error && response.statusCode === 200){
  401. if(body == "notfound") { offers.declineOffer({tradeOfferId: offer.tradeofferid}); mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'notavailable\',\'System\')', function(err, row, fields) {}); }
  402. else {
  403. wgg[someshit].cost = parseFloat(body);
  404. }
  405. } else offers.declineOffer({tradeOfferId: offer.tradeofferid});
  406. });})(i)
  407. }
  408. setTimeout(function() {
  409. var sum=0;
  410. for(var i=0; i < num; i++) {
  411. sum += wgg[i].cost;
  412. }
  413. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'minbet\'', function(err, row, fields) {
  414. if(sum < row[0].value) {
  415. num = 0;
  416. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  417. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'toosmall!\',\'System\')', function(err, row, fields) {});
  418. return;
  419. }
  420. });
  421. steamuserinfo.getUserInfo(offer.steamid_other, function(error, data){
  422. if(error) throw error;
  423. var datadec = JSON.parse(JSON.stringify(data.response));
  424. var name = addslashes(datadec.players[0].personaname);
  425. var avatar = (datadec.players[0].avatarfull);
  426. if(num == 0) return;
  427. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  428. var current_game = (row[0].value);
  429. mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
  430. var current_bank = parseFloat(row[0].cost);
  431. var itemsnum = row[0].itemsnum;
  432. if(current_bank == "0" && items.length > 0) {
  433. mysqlConnection.query('UPDATE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
  434. }
  435. for(var j=0; j < num; j++) {
  436. mysqlConnection.query('INSERT INTO `game' + current_game + '` (`userid`,`username`,`item`,`color`,`value`,`avatar`,`image`,`from`,`to`) VALUES (\'' + offer.steamid_other + '\',\'' + name + '\',\'' + wgg[j].market_name + '\',\'' + wgg[j].name_color + '\',\'' + wgg[j].cost + '\',\'' + avatar + '\',\'' + wgg[j].icon_url + '\',\''+current_bank+'\'+\'0\',\''+current_bank+'\'+\''+wgg[j].cost+'\')', function(err, row, fields) {});
  437. mysqlConnection.query('UPDATE `games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+wgg[j].cost+'\' WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
  438. current_bank = parseFloat(current_bank + wgg[j].cost);
  439. itemsnum++;
  440. }
  441. if(itemsnum > 50) {
  442. proceedWinners();
  443. }
  444. offers.acceptOffer({tradeOfferId: offer.tradeofferid});
  445. console.log('Accepted trade offer #'+offer.tradeofferid+' by '+name+' ('+offer.steamid_other+')');
  446. });
  447. });
  448. });
  449. },3000);
  450. });
  451. }
  452. });
  453. }
  454. });
  455. }
  456. }
  457.  
  458. var pew;
  459. steam.on('tradeOffers', checkoffers);
  460.  
  461. steam.on('sentry', function(data) {
  462. require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', data);
  463. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement