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
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
def get_state(self) -> str: return TradeOfferState(self.state).name