Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- from time import sleep
- import steampy
- from steampy.client import Asset
- from steampy.utils import GameOptions
- from steampy.client import SteamClient
- import os
- import datetime
- import requests
- from colorama import Fore, init
- init(autoreset=True)
- def time():
- now = datetime.datetime.now()
- return f'[{now.strftime("%d-%m-%Y %H:%M:%S")}]'
- def ChangeFile(fileName, Data):
- with open(str(fileName), 'w') as file:
- json.dump(Data, file, indent=4)
- file.close()
- def steam_login(data):
- maFile = json.load(open(data))
- apikey = maFile["steam_api"]
- proxy123 = maFile["proxy"]
- try:
- print(f'\n{time()} Logging to steam account: {data.split(".")[0]}')
- steam_client = SteamClient(apikey)
- print(f'{time()} Использую прокси: {proxy123}')
- steam_client._session.proxies = {'https': str(proxy123)}
- steam_client.login(maFile['account_name'], maFile['account_password'], data)
- print(f'{time()} Successfully logged in!\n')
- return steam_client
- except requests.exceptions.ConnectionError:
- print(f'{time()}{Fore.RED} Bad proxy')
- sleep(15)
- steam_login(data)
- except steampy.exceptions.InvalidCredentials as ERR:
- sleep(3)
- print(f'{time()}{Fore.RED} {ERR}')
- steam_login(data)
- def confirm(tradeid, steam_client, requestId, tm_api):
- try:
- steam_client._confirm_transaction(tradeid)
- except:
- userdata = json.load(open('data.json'))
- userdata.update({requestId: 'used'})
- ChangeFile('data.json', userdata)
- if requests.get(f'https://market.csgo.com/api/ReportCreatedTrade/{requestId}/{tradeid}?key={tm_api}').json()[
- 'success']:
- print(f'{time()} Подтвердили трейд и оповестили маркет!')
- def create_trade(steam_client, asset_list, trade_url, msg):
- if steam_client.is_session_alive():
- trade_asset = []
- for x in asset_list:
- trade_asset.append(Asset(x, GameOptions.CS))
- return steam_client.make_offer_with_url(trade_asset, [], trade_url, msg, True), steam_client
- else:
- steam_client = steam_login(f'{os.getcwd()}\\Settings\\Settings.json')
- trade_asset = []
- for x in asset_list:
- trade_asset.append(Asset(x, GameOptions.CS))
- return steam_client.make_offer_with_url(trade_asset, [], trade_url, msg, True), steam_client
- def data_check(requestId):
- userdata = json.load(open('data.json'))
- result = userdata.get(requestId)
- return result
- def check_trades(tm_api):
- ChangeFile('data.json', {})
- steam_client = steam_login(f'{os.getcwd()}\\Settings\\Settings.json')
- while tm_api:
- try:
- r = requests.get(f'https://market.csgo.com/api/ItemRequest/in/1/?key={tm_api}', timeout=5).json()
- if r['success']:
- msg = r['request']['tradeoffermessage']
- url = r['request']['tradelink']
- requestId = r['requestId']
- asset_list = []
- for x in r['request']['items']:
- asset_list.append(x['assetid'])
- if data_check(requestId) is None:
- d = create_trade(steam_client, asset_list, url, msg)
- steam_client = d[1]
- if d[0] is None:
- print(f'{time()} Не получилось создать трейд оффер')
- else:
- trade_id = d[0]['tradeofferid']
- confirm(trade_id, steam_client, requestId, tm_api)
- elif not r['success']:
- if r[
- 'error'] == 'Ошибка создания заявки: Не удалось получить список предметов' or 'Error creating request: Failed to get list of items':
- ChangeFile('data.json', {})
- else:
- print(f'{time()}{Fore.RED} Ошибка при создании трейда: {r["error"]}')
- sleep(5)
- except Exception as er:
- print(f'{time()} Ошибка при check_trades: {er}{Fore.RESET}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement