Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- app.post('/test',function(req,res){
- r = req.body;
- items = JSON.parse(r.items);
- const tradeurl = r.tradeurl;
- let client = new SteamUser();
- let manager = new TradeOfferManager({
- "steam": client, // Polling every 30 seconds is fine since we get notifications from Steam
- "domain": "example.com", // Our domain is example.com
- "language": "en",
- "cancelTime":180000
- });
- let community = new SteamCommunity();
- // Steam logon options
- let logOnOptions = {
- "accountName": config.username,
- "password": config.password,
- "twoFactorCode": SteamTotp.getAuthCode(config.sharedSecret)
- };
- if (FS.existsSync('polldata.json')) {
- manager.pollData = JSON.parse(FS.readFileSync('polldata.json').toString('utf8'));
- }
- client.logOn(logOnOptions);
- client.on('loggedOn', function() {
- console.log("Logged into Steam");
- });
- client.on('webSession', function(sessionID, cookies) {
- manager.setCookies(cookies, function(err) {
- if (err) {
- console.log(err);
- process.exit(1); // Fatal error since we couldn't get our API key
- return;
- }
- console.log("Got API key: " + manager.apiKey);
- // Get our inventory
- manager.getInventoryContents(570, 2, true, function(err, inventory) {
- if (err) {
- console.log(err);
- return;
- }
- // console.log(inventory);
- // throw "stop execution";
- if (inventory.length == 0) {
- // Inventory empty
- console.log("Dota 2 inventory is empty");
- return;
- }
- console.log("Found " + inventory.length + " Dota 2 items");
- // Create and send the offer
- let offer = manager.createOffer(tradeurl);
- item = [
- {
- appid: 570,
- contextid: '2',
- classid: '645249158',
- assetid: '13126112943',
- instanceid: '260036609',
- amount: 1
- }
- ];
- offer.addTheirItems(items);
- offer.setMessage("Offer: #"+ offer.id);
- offer.send(function(err, status) {
- if (err) {
- console.log(err);
- return;
- }
- if (status == 'pending') {
- // We need to confirm it
- console.log(`Offer #${offer.id} sent, but requires confirmation`);
- community.acceptConfirmationForObject(config.identitySecret, offer.id, function(err) {
- if (err) {
- console.log(err);
- } else {
- console.log("Offer confirmed");
- }
- });
- } else {
- console.log(`Offer #${offer.id} sent successfully`);
- }
- });
- });
- });
- community.setCookies(cookies);
- });
- manager.on('sentOfferChanged', function(offer, oldState) {
- console.log(`Offer #${offer.id} changed: ${TradeOfferManager.ETradeOfferState[oldState]} -> ${TradeOfferManager.ETradeOfferState[offer.state]}`);
- if (TradeOfferManager.ETradeOfferState[offer.state] == 'Accepted'){
- manager.shutdown();
- client.logOff();
- //process.exit(1); // testing lang
- return;
- }
- });
- manager.on('pollData', function(pollData) {
- FS.writeFileSync('polldata.json', JSON.stringify(pollData));
- });
- manager.on('sentOfferCanceled',function(reason){
- console.log('offer cancelled franz');
- manager.shutdown();
- client.logOff();
- FS.unlink('polldata.json',function(err){
- console.log('poll data deleted');
- res.send();
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement