feat: upstream v3.2.1 기반으로 업그레이드 + eli 블로그 커스터마이징
- upstream sinmb79/blog-writer v3.2.1 코드 베이스 적용 - config_resolver, CLI, writer_bot, shorts pipeline 등 신규 기능 포함 - load_dotenv Windows 경로 → Docker 호환 load_dotenv() 변경 (25개 파일) - runtime_guard.py Docker 환경 bypass 추가 - config/blogs.json: eli-ai 블로그 정체성 (8개 카테고리) - config/sources.json: 38개 RSS 소스 유지 - config/engine.json: writing provider → gemini (2.5-flash) - config/safety_keywords.json: 모든 글 수동 승인 (score 101) - bots/scheduler.py: 시스템 프롬프트 eli 블로그 기준으로 업데이트 - bots/publisher_bot.py: .env refresh token OAuth 폴백 로직 추가 - requirements.txt: google-generativeai, groq 활성화 - Dockerfile + docker-compose.yml: NAS Docker 배포 설정 - CLAUDE.md: 프로젝트 메타데이터 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,7 +25,7 @@ from google.oauth2.credentials import Credentials
|
||||
from google.auth.transport.requests import Request
|
||||
from googleapiclient.discovery import build
|
||||
|
||||
load_dotenv(dotenv_path='D:/key/blog-writer.env.env')
|
||||
load_dotenv()
|
||||
|
||||
BASE_DIR = Path(__file__).parent.parent
|
||||
CONFIG_DIR = BASE_DIR / 'config'
|
||||
@@ -63,6 +63,7 @@ def load_config(filename: str) -> dict:
|
||||
|
||||
def get_google_credentials() -> Credentials:
|
||||
creds = None
|
||||
# 1) token.json 파일 우선
|
||||
if TOKEN_PATH.exists():
|
||||
creds = Credentials.from_authorized_user_file(str(TOKEN_PATH), SCOPES)
|
||||
if not creds or not creds.valid:
|
||||
@@ -70,6 +71,24 @@ def get_google_credentials() -> Credentials:
|
||||
creds.refresh(Request())
|
||||
with open(TOKEN_PATH, 'w') as f:
|
||||
f.write(creds.to_json())
|
||||
# 2) .env의 GOOGLE_REFRESH_TOKEN으로 직접 생성 (Docker 환경 대응)
|
||||
if not creds or not creds.valid:
|
||||
refresh_token = os.getenv('GOOGLE_REFRESH_TOKEN', '')
|
||||
client_id = os.getenv('GOOGLE_CLIENT_ID', '')
|
||||
client_secret = os.getenv('GOOGLE_CLIENT_SECRET', '')
|
||||
if refresh_token and client_id and client_secret:
|
||||
creds = Credentials(
|
||||
token=None,
|
||||
refresh_token=refresh_token,
|
||||
token_uri='https://oauth2.googleapis.com/token',
|
||||
client_id=client_id,
|
||||
client_secret=client_secret,
|
||||
scopes=SCOPES,
|
||||
)
|
||||
creds.refresh(Request())
|
||||
with open(TOKEN_PATH, 'w') as f:
|
||||
f.write(creds.to_json())
|
||||
logger.info("Google 인증 성공 (.env refresh token)")
|
||||
if not creds or not creds.valid:
|
||||
raise RuntimeError("Google 인증 실패. scripts/get_token.py 를 먼저 실행하세요.")
|
||||
return creds
|
||||
|
||||
Reference in New Issue
Block a user