feat/insta-design-importer #7
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user