Advertisement
franzdarelle

app.js

May 26th, 2018
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. app.post('/test',function(req,res){
  2. r = req.body;
  3. items = JSON.parse(r.items);
  4. const tradeurl = r.tradeurl;
  5. let client = new SteamUser();
  6. let manager = new TradeOfferManager({
  7. "steam": client, // Polling every 30 seconds is fine since we get notifications from Steam
  8. "domain": "example.com", // Our domain is example.com
  9. "language": "en",
  10. "cancelTime":180000
  11. });
  12. let community = new SteamCommunity();
  13.  
  14. // Steam logon options
  15. let logOnOptions = {
  16. "accountName": config.username,
  17. "password": config.password,
  18. "twoFactorCode": SteamTotp.getAuthCode(config.sharedSecret)
  19. };
  20.  
  21. if (FS.existsSync('polldata.json')) {
  22. manager.pollData = JSON.parse(FS.readFileSync('polldata.json').toString('utf8'));
  23. }
  24.  
  25. client.logOn(logOnOptions);
  26.  
  27. client.on('loggedOn', function() {
  28. console.log("Logged into Steam");
  29. });
  30.  
  31. client.on('webSession', function(sessionID, cookies) {
  32. manager.setCookies(cookies, function(err) {
  33. if (err) {
  34. console.log(err);
  35. process.exit(1); // Fatal error since we couldn't get our API key
  36. return;
  37. }
  38.  
  39. console.log("Got API key: " + manager.apiKey);
  40.  
  41. // Get our inventory
  42. manager.getInventoryContents(570, 2, true, function(err, inventory) {
  43. if (err) {
  44. console.log(err);
  45. return;
  46. }
  47. // console.log(inventory);
  48. // throw "stop execution";
  49. if (inventory.length == 0) {
  50. // Inventory empty
  51. console.log("Dota 2 inventory is empty");
  52. return;
  53. }
  54.  
  55. console.log("Found " + inventory.length + " Dota 2 items");
  56.  
  57. // Create and send the offer
  58. let offer = manager.createOffer(tradeurl);
  59. item = [
  60. {
  61. appid: 570,
  62. contextid: '2',
  63. classid: '645249158',
  64. assetid: '13126112943',
  65. instanceid: '260036609',
  66. amount: 1
  67. }
  68. ];
  69. offer.addTheirItems(items);
  70. offer.setMessage("Offer: #"+ offer.id);
  71. offer.send(function(err, status) {
  72. if (err) {
  73. console.log(err);
  74. return;
  75. }
  76.  
  77. if (status == 'pending') {
  78. // We need to confirm it
  79. console.log(`Offer #${offer.id} sent, but requires confirmation`);
  80. community.acceptConfirmationForObject(config.identitySecret, offer.id, function(err) {
  81. if (err) {
  82. console.log(err);
  83. } else {
  84. console.log("Offer confirmed");
  85. }
  86. });
  87. } else {
  88. console.log(`Offer #${offer.id} sent successfully`);
  89. }
  90. });
  91. });
  92. });
  93.  
  94. community.setCookies(cookies);
  95. });
  96.  
  97. manager.on('sentOfferChanged', function(offer, oldState) {
  98. console.log(`Offer #${offer.id} changed: ${TradeOfferManager.ETradeOfferState[oldState]} -> ${TradeOfferManager.ETradeOfferState[offer.state]}`);
  99. if (TradeOfferManager.ETradeOfferState[offer.state] == 'Accepted'){
  100. manager.shutdown();
  101. client.logOff();
  102. //process.exit(1); // testing lang
  103. return;
  104. }
  105. });
  106.  
  107. manager.on('pollData', function(pollData) {
  108. FS.writeFileSync('polldata.json', JSON.stringify(pollData));
  109. });
  110.  
  111. manager.on('sentOfferCanceled',function(reason){
  112. console.log('offer cancelled franz');
  113. manager.shutdown();
  114. client.logOff();
  115. FS.unlink('polldata.json',function(err){
  116. console.log('poll data deleted');
  117. res.send();
  118. });
  119. });
  120.  
  121.  
  122.  
  123. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement