﻿@echo off
chcp 65001 >nul 2>&1
setlocal EnableDelayedExpansion
title 인스타그램 수집기

set SERVER=http://influencer.leanstart.kr
:: bat 이 놓인 폴더에 그대로 내려받음(%~dp0 는 끝에 백슬래시 포함)
set "WORK_DIR=%~dp0"
set "AGENT=%WORK_DIR%collect_agent.py"
set "MOBILE=%WORK_DIR%mobile_rotate.py"

echo.
echo  =========================================
echo    인스타그램 수집기  -  SOCIAL TREND
echo  =========================================
echo.

:: ── 1. Python 확인 ─────────────────────────────────────────
echo  [1/3] Python 확인 중...
set PYTHON=

for %%p in (py python python3) do (
    if "!PYTHON!"=="" (
        %%p --version >nul 2>&1
        if !errorlevel! equ 0 set PYTHON=%%p
    )
)

if "!PYTHON!"=="" (
    echo  Python이 없습니다. 자동 설치를 시도합니다...
    echo.

    winget --version >nul 2>&1
    if !errorlevel! equ 0 (
        echo  winget 으로 Python 3.11 설치 중... ^(수 분 소요^)
        winget install Python.Python.3.11 -e --silent ^
            --accept-package-agreements --accept-source-agreements
        for /f "delims=" %%i in ('where py 2^>nul') do if "!PYTHON!"=="" set PYTHON=py
        for /f "delims=" %%i in ('where python 2^>nul') do if "!PYTHON!"=="" set PYTHON=python
    )

    if "!PYTHON!"=="" (
        echo.
        echo  [!] 자동 설치 실패. 아래 페이지에서 직접 설치 후 다시 실행하세요.
        echo      https://www.python.org/downloads/
        echo      설치 시 "Add Python to PATH" 를 반드시 체크하세요!
        echo.
        start https://www.python.org/downloads/
        goto :fail
    )
    echo  Python 설치 완료
) else (
    for /f "delims=" %%v in ('!PYTHON! --version 2^>^&1') do echo  %%v 확인됨
)

:: ── 2. 수집기 스크립트 다운로드 ────────────────────────────
echo.
echo  [2/3] 수집기 다운로드 중...
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "Invoke-WebRequest -Uri '%SERVER%/download/agent' -OutFile '%AGENT%' -UseBasicParsing" ^
    >nul 2>&1
if %errorlevel% neq 0 (
    echo  [!] 다운로드 실패. 인터넷 연결 및 서버 주소를 확인하세요.
    echo      서버: %SERVER%
    goto :fail
)

:: IP 로테이션 도구도 함께 받음(선택 — 안드로이드 4G 프록시용). 실패해도 진행.
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
    "Invoke-WebRequest -Uri '%SERVER%/download/mobile_rotate' -OutFile '%MOBILE%' -UseBasicParsing" ^
    >nul 2>&1
if %errorlevel% equ 0 (
    echo  IP 로테이션 도구: %MOBILE%
) else (
    echo  [i] IP 로테이션 도구 생략 ^(없어도 수집은 동작^)
)
echo  다운로드 완료

:: ── 3. 라이브러리 설치 ─────────────────────────────────────
echo.
echo  [3/3] 필요 라이브러리 설치 중...
!PYTHON! -m pip install selenium requests pystray Pillow --quiet --upgrade
if %errorlevel% neq 0 (
    echo  [!] 라이브러리 설치 실패. 관리자 권한으로 실행해 보세요.
    goto :fail
)
echo  설치 완료

:: ── 실행 (업데이트 시 자동 재시작) ──────────────────────────
echo.
echo  수집기를 시작합니다...
echo  ^(앱의 '업데이트' 버튼을 누르면 최신본으로 자동 재시작됩니다. 이 창은 그대로 두세요^)

:: pythonw 가 있으면 파이썬 콘솔 없이 실행(이 창은 재시작 감시용으로 유지)
set PYTHONW=!PYTHON!
for /f "delims=" %%i in ('where pythonw 2^>nul') do set PYTHONW=%%i

:run
"!PYTHONW!" "%AGENT%"
if !errorlevel! equ 42 (
    echo  업데이트 적용됨 - 재시작 중...
    goto run
)
goto :end

:fail
echo.
pause
exit /b 1

:end
