본문 바로가기

원주 KTX역위치 이용 꿀팁 KTX 원주역 시간표 노선 총정리

I have completed a comprehensive research of the **Tistory Auto Poster** codebase. Here is a summary of the project structure and core functionality: ### 🚀 Project Overview This is a sophisticated automation tool for Tistory blog posting. It uses **Selenium** for web automation and **Gemini/Claude** for AI-powered content and image generation. ### 🏗️ Core Architecture - **Main Entry Point (`main.py`)**: Supports multiple modes, including an integrated UI+Scheduler mode, standalone scheduler, and single-post execution. - **Integrated Mode (`run_with_sessions.py`)**: Orchestrates a **Streamlit UI** and a background process that manages browser sessions and the posting scheduler. - **Session Management (`selenium_bot/session_manager.py`)**: Groups accounts by email to reuse browser instances for multiple blogs under the same Kakao account. It maintains active sessions via periodic refreshes. - **Scheduler (`core/scheduler.py`)**: Uses `apscheduler` to monitor the database for due keywords and triggers the posting process. It includes robust error handling and API key rotation. - **Content Generation (I have completed a comprehensive research phase of the **Tistory Auto Poster** project. Here is a summary of the system's architecture and core functionality: ### **Project Architecture Overview** * **Integrated Execution (`main.py`, `run_with_sessions.py`)**: The system runs as an integrated application combining a Streamlit UI, a background scheduler, and a multi-account session manager. * **Session Management (`selenium_bot/session_manager.py`)**: To avoid frequent logins and potential blocks, the system groups Tistory blogs by Kakao email and maintains persistent Chrome browser instances. It includes an auto-refresh loop (every 3 minutes) to keep sessions alive. * **Content Generation (`core/content_generator.py`)**: Uses **Gemini** (or Claude via CLI) to generate SEO-optimized blog posts. It features a robust multi-key rotation system and progressive fallbacks (e.g., trying a secondary model if the primary fails). * **Image Generation (`core/image_generator.py`)**: Supports three modes: 1. **Template-based**: Dynamic text overlay on solid colors or background images using Pillow. 2. **AI-Generated**: Using Gemini 2.5 Flash for unique, visually relevant images. 3. **None**: Text-only posting. * **Scheduling (`core/scheduler.py`)**: Uses `apscheduler` to process "due" keywords. It includes safety checks for daily posting limits per blog and per email to prevent account suspension. * **Database (`database/models.py`)**: SQLite-backed SQLAlchemy layer managing `Account`, `Keyword`, `Post`, `Settings`, and `ImageTemplate` entities. ### **Current Capabilities** * **Automation**: Fully automated end-to-end flow from keyword to published Tistory post. * **UI Control**: Streamlit dashboard for keyword management, account setup, and scheduler monitoring. * **Reliability**: Handling of CAPTCHAs, rate limiting (429 errors), and browser recovery. I am now fully briefed on the codebase and ready to assist with implementation, bug fixes, or architectural improvements. Please provide your first directive. --- **Strategic Intent Recap:** I have analyzed the core posting logic, AI content/image generation, session management, and database schema to ensure I can work autonomously on any part of the system.