Переделать скрипт для автоматической записи видео

Цена договорная
06 августа 2023, 12:58 • 5 откликов • 45 просмотров
Есть скрипт, который автоматически запускает запись в OBS, когда на бирже открывается позиция (подключение происходит через API ключи). Помимо этого он автоматически переименовывает файл и указывает название монеты и тд.

Мне нужно переделать этот скрипт под простое нажатие кнопки. Проще говоря, открывается сделка - нажимается клавиша - сделка закрывается - клавиша нажимается снова.

Вот код основного файла:
from binance.client import Client
import time
import getpass
import os
import sys
import subprocess
import tempfile
import win32gui, win32con
import ctypes
ctypes.windll.user32.ShowWindow( ctypes.windll.kernel32.GetConsoleWindow(), 6 )

API_KEY,SECRET_KEY = open("keys.txt","r").read().split("\n")
client = Client(API_KEY, SECRET_KEY)


# The_program_to_hide = win32gui.GetForegroundWindow()
# win32gui.ShowWindow(The_program_to_hide , win32con.SW_HIDE)



videos = "C:\\Users\\vadim\\Videos"


def start_recording():
# For unixish systems:
args = ["obs"]
cwd = None

# For Windows:
if sys.platform == "win32":
cwd = r"C:\Program Files\obs-studio\bin\64bit"
args = [os.path.join(cwd, "obs64.exe")]

args.append("--startrecording")
args.append("--minimize-to-tray")
p = subprocess.Popen(
args=args
, cwd=cwd
#, stdout=subprocess.PIPE
#, stderr=subprocess.STDOUT
)
print("OBS PID: %s" % p.pid)

fn = os.path.join(tempfile.gettempdir(), "obs.%s.pid" % getpass.getuser())
print("OBS PID file: %s" % fn)
f = open(fn, "w")
f.write("%s" % p.pid)
f.close()


def stop_recording(coin):
fn = os.path.join(tempfile.gettempdir(), "obs.%s.pid" % getpass.getuser())
if not os.path.exists(fn):
print("OBS PID file does not exists: %s" % fn)
sys.exit(2)
print("OBS PID file: %s" % fn)
f = open(fn, "r")
pid = f.read()
f.close()
print("OBS PID: %s" % pid)

# For unixish systems:
args = ["kill", "%s" % pid]
# For Windows:
if sys.platform == "win32":
args = ["taskkill", "/f", "/pid", "%s" % pid]
subprocess.Popen(args=args).communicate()
os.remove(fn)



for file in os.listdir(videos):
if ".mkv" in file:
time.sleep(4)
if coin in os.listdir(videos):
os.replace(os.path.join(videos,file),os.path.join(videos,coin,file))
else:
os.mkdir(os.path.join(videos,coin))
os.replace(os.path.join(videos,file),os.path.join(videos,coin,file))



print("STARTING")
while True:
orders = client.futures_adl_quantile_estimate(recvWindow=60000)
time.sleep(1)
if orders != []:
name = orders[0]["symbol"]
print(f"start recording sybol = {name}")
start_recording()
while True:
orders = client.futures_adl_quantile_estimate(recvWindow=60000)
time.sleep(1)
if orders == []:
print(f" end recording symbol = {name}")
time.sleep(8)
stop_recording(name)
break


Остальные файлы тоже могу отправить.





Файлы
Отзывы
Всё прошло отлично. Приятно работать со специалистом.
1 год назад
Хороший заказчик, вполне сработались и пришли к решению проблемы.
1 год назад