Jump to content
McKay Development

What Comes Around

Member
  • Posts

    76
  • Joined

  • Last visited

Posts posted by What Comes Around

  1. 35 minutes ago, Dr. McKay said:

    net.js is part of Node.js itself, so you wouldn't really be able to modify it.

    Hmmm, I also get an UnhandledPromiseRejectionWarning for that error. Here is an example:
    (node:1755579) UnhandledPromiseRejectionWarning: Error: connect ETIMEDOUT XXXXXXXXXXX(IP address)
        at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:16)
    (node:1755579) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
     

    I've looked through both, steam-user and steam-community. Steam user uses netjs to make a socket with CM through a proxy, and Steam community uses the request library to make requests through the proxy. Steam user listens for errors and timeouts from netjs, and Steam community has a callback for http errors that should be thrown if request throws errors. So I really do not understand how the promise rejection isn't handled. My current solution is simple. Firstly, I will reinstall the modules. Maybe I was reading through your code and happened to alter it some way long ago. My bot already checks if it is connected and if for some reason it is not, it will restart itself, requesting a proxy again. In this case, the Proxy Management System can check if a proxy gets dropped too often in a short time frame and blacklist it. This should be a decent workaround but it sucks that I cannot find the root of the problem for now. If you have any idea where the issue could be let me know, and thank you for your help. I'm self taught so... I lack knowledge that might seem basic sometimes and also complex knowledge. Guess you could say, I only know what I wanted to learn :) Thanks again! 

  2. Good day!

    For a long time, I had few issues with proxy providers, but as of recent, my proxy provider has been providing unreliable proxies. Because of this I have created my own proxy management system and want to flag proxies that they don't catch acting erroneously. So I want to handle proxy connection errors. One error I am having a lot of issue handling is one that looks like this:


    Error: connect ETIMEDOUT [ip address and port]
        at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:16) {
      errno: -110,
      code: 'ETIMEDOUT',
      syscall: 'connect',
      address: '[ip address]',
      port: [port]
    }

    What I want to do is add some code into "net.js:1159" to handle the error by sending a message to the proxy management system to flag the proxy, after which the proxy is blacklisted. However, I cannot find 'net.js'. Do you have any ideas or suggestions on how I can handle this error?

  3. On 5/29/2023 at 8:05 PM, Dr. McKay said:

    My bad, I'd thought you said above that RemoveSticker did exist.

    Try using Language.ApplySticker instead. It may be that including the extra properties broke things for you.

    Sorry for the late reply. I was away from the PC I use for coding. Anyways, it unfortunately didn't work. I will learn more about how you replicate GC messages in your module and see what I can do to get the sticker scraping message to work. If you can think of anything else, any advice, it would be much appreciated! And thank you for your help thus far!

  4. On 5/27/2023 at 7:43 PM, Dr. McKay said:

    Try this:

    GlobalOffensive.prototype.scrapeSticker = function(item_id, stickerslot) {
        this._send(Language.RemoveSticker, Protos.CMsgApplySticker, {
            item_item_id: item_id,
            sticker_slot: stickerslot,
            sticker_wear: 1
        });
    }

     

    Unfortunately that didn't work as Language.RemoveSticker is undefined. Also looking at the messages sent when using ApplySticker: image.png.d19b933164824846827c58c7109d0199.png

    It shows that the msg code 1086 is used. Which is correct, like with the actual NetHook2Analyzer message. What I will try next is deleting items to see how it looks in NetHook to try to maybe find a pattern and maybe that way find my mistake. Let me know if you can think of anything else!

  5. On 5/20/2023 at 5:21 AM, Dr. McKay said:

    You can intercept and inspect Steam traffic using NetHook to see what the game is sending to the GC.

    I didn't see any RemoveSticker protobuf definitions in the files, so my guess would be that it's using CMsgApplySticker for removals, but not setting sticker_item_id or baseitem_defidx.

    I have tried a lot of combinations but still can't seem to get it to work. I hope you can maybe spot a mistake that I might have made. I tried two ways to send the message. Here is the first:

    GlobalOffensive.prototype.scrapeSticker = function(item_item_id, sticker_slot) {
        let buffer = new ByteBuffer(8 + 8 + 4 + 4 + 2, ByteBuffer.LITTLE_ENDIAN);
        buffer.writeUint64(0);
        buffer.writeUint64(item_item_id);
        buffer.writeUint32(sticker_slot);
        buffer.writeUint32(0)
        buffer.writeFloat(1)
        this._send(Language.ApplySticker, null, buffer)
    }

    And here is the second way I tried sending the message:

    GlobalOffensive.prototype.scrapeSticker = function(item_id, stickerslot) {
        this._send(Language.ApplySticker, Protos.CMsgApplySticker, {
            sticker_item_id: 0,
            item_item_id: item_id,
            sticker_slot: stickerslot,
            baseitem_defidx:0,
            sticker_wear: 1
        })
    }

    Neither worked to remove the sticker. Here is what the message I am trying to replicate looks like, from NetHook2Analyzer;

    image.png.67e7fcb320b5f55cd1d9282d4821c804.png

    image.png.9d96845f74d4fd5040382b69f18169b6.png

    image.png.817d3b478fdd88a1607106a13c30f328.png

    I must be making a mistake somewhere. The only other thing I can think of is that stickers can only be removed bit by bit and not straight to wear 1. But I would be very surprised if that's the case.

  6. 2 hours ago, What Comes Around said:

    Unfortunately it didn't work. I am trying to get NetHook working right now but having trouble with that as well. Here is what I have so far. 

    This is index.js:

    const SteamUser = require('steam-user');
    const SteamTotp = require('steam-totp');
    const SteamCommunity = require('steamcommunity');
    const GlobalOffensive = require('globaloffensive')
    const Request = require('request');
     
    var proxy = 'x'
     
    var Steam_User = new SteamUser({
        httpProxy: proxy
    });
    var Steam_Community = new SteamCommunity({
        request: Request.defaults({proxy: proxy, timeout: 100000})
        //old request: Request.defaults({proxy: proxy})
    })
     
    Steam_User.logOn({
        accountName: 'x',
        password: 'x',
        rememberPassword: true,
        twoFactorCode: SteamTotp.generateAuthCode('x'),
    });
     
    Steam_User.on('loggedOn', ()=> {
        console.log('Client logged on')
        const csgo = new GlobalOffensive(Steam_User);
        Steam_User.gamesPlayed([730],true);
        csgo.on('connectedToGC', () =>{
            console.log('Connected to CSGO')
            console.log(csgo.inventory[0])
            console.log(csgo.inventory[0].stickers)
            csgo.scrapeSticker(30509013742, 2)
            console.log(csgo.inventory[0].stickers)
        })
    })
    Steam_User.on('webSession', (sid, cookies) => {
        console.log('Client web logged on')
    })
     
    Steam_User.on('steamGuard', function(domain, callback) {
        var code = SteamTotp.generateAuthCode('x')
        callback(code);
    });

    As basic as it gets. 

    Here is an addition I made to the index of globaloffensive npm:

    /**
     * Scrape sticker
     * @param {int} itemId
     * @param {int} sticker_slot
     */
     
    GlobalOffensive.prototype.scrapeSticker = function(itemId, sticker_slot) {
        let buffer = new ByteBuffer(8 + 4, ByteBuffer.LITTLE_ENDIAN);
        buffer.writeUint64(itemId);
        buffer.writeUint32(sticker_slot)
        this._send(Language.ApplySticker, null, buffer)
    }

    Here is the output it gives:

    Client logged on
    debug Sending GC message ClientHello
    Client web logged on
    Connected to CSGO
    {
      attribute: [
        { def_index: 6, value: null, value_bytes: <Buffer 00 00 90 42> },
        { def_index: 7, value: null, value_bytes: <Buffer 45 d4 25 44> },
        { def_index: 8, value: null, value_bytes: <Buffer 1f 77 49 3e> },
        { def_index: 75, value: null, value_bytes: <Buffer f0 41 78 64> },
        { def_index: 113, value: null, value_bytes: <Buffer ba 13 00 00> },
        { def_index: 121, value: null, value_bytes: <Buffer 61 12 00 00> },
        { def_index: 122, value: null, value_bytes: <Buffer ac 26 5b 3f> },
        { def_index: 125, value: null, value_bytes: <Buffer ba 13 00 00> }
      ],
      equipped_state: [],
      id: 'x',
      account_id: x,
      inventory: x,
      def_index: 9,
      quantity: 1,
      level: 1,
      quality: 4,
      flags: 0,
      origin: 24,
      custom_name: null,
      custom_desc: null,
      interior_item: null,
      in_use: false,
      style: null,
      original_id: null,
      rarity: 2,
      position: 0,
      paint_index: 72,
      paint_seed: 663,
      paint_wear: 0.19674347341060638,
      tradable_after: 2023-06-01T07:00:00.000Z,
      stickers: [
        {
          slot: 0,
          sticker_id: 5050,
          wear: null,
          scale: null,
          rotation: null
        },
        {
          slot: 2,
          sticker_id: 4705,
          wear: 0.8560588359832764,
          scale: null,
          rotation: null
        },
        {
          slot: 3,
          sticker_id: 5050,
          wear: null,
          scale: null,
          rotation: null
        }
      ]
    }
    [
      {
        slot: 0,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      },
      {
        slot: 2,
        sticker_id: 4705,
        wear: 0.8560588359832764,
        scale: null,
        rotation: null
      },
      {
        slot: 3,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      }
    ]
    debug Sending GC message ApplySticker
    [
      {
        slot: 0,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      },
      {
        slot: 2,
        sticker_id: 4705,
        wear: 0.8560588359832764,
        scale: null,
        rotation: null
      },
      {
        slot: 3,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      }
    ]

    I am now trying to get NetHook installed but I am having issues with that. I can't seem to build the dll, I either get a build tool error and can't choose to Retarget solution like it tells me to. Any ideas on changes to the request that might get it to work?

    Update; After downloading 20 different .NET versions and getting everything working with regards to SteamKit. I have NetHook2 working, and I analyzed the messages. Here is what it looks like when you fully remove a sticker: 

    image.png.88ada1c85e3e958406308ceb379c3f74.png

    So these are the params needed.

  7. On 5/20/2023 at 5:21 AM, Dr. McKay said:

    You can intercept and inspect Steam traffic using NetHook to see what the game is sending to the GC.

    I didn't see any RemoveSticker protobuf definitions in the files, so my guess would be that it's using CMsgApplySticker for removals, but not setting sticker_item_id or baseitem_defidx.

    Unfortunately it didn't work. I am trying to get NetHook working right now but having trouble with that as well. Here is what I have so far. 

    This is index.js:

    const SteamUser = require('steam-user');
    const SteamTotp = require('steam-totp');
    const SteamCommunity = require('steamcommunity');
    const GlobalOffensive = require('globaloffensive')
    const Request = require('request');
     
    var proxy = 'x'
     
    var Steam_User = new SteamUser({
        httpProxy: proxy
    });
    var Steam_Community = new SteamCommunity({
        request: Request.defaults({proxy: proxy, timeout: 100000})
        //old request: Request.defaults({proxy: proxy})
    })
     
    Steam_User.logOn({
        accountName: 'x',
        password: 'x',
        rememberPassword: true,
        twoFactorCode: SteamTotp.generateAuthCode('x'),
    });
     
    Steam_User.on('loggedOn', ()=> {
        console.log('Client logged on')
        const csgo = new GlobalOffensive(Steam_User);
        Steam_User.gamesPlayed([730],true);
        csgo.on('connectedToGC', () =>{
            console.log('Connected to CSGO')
            console.log(csgo.inventory[0])
            console.log(csgo.inventory[0].stickers)
            csgo.scrapeSticker(30509013742, 2)
            console.log(csgo.inventory[0].stickers)
        })
    })
    Steam_User.on('webSession', (sid, cookies) => {
        console.log('Client web logged on')
    })
     
    Steam_User.on('steamGuard', function(domain, callback) {
        var code = SteamTotp.generateAuthCode('x')
        callback(code);
    });

    As basic as it gets. 

    Here is an addition I made to the index of globaloffensive npm:

    /**
     * Scrape sticker
     * @param {int} itemId
     * @param {int} sticker_slot
     */
     
    GlobalOffensive.prototype.scrapeSticker = function(itemId, sticker_slot) {
        let buffer = new ByteBuffer(8 + 4, ByteBuffer.LITTLE_ENDIAN);
        buffer.writeUint64(itemId);
        buffer.writeUint32(sticker_slot)
        this._send(Language.ApplySticker, null, buffer)
    }

    Here is the output it gives:

    Client logged on
    debug Sending GC message ClientHello
    Client web logged on
    Connected to CSGO
    {
      attribute: [
        { def_index: 6, value: null, value_bytes: <Buffer 00 00 90 42> },
        { def_index: 7, value: null, value_bytes: <Buffer 45 d4 25 44> },
        { def_index: 8, value: null, value_bytes: <Buffer 1f 77 49 3e> },
        { def_index: 75, value: null, value_bytes: <Buffer f0 41 78 64> },
        { def_index: 113, value: null, value_bytes: <Buffer ba 13 00 00> },
        { def_index: 121, value: null, value_bytes: <Buffer 61 12 00 00> },
        { def_index: 122, value: null, value_bytes: <Buffer ac 26 5b 3f> },
        { def_index: 125, value: null, value_bytes: <Buffer ba 13 00 00> }
      ],
      equipped_state: [],
      id: 'x',
      account_id: x,
      inventory: x,
      def_index: 9,
      quantity: 1,
      level: 1,
      quality: 4,
      flags: 0,
      origin: 24,
      custom_name: null,
      custom_desc: null,
      interior_item: null,
      in_use: false,
      style: null,
      original_id: null,
      rarity: 2,
      position: 0,
      paint_index: 72,
      paint_seed: 663,
      paint_wear: 0.19674347341060638,
      tradable_after: 2023-06-01T07:00:00.000Z,
      stickers: [
        {
          slot: 0,
          sticker_id: 5050,
          wear: null,
          scale: null,
          rotation: null
        },
        {
          slot: 2,
          sticker_id: 4705,
          wear: 0.8560588359832764,
          scale: null,
          rotation: null
        },
        {
          slot: 3,
          sticker_id: 5050,
          wear: null,
          scale: null,
          rotation: null
        }
      ]
    }
    [
      {
        slot: 0,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      },
      {
        slot: 2,
        sticker_id: 4705,
        wear: 0.8560588359832764,
        scale: null,
        rotation: null
      },
      {
        slot: 3,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      }
    ]
    debug Sending GC message ApplySticker
    [
      {
        slot: 0,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      },
      {
        slot: 2,
        sticker_id: 4705,
        wear: 0.8560588359832764,
        scale: null,
        rotation: null
      },
      {
        slot: 3,
        sticker_id: 5050,
        wear: null,
        scale: null,
        rotation: null
      }
    ]

    I am now trying to get NetHook installed but I am having issues with that. I can't seem to build the dll, I either get a build tool error and can't choose to Retarget solution like it tells me to. Any ideas on changes to the request that might get it to work?

  8. 11 hours ago, Dr. McKay said:

    You can intercept and inspect Steam traffic using NetHook to see what the game is sending to the GC.

    I didn't see any RemoveSticker protobuf definitions in the files, so my guess would be that it's using CMsgApplySticker for removals, but not setting sticker_item_id or baseitem_defidx.

    Thank you very much! Being self taught and not very experienced it's a little tough trying to navigating things like this on my own. So I really appreciate the help/advice!

  9. 3 hours ago, What Comes Around said:

    Good day,

    I know it might sound stupid. But I want to automate scraping stickers. I would like to know how I can intercept game coordinator messages so I can recreate scraping stickers or if anyone knows what the messages need to look like that would cut that be a helpful shortcut for me!

    Update, I found the csgo docs. So it looks like it's outlined there. I believe I need to use the enum 1053 (RemoveSticker). And I can use this to find out what gc wants to see:

    image.png

  10. Good day,

    I know it might sound stupid. But I want to automate scraping stickers. I would like to know how I can intercept game coordinator messages so I can recreate scraping stickers or if anyone knows what the messages need to look like that would cut that be a helpful shortcut for me!

  11. On 3/30/2023 at 5:35 AM, Dr. McKay said:

    That's definitely a proxy issue. Your proxy isn't responding fast enough.

    After digging around these past two days I think you are right. I don't think it's a configuration issue because if you look at tunneling agent the ECONRESET code is thrown out in any case, whether the proxy authentication fails, or a timeout, or whatever. I checked all of my proxies and they have the right credentials, and they are in the right format. Should also be noted that accounts do connect, just occasional requests get that error. So I believe like you said, the issue is the proxies are taking too long to tunnel a socket, so it throws out that error. A solution for me I think would be to either ignore the errors (the requests do go through sometimes), or pay for higher priority on the proxy network. For now, I'm using the simplest solution, ignoring the errors :P Thank you for your advice and thoughts!!

    Edit: I should also mention. I said I increased the timeout for request to 5 seconds, firstly, the default timeout setting is higher, I think it's like 50 seconds, after finding that out I doubled it. However, this did not help. Which further confirms that the proxy is at fault and it's not a request issue. Again, the proxy doesn't tunnel a socket in time.

  12. Good day,

    I get this error periodically. Sometimes it's smooth sailing, sometimes I'm getting this error for a lot of proxies. 

    Error: tunneling socket could not be established, cause=connect ETIMEDOUT xx.xxx.xxx.xxx:xxxx
        at ClientRequest.onError (G:\SteamProject\Current Version\node_modules\tunnel-agent\index.js:177:17)
        at Object.onceWrapper (events.js:520:26)
        at ClientRequest.emit (events.js:400:28)
        at Socket.socketErrorListener (_http_client.js:475:9)
        at Socket.emit (events.js:400:28)
        at emitErrorNT (internal/streams/destroy.js:106:8)
        at emitErrorCloseNT (internal/streams/destroy.js:74:3)
        at processTicksAndRejections (internal/process/task_queues.js:82:21) {
      code: 'ECONNRESET',
      body: undefined
    }

    For my request settings in the community constructor I have increased the timeout to 5 seconds but it still hasn't helped.

    this.client = new SteamUser({
        httpProxy: proxy
    });
    this.community = new SteamCommunity({
        request: Request.defaults({proxy: proxy, timeout: 5000})
        //old request: Request.defaults({proxy: proxy})
    })
    this.manager = new TradeOfferManager({
        steam: this.client,
        community: this.community,
        language: 'en'
    });

    Do you think this is a proxy issue or steam issue? My proxy provider shows no issues with the proxies, and since it comes and goes I would be more inclined to think it's a steam issue. Any advice?

     

  13. Good day!

    Just a suggestion. I have already added this locally but would be good to add to the available npm. Basically, say the proxy connection doesn't work. For me, it would be very useful to be able to set a function as a callback that handles the error. For example; The proxy timedout. It runs a function: X. Function X flags the assigned proxy as not working and returns an unused proxy URL. I would make a pull request but I'm self taught and my code is kinda janky half the time, so I think you could do much better than me :) 

  14. On 9/27/2022 at 9:34 PM, david818 said:

    I don't think skins and floats are possible to see on private profiles but what I can see is medals pins and coins. You can see all medals as possible including pro players trophy's. so yeah

     

    But I mentioned in the reply that you quoted about that. Medals and pins are excluded from items that are private when you set your settings to private. That's because you can have everything on private, but if you enter a game players can still see your medals and pins. Yes, they can use your weapons, but they cannot see the item id or float or pattern I believe. But when you enter a game, the game coordinator gives you players medals and pins. And you can communicate with the game coordinator, so that data is public.

  15. On 9/11/2022 at 12:02 AM, Fabro said:

    Thanks you for your answer. Is there any reason to that, and is there any way to avoid? Because I have made trades with people, and never had any restriction before. I just had this with the bot, and after that I tried to trade an item with a friend of mine, and did not had the restriction that I had with the bot. He literally accepted the trade and returned the item in less than 2 minutes. I don't completely understand why is that limitation set with the bot, but not with other accounts. Shouldn't the bot behave like a regular account while interacting with steam? 

    CSGO items always have a 7 day cooldown, maybe you and your friend had the same item in both of your inventories so you saw one as tradeable once, then selected the tradeable one in your friend's inventory so assumed it was the same item. I've been trading many items for a long time now, there is always a 7 day cooldown. But you can sell the items on the market immediately. Has been like this for a long time and will continue to be like this.

  16. On 9/9/2022 at 9:47 PM, david818 said:

    No not mine. It's possible because i've seen that before. you can see anyone's inventory csgo medals pins.

    What have you seen? Items on float.db in inventories that are private? Usually what happens is private inventories are set to public to idk sell an item or whatever and those sites (like float.db) take record of the inventory at the time. As long as the items aren't moved to a public inventory they will remain on record in that private one. Medals are the easiest to track, because they can't be transferred. Especially if you are looking at old medals (like 2015), there is a high likelyhood that the steam user unprivated their inventory some time between 2015 and now, as an example. Also, just remembered but medals are always public, here's why, you can see medals that someone has that is in your game, even if their inventory is private. What this means is you can use CSGO game coordinator to view someone's medals, even if their inventory is private. Medals may be possible, but otherwise inventories that are set to private are not, wouldn't make much sense to have a private setting if it doesn't actually private your inventory, and I don't think valve has that settings for shits and giggles.

  17. Good day,

    I am playing around with gamesPlayed() and when I use games other than valve games it doesn't show that the user is playing that game. For exampe, War Thunder, Track Mania Nations Forever, free games on steam. However, Team Fortress, CSGO and Dota work just fine. Do only valve games show up?

  18. On 9/6/2022 at 1:49 AM, david818 said:

    Hello there. So friend of mine referred here to use this lib to get csgo item details from private inventory.

    So basically I wanna make a discord bot that you can see someone's medals and items he got, and the person uses this lib to see private profile coins and medals from csgo.

    So I would like to know where and which function should I look for? 

    and thanks 

    Is the inventory yours? If the client is not logged into the private profile account you cannot view that inventory. The only private inventory you can view is that of your own. 

  19. Not sure why I get this error, but I was hoping you could help diagnose why it's happening and how to handle it. Here is the full error:

    events.js:377
          throw er; // Unhandled 'error' event
          ^
    
    Error: read ECONNRESET
        at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
    Emitted 'error' event on Socket instance at:
        at emitErrorNT (internal/streams/destroy.js:106:8)
        at emitErrorCloseNT (internal/streams/destroy.js:74:3)
        at processTicksAndRejections (internal/process/task_queues.js:82:21) {
      errno: -4077,
      code: 'ECONNRESET',
      syscall: 'read'
    }

     

  20. 3 hours ago, Dr. McKay said:

    Sorry, I misled you. You need to pass a request instance with the proxy set on it to SteamCommunity, like so:

    const Request = require('request');
    const SteamCommunity = require('steamcommunity');
    
    let community = new SteamCommunity({
        request: Request.defaults({proxy: 'http://1.2.3.4'})
    });

     

    Good news, works like a charm! Scraping data just fine now!

    3 hours ago, Dr. McKay said:

    Sorry, I misled you. You need to pass a request instance with the proxy set on it to SteamCommunity, like so:

    const Request = require('request');
    const SteamCommunity = require('steamcommunity');
    
    let community = new SteamCommunity({
        request: Request.defaults({proxy: 'http://1.2.3.4'})
    });

     

    Oh and it makes sense to me now. I looked through steam community at the constructor options and I didn't see any httpProxy options. Now I see there is a request option, but instead I pass in my own request default settings and that gets replaced by my passed in option. Do I understand this correctly?

  21. 47 minutes ago, Dr. McKay said:

    Sorry, I misled you. You need to pass a request instance with the proxy set on it to SteamCommunity, like so:

    const Request = require('request');
    const SteamCommunity = require('steamcommunity');
    
    let community = new SteamCommunity({
        request: Request.defaults({proxy: 'http://1.2.3.4'})
    });

     

    Ah ok. Thanks! No worries :)

    I'll try it out!

  22. 52 minutes ago, Dr. McKay said:

    Wireshark might help

    Yeah I have tried using wireshark before, but my networking knowledge is very lacking. I think the easiest way to get around this problem for me is to just use VM's that use proxies. Only issue with that is if I want information to converge, I will need to setup a webserver to manage the bots. That's not a big deal because I know how to code websites but I'm just wondering what would take more time, learning and finding the problem or making vm's and a webserver to converge the data. Issue is the longer it takes the more money I lose, so I think I will go with the easier option first, to patch things up, and then look into finding the problem with requests not going through a proxy.

    Just a side note; could it be possible that using community.httpRequestPost outside of it's constructor mean it doesn't inherit proxy settings? Because as far as I can tell, all of my bots are logging in from separate ip's (looking at the log in history on steam). And what's being rate limited in specific is getting item data from steam community, which I made my own function for using community.httpRequestPost. By the way, I'd like to mention, I am self taught in coding, because of this I only learned what I wanted/needed, so I'm sorry if I don't explain things very clearly or have naïve ideas.

×
×
  • Create New...