Advertisement
Guest User

Untitled

a guest
Mar 8th, 2016
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.57 KB | None | 0 0
  1. var fs = require('fs');
  2. var crypto = require('crypto');
  3. var market = require('steam-market-pricing');
  4. var Steam = require('steam');
  5. var SteamWebLogOn = require('steam-weblogon');
  6. var getSteamAPIKey = require('steam-web-api-key');
  7. var mysql = require("mysql");
  8. var SteamTradeOffers = require('steam-tradeoffers'); // change to 'steam-tradeoffers' if not running from the examples subdirectory
  9. var firstfinish = "0";
  10. var secondfinish = "0";
  11. var admin = ''; // put your steamid here so the bot can accept your offers
  12. jamesBug = function(txt) {
  13. var d1 = new Date();
  14.  
  15. var logtxt = "["+d1.toUTCString()+"] "+txt;
  16. console.log(logtxt);
  17.  
  18. }
  19.  
  20. var logOnOptions = {
  21. account_name: 'xdxd9991',
  22. password: 'notmypassgayfags'
  23. };
  24.  
  25. var authCode = 'K7JX6'; // code received by email
  26.  
  27. try {
  28. logOnOptions.sha_sentryfile = getSHA1(fs.readFileSync('sentry'));
  29. } catch (e) {
  30. console.log(e);
  31. if (authCode !== '') {
  32. logOnOptions.auth_code = authCode;
  33. }
  34. }
  35.  
  36. // if we've saved a server list, use it
  37. if (fs.existsSync('servers')) {
  38. Steam.servers = JSON.parse(fs.readFileSync('servers'));
  39. }
  40.  
  41. var steamClient = new Steam.SteamClient();
  42. var steamUser = new Steam.SteamUser(steamClient);
  43. var steamFriends = new Steam.SteamFriends(steamClient);
  44. var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
  45. var offers = new SteamTradeOffers();
  46.  
  47. steamClient.connect();
  48. steamClient.on('connected', function() {
  49. steamUser.logOn(logOnOptions);
  50. });
  51.  
  52. function mysql_real_escape_string (str) {
  53. return str.replace(/[\0\x08\x09\x1a\n\r"'\\\%]/g, function (char) {
  54. switch (char) {
  55. case "\0":
  56. return "\\0";
  57. case "\x08":
  58. return "\\b";
  59. case "\x09":
  60. return "\\t";
  61. case "\x1a":
  62. return "\\z";
  63. case "\n":
  64. return "\\n";
  65. case "\r":
  66. return "\\r";
  67. case "\"":
  68. case "'":
  69. case "\\":
  70. case "%":
  71. return "\\"+char; // prepends a backslash to backslash, percent,
  72. // and double/single quotes
  73. }
  74. });
  75. }
  76. function is_array(check_var) {
  77. return(Object.prototype.toString.call( check_var ) ===
  78. '[object Array]');
  79. }
  80.  
  81.  
  82.  
  83. function handleOffers() {
  84. offers.getOffers({
  85. get_received_offers: 1,
  86. active_only: 1,
  87. time_historical_cutoff: Math.round(Date.now() / 1000)}, function(error, body) {
  88.  
  89. if (body && body.response && body.response.trade_offers_received) {
  90. body.response.trade_offers_received.forEach(function(offer) {
  91. // Check if they are a robber
  92. if (offer.trade_offer_state != 2 || offer.items_to_give) {
  93. jamesBug('They tried to rob the bot, declining.');
  94. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  95.  
  96. return;
  97. }
  98. if (offer.trade_offer_state == 2) {
  99. jamesBug('We\'re recieving ('+offer.items_to_receive.length+') items.');
  100. jamesBug('Partner\'s Steam64 ID: '+offer.steamid_other);
  101. jamesBug('Trade ID: '+offer.tradeofferid);
  102. // jamesBug(offer.items_to_receive[0].market_name);
  103. //if (offer.items_to_receive.isArray) {
  104. // jamesBug(is_array(offer.items_to_receive));
  105. //jamesBug(offer.items_to_receive.toString());
  106. //jamesBug(offer.items_to_receive[0].assetid);
  107. offers.loadPartnerInventory({partnerSteamId: offer.steamid_other,appId: 730,contextId: 2},
  108. function(err, items) {
  109. var item_asset_ids = [];
  110.  
  111. for (var i = 0; i < offer.items_to_receive.length; i++) {
  112. var identification = offer.items_to_receive[i].classid+"_"+offer.items_to_receive[i].instanceid;
  113. jamesBug("Identity code for item number ("+i+"): " + identification);
  114. item_asset_ids.push(identification);
  115. //jamesBug("i is equal to: "+i);
  116. if (i == offer.items_to_receive.length - 1) {
  117. firstfinish = "1";
  118. }
  119. //jamesBug(offer.items_to_receive.length);
  120. } // for each item_to_receive
  121. var fetch = require('node-fetch');
  122. fetch('http://steamcommunity.com/profiles/' + offer.steamid_other + '/inventory/json/730/2/?l=english')
  123. .then(function(res) {
  124. return res.text();
  125. }).then(function(body2) {
  126. //jamesBug(body2);
  127. // fs.writeFile('json.json', body2, function (err) {
  128. // if (err) throw err;
  129. // console.log('It\'s saved! in same location.');
  130. // });
  131. bodyjson = JSON.parse(body2);
  132. //jamesBug(item_asset_ids.length);
  133. var items_value = 0.00;
  134.  
  135. for (var j = 0; j < item_asset_ids.length; j++) {
  136. //jamesBug(j);
  137. var connection = mysql.createConnection({
  138. host : "localhost",
  139. user : "root",
  140. password : "skateordielikeanigger",
  141. database : "csflip"
  142. });
  143. connection.connect(function(error){
  144. if(error)
  145. {
  146. jamesBug("Problem with MySQL "+error);
  147. }
  148. else
  149. {
  150. jamesBug("Connected with Database.");
  151. }
  152. });
  153.  
  154. jamesBug(item_asset_ids[j]);
  155. var item_name = bodyjson.rgDescriptions[item_asset_ids[j]].market_hash_name;
  156. market.getItemPrice(730, item_name, function(err, data) {
  157. if(!err) {
  158. var item_median_price = data['median_price'];
  159. item_median_price = item_median_price.substring(1); jamesBug("Item number ("+j+") is an ("+data['market_hash_name']+"), it's worth ("+item_median_price+")");
  160. item_median_price = parseFloat(item_median_price);
  161. items_value += item_median_price;
  162. jamesBug('Total item price is now: ('+items_value+')');
  163. var query = "UPDATE users_steam SET coins = coins + "+item_median_price+" WHERE steam_id = '"+offer.steamid_other+"'";
  164. connection.query(query,function(err,rows){
  165. if(err)
  166. {
  167. jamesBug("Problem with MySQL: "+err);
  168. }
  169. else
  170. {
  171.  
  172. jamesBug("Incremented user's coins for item: "+data['market_hash_name']);
  173. }
  174. var query = "INSERT INTO items (market_hash_name, depositor) VALUES ('"+data['market_hash_name']+"', '"+offer.steamid_other+"')";
  175. connection.query(query,function(err,rows){ if(err)
  176. {
  177. jamesBug("Problem with MySQL: "+err);
  178. }
  179. else
  180. {
  181.  
  182. jamesBug("Added ("+data['market_hash_name']+") to items table.");
  183. }
  184. });
  185. });
  186.  
  187.  
  188. }
  189. });
  190. //jamesBug(bodyjson.rgCurrency.rgDescriptions.[item_asset_ids[j]].market_hash_name);
  191. if (j == item_asset_ids.length - 1) {
  192. secondfinish = "1";
  193. }
  194. }
  195. jamesBug('Finished analysing trade offer.');
  196. offers.acceptOffer({tradeOfferId: offer.tradeofferid});
  197. jamesBug('Accepted trade offer');
  198. });
  199.  
  200.  
  201. //jamesBug("Total deposit amount was: "+items_value);
  202.  
  203.  
  204.  
  205. }
  206. ); // loadPartnerInventory
  207.  
  208.  
  209.  
  210. } // if trade offer state == 2
  211.  
  212.  
  213.  
  214.  
  215. }); // for each trade)offers_received
  216. } // if trade offers received
  217. }); // getOffers
  218. } // handle offers
  219.  
  220.  
  221.  
  222.  
  223.  
  224. steamClient.on('logOnResponse', function(logonResp) {
  225. if (logonResp.eresult === Steam.EResult.OK) {
  226.  
  227. jamesBug('Login succssesful.');
  228. steamFriends.setPersonaState(Steam.EPersonaState.Online);
  229. jamesBug('Changed PersonaState to online.');
  230. steamFriends.setPersonaName('CSFlip.net | BOT #1');
  231. jamesBug('Changed nickname.');
  232. steamWebLogOn.webLogOn(function(sessionID, newCookie) {
  233. getSteamAPIKey({
  234. sessionID: sessionID,
  235. webCookie: newCookie
  236. }, function(err, APIKey) {
  237. offers.setup({
  238. sessionID: sessionID,
  239. webCookie: newCookie,
  240. APIKey: APIKey
  241. });
  242. handleOffers();
  243. });
  244. });
  245. }
  246. });
  247. steamClient.on('error', (err) => console.log(err))
  248. steamClient.on('servers', function(servers) {
  249. fs.writeFile('servers', JSON.stringify(servers));
  250. });
  251.  
  252. steamUser.on('updateMachineAuth', function(sentry, callback) {
  253. fs.writeFileSync('sentry', sentry.bytes);
  254. callback({ sha_file: getSHA1(sentry.bytes) });
  255. });
  256.  
  257.  
  258. steamUser.on('tradeOffers', function(number) {
  259. if (number > 0) {
  260. jamesBug('Trade recieved.');
  261. handleOffers();
  262. }
  263. });
  264.  
  265. steamFriends.on('message', function(source, message, type, chatter) {
  266. // respond to both chat room and private messages
  267. jamesBug('Received message: ' + message);
  268.  
  269. steamFriends.sendMessage(source, 'Please don\'t message the Bot, he has feelings and he\'s trying to work...', Steam.EChatEntryType.ChatMsg);
  270. //steamFriends.sendMessage(source, 'fuk off nigger fag, ur msg was shit lol: '+message, Steam.EChatEntryType.ChatMsg);
  271.  
  272. jamesBug('Replied to the message.');
  273. });
  274.  
  275. function getSHA1(bytes) {
  276. var shasum = crypto.createHash('sha1');
  277. shasum.end(bytes);
  278. return shasum.read();
  279. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement