예제 #1
0
 def accept_trade_offer(self, trade_offer_id: str) -> dict:
     trade = self.get_trade_offer(trade_offer_id)
     trade_offer_state = TradeOfferState(trade['response']['offer']['trade_offer_state'])
     if trade_offer_state is not TradeOfferState.Active:
         raise ApiException("Invalid trade offer state: {} ({})".format(trade_offer_state.name,
                                                                        trade_offer_state.value))
     partner = self._fetch_trade_partner_id(trade_offer_id)
     session_id = self._get_session_id()
     accept_url = SteamUrl.COMMUNITY_URL + '/tradeoffer/' + trade_offer_id + '/accept'
     params = {'sessionid': session_id,
               'tradeofferid': trade_offer_id,
               'serverid': '1',
               'partner': partner,
               'captcha': ''}
     headers = {'Referer': self._get_trade_offer_url(trade_offer_id)}
     response = self._session.post(accept_url, data=params, headers=headers).json()
     if response.get('needs_mobile_confirmation', False):
         return self._confirm_transaction(trade_offer_id)
     return response
예제 #2
0
파일: client.py 프로젝트: miminhub/steampy
 def accept_trade_offer(self, trade_offer_id: str) -> dict:
     trade = self.get_trade_offer(trade_offer_id)
     trade_offer_state = TradeOfferState(trade['response']['offer']['trade_offer_state'])
     if trade_offer_state is not TradeOfferState.Active:
         raise ApiException("Invalid trade offer state: {} ({})".format(trade_offer_state.name,
                                                                        trade_offer_state.value))
     partner = self._fetch_trade_partner_id(trade_offer_id)
     session_id = self._get_session_id()
     accept_url = SteamUrl.COMMUNITY_URL + '/tradeoffer/' + trade_offer_id + '/accept'
     params = {'sessionid': session_id,
               'tradeofferid': trade_offer_id,
               'serverid': '1',
               'partner': partner,
               'captcha': ''}
     headers = {'Referer': self._get_trade_offer_url(trade_offer_id)}
     response = self._session.post(accept_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
예제 #3
0
 def get_state(self) -> str:
     return TradeOfferState(self.state).name