From 7b00173b08ac1607282df23728f2881e1c16e8c1 Mon Sep 17 00:00:00 2001 From: STWonderFool <94215621+STWonderFool@users.noreply.github.com> Date: Sun, 7 Apr 2024 06:02:46 +0600 Subject: [PATCH] Update v2 --- v2 | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/v2 b/v2 index 688a376..49cd001 100644 --- a/v2 +++ b/v2 @@ -15,11 +15,11 @@ from urllib.parse import quote from bs4 import BeautifulSoup from notifiers import get_notifier from printy import printy -from requests import get, Session, post +from requests import get, post from requests.utils import dict_from_cookiejar from steampy.confirmation import ConfirmationExecutor -from steampy.exceptions import CaptchaRequired, InvalidCredentials from MySteam.login import LoginExecutor +from MySteam.steam import get_sent_offers stop_flag = False @@ -434,7 +434,7 @@ class ItemsSender: self.steam_api = self.get_my_steam_api() break - self.sent_offers_messages = [] + self.sent_offers_messages = {} self.run() @@ -478,7 +478,7 @@ class ItemsSender: try: Thread(target=self.ping_pong_cycle).start() - # Thread(target=self.cancel_all_offers_older_10_min).start() + Thread(target=self.cancel_all_offers_older_10_min).start() except: telegram_notify(self.chat_id, self.token, f'Critical error: {format_exc()}') @@ -539,20 +539,20 @@ class ItemsSender: while True: if stop_flag: return - sleep(90) - url = f'http://api.steampowered.com/IEconService/GetTradeOffers/v1/?key={self.steam_api}&get_sent_offers=1&active_only=1' - - try: - trade_offers = get(url, timeout=60).json()['response']['trade_offers_sent'] - for i in trade_offers: - if time() - i['time_created'] > 600 and i['message'] in self.sent_offers_messages and i['trade_offer_state'] in [2, 9]: - try: - self.cancel_trade_offer(i['tradeofferid']) - message(self.login, 'n', f'Canceled offer #{i["tradeofferid"]}') - except: - message(self.login, 'r', 'Trade offer cancellation error') - except: - pass + sleep(500) + message(self.login, 'n', f'Getting sent offers!') + offers = get_sent_offers(self.session, self.steam_id) + if offers == 'ERROR': + message(self.login, 'r', 'Error getting sent offers list') + continue + for trade_id in offers: + trade_message = offers[trade_id] + if trade_message in self.sent_offers_messages and time() - self.sent_offers_messages[trade_message] > 600: + try: + self.cancel_trade_offer(trade_id) + message(self.login, 'n', f'Canceled offer #{trade_id}') + except: + message(self.login, 'r', 'Trade offer cancellation error') def filter_offers_list(self, offers): for offer in offers.copy(): @@ -606,7 +606,7 @@ class ItemsSender: # If session is ok, and trade offer need confirmation if response.status_code == 200: message(self.login, 'y>', f'Offer #{counter}/{len(offers)} creating..') - self.sent_offers_messages.append(offer['tradeoffermessage']) + self.sent_offers_messages[offer['tradeoffermessage']] = time() sleep(1) continue