44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
"""Auto Planner — runs trend_sniper.py on a fixed interval for a chosen
|
|
duration (e.g. overnight). Reads its config from auto_planner.json."""
|
|
import os, json, time, datetime, subprocess, sys
|
|
|
|
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
CONFIG_PATH = os.path.join(HERE, "auto_planner.json")
|
|
SNIPER_PATH = os.path.join(HERE, "trend_sniper.py")
|
|
|
|
def load_config():
|
|
try:
|
|
with open(CONFIG_PATH, "r", encoding="utf-8") as f:
|
|
return json.load(f)
|
|
except Exception as e:
|
|
print(f"❌ 설정 파일을 읽을 수 없어요: {CONFIG_PATH}\n{e}")
|
|
sys.exit(1)
|
|
|
|
def main():
|
|
cfg = load_config()
|
|
interval_h = float(cfg.get("INTERVAL_HOURS", 2))
|
|
total_h = float(cfg.get("TOTAL_RUN_HOURS", 8))
|
|
print(f"\n🚀 [오토 플래너] {total_h}시간 동안 {interval_h}시간마다 트렌드 분석 실행")
|
|
if not os.path.exists(SNIPER_PATH):
|
|
print(f"❌ trend_sniper.py를 찾을 수 없어요: {SNIPER_PATH}")
|
|
sys.exit(1)
|
|
start = time.time()
|
|
loop = 0
|
|
while True:
|
|
if time.time() - start > total_h * 3600:
|
|
print("\n☀️ 목표 가동 시간을 채웠어요. 종료합니다.")
|
|
break
|
|
loop += 1
|
|
ts = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
|
print(f"\n[{ts}] 🤖 {loop}회차 트렌드 스나이핑")
|
|
try:
|
|
subprocess.run([sys.executable, SNIPER_PATH], check=False)
|
|
except Exception as e:
|
|
print(f"❌ 실행 실패: {e}")
|
|
print(f"⏳ 다음 실행: {interval_h}시간 후")
|
|
time.sleep(interval_h * 3600)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|