주요 추가 기능: - bots/shorts/ 서브모듈 7개: tts_engine, script_extractor, asset_resolver, stock_fetcher, caption_renderer, video_assembler, youtube_uploader - bots/shorts_bot.py: 6단계 Shorts 파이프라인 오케스트레이터 (auto/semi_auto 두 가지 생산 모드, CLI 지원) - bots/writer_bot.py: 독립 실행형 AI 글쓰기 봇 (대시보드 연동) - bots/assist_bot.py: URL 기반 수동 어시스트 파이프라인 - config/shorts_config.json: Shorts 전체 설정 - templates/shorts/extract_prompt.txt: LLM 스크립트 추출 프롬프트 - scheduler.py에 shorts 잡(10:35/16:00) + /shorts Telegram 명령 추가 보안 개선: - .env 파일 외부 경로 참조로 변경 (load_dotenv dotenv_path, 24개 파일) - .gitignore에 민감 파일/내부 문서/런타임 데이터 항목 추가 문서: - README.md 전면 재작성 (상세 한글 설명, 설치/설정/사용법 포함) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
100 lines
3.7 KiB
Batchfile
100 lines
3.7 KiB
Batchfile
@echo off
|
|
echo ========================================
|
|
echo Blog Engine Setup
|
|
echo ========================================
|
|
|
|
REM Create Python venv
|
|
python -m venv venv
|
|
if errorlevel 1 (
|
|
echo [ERROR] Failed to create Python venv. Please install Python 3.11+
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM Install packages
|
|
call venv\Scripts\activate
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
if errorlevel 1 (
|
|
echo [ERROR] Package installation failed.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
REM Copy .env file if not exists
|
|
if not exist .env (
|
|
copy .env.example .env
|
|
echo [OK] .env file created. Please fill in your API keys: .env
|
|
)
|
|
|
|
REM Create data directories
|
|
if not exist data\topics mkdir data\topics
|
|
if not exist data\collected mkdir data\collected
|
|
if not exist data\discarded mkdir data\discarded
|
|
if not exist data\pending_review mkdir data\pending_review
|
|
if not exist data\published mkdir data\published
|
|
if not exist data\analytics mkdir data\analytics
|
|
if not exist data\images mkdir data\images
|
|
if not exist data\drafts mkdir data\drafts
|
|
if not exist data\originals mkdir data\originals
|
|
if not exist data\outputs mkdir data\outputs
|
|
if not exist data\assist mkdir data\assist
|
|
if not exist data\assist\sessions mkdir data\assist\sessions
|
|
if not exist data\assist\inbox mkdir data\assist\inbox
|
|
if not exist data\novels mkdir data\novels
|
|
if not exist logs mkdir logs
|
|
if not exist config\novels mkdir config\novels
|
|
if not exist data\shorts mkdir data\shorts
|
|
if not exist data\shorts\scripts mkdir data\shorts\scripts
|
|
if not exist data\shorts\clips mkdir data\shorts\clips
|
|
if not exist data\shorts\tts mkdir data\shorts\tts
|
|
if not exist data\shorts\captions mkdir data\shorts\captions
|
|
if not exist data\shorts\rendered mkdir data\shorts\rendered
|
|
if not exist data\shorts\published mkdir data\shorts\published
|
|
if not exist assets\characters\zero\expressions mkdir assets\characters\zero\expressions
|
|
if not exist assets\characters\zero\poses mkdir assets\characters\zero\poses
|
|
if not exist assets\characters\bao\expressions mkdir assets\characters\bao\expressions
|
|
if not exist assets\characters\bao\poses mkdir assets\characters\bao\poses
|
|
if not exist assets\characters\bao\scarves mkdir assets\characters\bao\scarves
|
|
if not exist assets\backgrounds\fourth_path mkdir assets\backgrounds\fourth_path
|
|
if not exist assets\backgrounds\tech_blog mkdir assets\backgrounds\tech_blog
|
|
if not exist assets\bgm mkdir assets\bgm
|
|
if not exist input\images mkdir input\images
|
|
if not exist input\videos mkdir input\videos
|
|
if not exist input\scripts mkdir input\scripts
|
|
if not exist input\audio mkdir input\audio
|
|
if not exist input\_processed mkdir input\_processed
|
|
if not exist templates\shorts mkdir templates\shorts
|
|
|
|
REM Download fonts (Noto Sans KR for card/shorts converter)
|
|
echo [INFO] Downloading fonts...
|
|
venv\Scripts\python.exe scripts\download_fonts.py
|
|
|
|
REM Register scheduler.py in Windows Task Scheduler (blog.cmd 경유)
|
|
set BLOG_CMD=%~dp0blog.cmd
|
|
set PYTHON_PATH=%~dp0venv\Scripts\pythonw.exe
|
|
|
|
schtasks /query /tn "BlogEngine" >nul 2>&1
|
|
if errorlevel 1 (
|
|
schtasks /create /tn "BlogEngine" /tr "\"%BLOG_CMD%\" scheduler" /sc onlogon /rl highest /f
|
|
echo [OK] BlogEngine registered in Windows Task Scheduler (blog scheduler)
|
|
) else (
|
|
echo [INFO] BlogEngine task already registered.
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Setup Complete!
|
|
echo ========================================
|
|
echo.
|
|
echo Next steps:
|
|
echo 1. Open .env and fill in all API keys
|
|
echo 2. Run scripts\get_token.py to get Google OAuth token
|
|
echo (Blogger + Search Console + YouTube OAuth)
|
|
echo 3. Update BLOG_MAIN_ID in .env with your Blogger blog ID
|
|
echo 4. Start scheduler: blog scheduler
|
|
echo 5. Start dashboard: blog server (http://localhost:8080)
|
|
echo 6. CLI status check: blog status
|
|
echo.
|
|
pause
|