feat/insta-design-importer #7

Merged
gahusb merged 11 commits from feat/insta-design-importer into main 2026-05-18 00:28:53 +09:00
3 changed files with 5 additions and 2 deletions
Showing only changes of commit 15f24dc890 - Show all commits

View File

@@ -103,6 +103,7 @@ services:
- YOUTUBE_DATA_API_KEY=${YOUTUBE_DATA_API_KEY:-} - YOUTUBE_DATA_API_KEY=${YOUTUBE_DATA_API_KEY:-}
- INSTA_DATA_PATH=/app/data - INSTA_DATA_PATH=/app/data
- CARD_TEMPLATE_DIR=/app/app/templates - CARD_TEMPLATE_DIR=/app/app/templates
- INSTA_DEFAULT_THEME=${INSTA_DEFAULT_THEME:-default}
- CORS_ALLOW_ORIGINS=${CORS_ALLOW_ORIGINS:-http://localhost:3007,http://localhost:8080} - CORS_ALLOW_ORIGINS=${CORS_ALLOW_ORIGINS:-http://localhost:3007,http://localhost:8080}
volumes: volumes:
- ${RUNTIME_PATH}/data/insta:/app/data - ${RUNTIME_PATH}/data/insta:/app/data

View File

@@ -11,6 +11,7 @@ INSTA_DATA_PATH = os.getenv("INSTA_DATA_PATH", "/app/data")
DB_PATH = os.path.join(INSTA_DATA_PATH, "insta.db") DB_PATH = os.path.join(INSTA_DATA_PATH, "insta.db")
CARDS_DIR = os.path.join(INSTA_DATA_PATH, "insta_cards") CARDS_DIR = os.path.join(INSTA_DATA_PATH, "insta_cards")
CARD_TEMPLATE_DIR = os.getenv("CARD_TEMPLATE_DIR", "/app/app/templates") CARD_TEMPLATE_DIR = os.getenv("CARD_TEMPLATE_DIR", "/app/app/templates")
INSTA_DEFAULT_THEME = os.getenv("INSTA_DEFAULT_THEME", "default")
CORS_ALLOW_ORIGINS = os.getenv( CORS_ALLOW_ORIGINS = os.getenv(
"CORS_ALLOW_ORIGINS", "http://localhost:3007,http://localhost:8080" "CORS_ALLOW_ORIGINS", "http://localhost:3007,http://localhost:8080"

View File

@@ -14,6 +14,7 @@ from pydantic import BaseModel
from .config import ( from .config import (
CORS_ALLOW_ORIGINS, NAVER_CLIENT_ID, ANTHROPIC_API_KEY, CORS_ALLOW_ORIGINS, NAVER_CLIENT_ID, ANTHROPIC_API_KEY,
INSTA_DATA_PATH, DB_PATH, DEFAULT_CATEGORY_SEEDS, KEYWORDS_PER_CATEGORY, INSTA_DATA_PATH, DB_PATH, DEFAULT_CATEGORY_SEEDS, KEYWORDS_PER_CATEGORY,
INSTA_DEFAULT_THEME,
) )
from . import db, news_collector, keyword_extractor, card_writer, card_renderer, trend_collector from . import db, news_collector, keyword_extractor, card_writer, card_renderer, trend_collector
@@ -146,7 +147,7 @@ async def _bg_create_slate(task_id: str, keyword: str, category: str, keyword_id
db.update_task(task_id, "processing", 30, "카피 생성 중") db.update_task(task_id, "processing", 30, "카피 생성 중")
sid = card_writer.write_slate(keyword=keyword, category=category) sid = card_writer.write_slate(keyword=keyword, category=category)
db.update_task(task_id, "processing", 70, "카드 렌더 중") db.update_task(task_id, "processing", 70, "카드 렌더 중")
await card_renderer.render_slate(sid) await card_renderer.render_slate(sid, template=f"{INSTA_DEFAULT_THEME}/card.html.j2")
db.update_slate_status(sid, "rendered") db.update_slate_status(sid, "rendered")
if keyword_id: if keyword_id:
db.mark_keyword_used(keyword_id) db.mark_keyword_used(keyword_id)
@@ -186,7 +187,7 @@ def get_slate(slate_id: int):
async def _bg_render(task_id: str, slate_id: int): async def _bg_render(task_id: str, slate_id: int):
try: try:
db.update_task(task_id, "processing", 30, "재렌더 중") db.update_task(task_id, "processing", 30, "재렌더 중")
await card_renderer.render_slate(slate_id) await card_renderer.render_slate(slate_id, template=f"{INSTA_DEFAULT_THEME}/card.html.j2")
db.update_slate_status(slate_id, "rendered") db.update_slate_status(slate_id, "rendered")
db.update_task(task_id, "succeeded", 100, "완료", result_id=slate_id) db.update_task(task_id, "succeeded", 100, "완료", result_id=slate_id)
except Exception as e: except Exception as e: