예제 #1
0
파일: client.py 프로젝트: miminhub/steampy
 def make_offer_with_url(self, items_from_me: List[Asset], items_from_them: List[Asset],
                         trade_offer_url: str, message: str = '', case_sensitive: bool=True) -> dict:
     token = get_key_value_from_url(trade_offer_url, 'token', case_sensitive)
     partner_account_id = get_key_value_from_url(trade_offer_url, 'partner', case_sensitive)
     partner_steam_id = account_id_to_steam_id(partner_account_id)
     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
     trade_offer_create_params = {'trade_offer_access_token': token}
     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_create_params)
     }
     headers = {'Referer': SteamUrl.COMMUNITY_URL + urlparse.urlparse(trade_offer_url).path,
                'Origin': SteamUrl.COMMUNITY_URL}
     response = self._session.post(url, data=params, headers=headers)
     status = int(response.status_code)
     if status >= 300 or status < 200:
         return False, {'error_text': response.text, 'status_code': status} 
     response_dict = response.json()
     if response_dict.get('needs_mobile_confirmation'):
         response_dict.update(self._confirm_transaction(response_dict['tradeofferid']))
     return True, response
예제 #2
0
 def make_offer_with_url(self,
                         items_from_me: List[Asset],
                         items_from_them: List[Asset],
                         trade_offer_url: str,
                         message: str = '') -> dict:
     token = get_key_value_from_url(trade_offer_url, 'token')
     partner_account_id = get_key_value_from_url(trade_offer_url, 'partner')
     partner_steam_id = account_id_to_steam_id(partner_account_id)
     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
     trade_offer_create_params = {'trade_offer_access_token': token}
     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_create_params)
     }
     headers = {
         'Referer':
         SteamUrl.COMMUNITY_URL + urlparse.urlparse(trade_offer_url).path,
         '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
예제 #3
0
파일: client.py 프로젝트: bukson/steampy
 def make_offer_with_url(self, items_from_me: List[Asset], items_from_them: List[Asset],
                         trade_offer_url: str, message: str = '', case_sensitive: bool=True) -> dict:
     token = get_key_value_from_url(trade_offer_url, 'token', case_sensitive)
     partner_account_id = get_key_value_from_url(trade_offer_url, 'partner', case_sensitive)
     partner_steam_id = account_id_to_steam_id(partner_account_id)
     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
     trade_offer_create_params = {'trade_offer_access_token': token}
     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_create_params)
     }
     headers = {'Referer': SteamUrl.COMMUNITY_URL + urlparse.urlparse(trade_offer_url).path,
                '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
예제 #4
0
 def test_get_key_value_from_url_case_insensitive(self):
     url = 'https://steamcommunity.com/tradeoffer/new/?Partner=aaa&Token=bbb'
     self.assertEqual(
         utils.get_key_value_from_url(url, 'partner', case_sensitive=False),
         'aaa')
     self.assertEqual(
         utils.get_key_value_from_url(url, 'token', case_sensitive=False),
         'bbb')
예제 #5
0
 def test_get_key_value_from_url(self):
     url = 'https://steamcommunity.com/tradeoffer/new/?partner=aaa&token=bbb'
     self.assertEqual(utils.get_key_value_from_url(url, 'partner'), 'aaa')
     self.assertEqual(utils.get_key_value_from_url(url, 'token'), 'bbb')
예제 #6
0
 def test_get_key_value_from_url_case_insensitive(self):
     url = 'https://steamcommunity.com/tradeoffer/new/?Partner=aaa&Token=bbb'
     self.assertEqual(utils.get_key_value_from_url(url, 'partner', case_sensitive=False), 'aaa')
     self.assertEqual(utils.get_key_value_from_url(url, 'token', case_sensitive=False), 'bbb')
예제 #7
0
 def test_get_key_value_from_url(self):
     url = 'https://steamcommunity.com/tradeoffer/new/?partner=aaa&token=bbb'
     self.assertEqual(utils.get_key_value_from_url(url, 'partner'), 'aaa')
     self.assertEqual(utils.get_key_value_from_url(url, 'token'), 'bbb')