예제 #1
0
 def make_offer(self,
                items_from_me: List[Asset],
                items_from_them: List[Asset],
                partner_steam_id: str,
                message: str = '') -> dict:
     offer = self._create_offer_dict(items_from_me, items_from_them)
     session_id = self._get_session_id()
     url = SteamUrl.COMMUNITY_URL + '/tradeoffer/new/send'
     server_id = 1
     params = {
         'sessionid': session_id,
         'serverid': server_id,
         'partner': partner_steam_id,
         'tradeoffermessage': message,
         'json_tradeoffer': json.dumps(offer),
         'captcha': '',
         'trade_offer_create_params': '{}'
     }
     partner_account_id = steam_id_to_account_id(partner_steam_id)
     headers = {
         'Referer': SteamUrl.COMMUNITY_URL + '/tradeoffer/new/?partner=' +
         partner_account_id,
         'Origin': SteamUrl.COMMUNITY_URL
     }
     response = self._session.post(url, data=params, headers=headers).json()
     if response.get('needs_mobile_confirmation'):
         response.update(self._confirm_transaction(
             response['tradeofferid']))
     return response
예제 #2
0
 def get_partner_inventory(self,
                           partner_steam_id: str,
                           game: GameOptions,
                           merge: bool = True) -> dict:
     params = {
         'sessionid': self._get_session_id(),
         'partner': partner_steam_id,
         'appid': int(game.app_id),
         'contextid': game.context_id
     }
     partner_account_id = steam_id_to_account_id(partner_steam_id)
     headers = {
         'X-Requested-With': 'XMLHttpRequest',
         'Referer': SteamUrl.COMMUNITY_URL + '/tradeoffer/new/?partner=' +
         partner_account_id,
         'X-Prototype-Version': '1.7'
     }
     response_dict = self._session.get(SteamUrl.COMMUNITY_URL +
                                       '/tradeoffer/new/partnerinventory/',
                                       params=params,
                                       headers=headers).json()
     if merge:
         return merge_items_with_descriptions_from_inventory(
             response_dict, game)
     return response_dict
예제 #3
0
파일: client.py 프로젝트: VVILD/steampy
 def make_offer(self,
                items_from_me: List[Asset],
                items_from_them: List[Asset],
                partner_steam_id: str,
                message: str = '') -> dict:
     offer = {
         'newversion': True,
         'version': 4,
         'me': {
             'assets': [asset.to_dict() for asset in items_from_me],
             'currency': [],
             'ready': False
         },
         'them': {
             'assets': [asset.to_dict() for asset in items_from_them],
             'currency': [],
             'ready': False
         }
     }
     session_id = self._get_session_id()
     url = self.COMMUNITY_URL + '/tradeoffer/new/send'
     server_id = 1
     params = {
         'sessionid': session_id,
         'serverid': server_id,
         'partner': partner_steam_id,
         'tradeoffermessage': message,
         'json_tradeoffer': json.dumps(offer),
         'captcha': '',
         'trade_offer_create_params': '{}'
     }
     partner_account_id = steam_id_to_account_id(partner_steam_id)
     headers = {
         'Referer': self.COMMUNITY_URL + '/tradeoffer/new/?partner=' +
         partner_account_id,
         'Origin': self.COMMUNITY_URL
     }
     response = self._session.post(url, data=params, headers=headers).json()
     if response.get('needs_mobile_confirmation'):
         return self._confirm_transaction(response['tradeofferid'])
     return response
예제 #4
0
파일: client.py 프로젝트: bukson/steampy
 def make_offer(self, items_from_me: List[Asset], items_from_them: List[Asset], partner_steam_id: str,
                message: str = '') -> dict:
     offer = self._create_offer_dict(items_from_me, items_from_them)
     session_id = self._get_session_id()
     url = SteamUrl.COMMUNITY_URL + '/tradeoffer/new/send'
     server_id = 1
     params = {
         'sessionid': session_id,
         'serverid': server_id,
         'partner': partner_steam_id,
         'tradeoffermessage': message,
         'json_tradeoffer': json.dumps(offer),
         'captcha': '',
         'trade_offer_create_params': '{}'
     }
     partner_account_id = steam_id_to_account_id(partner_steam_id)
     headers = {'Referer': SteamUrl.COMMUNITY_URL + '/tradeoffer/new/?partner=' + partner_account_id,
                'Origin': SteamUrl.COMMUNITY_URL}
     response = self._session.post(url, data=params, headers=headers).json()
     if response.get('needs_mobile_confirmation'):
         response.update(self._confirm_transaction(response['tradeofferid']))
     return response
예제 #5
0
    def make_offer(self,
                   token: str,
                   items_from_me: List[Asset],
                   items_from_them: List[Asset],
                   partner_steam_id: str,
                   message: str = '') -> dict:
        offer = {
            'newversion': True,
            'version': 4,
            'me': {
                'assets': [asset.to_dict() for asset in items_from_me],
                'currency': [],
                'ready': False
            },
            'them': {
                'assets': [asset.to_dict() for asset in items_from_them],
                'currency': [],
                'ready': False
            }
        }

        session_id = self.get_session_id()
        url = self.COMMUNITY_URL + '/tradeoffer/new/send'
        server_id = 1
        params = {
            'sessionid':
            session_id,
            'serverid':
            server_id,
            'partner':
            partner_steam_id,
            'tradeoffermessage':
            message,
            'json_tradeoffer':
            json.dumps(offer),
            'captcha':
            '',
            'trade_offer_create_params':
            json.dumps({"trade_offer_access_token": token})
        }
        partner_account_id = steam_id_to_account_id(partner_steam_id)
        headers = {
            'Referer':
            self.COMMUNITY_URL + '/tradeoffer/new/?partner=' +
            partner_account_id + '&token=' + token,
            'Origin':
            self.COMMUNITY_URL
        }
        while True:
            try:
                response = self._session.post(url,
                                              data=params,
                                              headers=headers,
                                              timeout=60).json()
                break
            except json.decoder.JSONDecodeError as err:
                logger.error("%s %s", err, url)
                time.sleep(3)

        if response.get('needs_mobile_confirmation'):
            response = self._confirm_transaction(response['tradeofferid'])
        return response
예제 #6
0
 def test_steam_id_to_account_id(self):
     steam_id = '76561198318883215'
     account_id = utils.steam_id_to_account_id(steam_id)
     self.assertEquals(account_id, '358617487')
예제 #7
0
 def test_steam_id_to_account_id(self):
     steam_id = '76561198318883215'
     account_id = utils.steam_id_to_account_id(steam_id)
     self.assertEquals(account_id, '358617487')