Commit Graph

5 Commits

Author SHA1 Message Date
Alexey Pavlov e5e7e9ef98 feat: categories table, API, category field in articles 2026-05-31 14:43:27 +03:00
Alexey Pavlov d17d8334a8 feat: GET /api/articles/admin — all articles with status for admin panel 2026-05-31 14:32:48 +03:00
Alexey Pavlov 004e94db77 feat: PATCH/DELETE /api/articles/:id, GET /api/articles/id/:id 2026-05-31 14:17:59 +03:00
Alexey Pavlov c7b83147f1 feat: AI-генерация обложек + /api/stats + раздача /uploads
- services/covers.js: gpt-image-1, фиксированный стиль emerald-geometric, fallback на ошибки шлюза
- articles.generateAndSaveArticle: запускает обложку в setImmediate (не блокирует ответ)
- routes/articles: POST /backfill-covers для досгенерации
- routes/stats: статистика блога (статьи, слова, токены, просмотры)
- index.js: express.static на /uploads БЕЗ авторизации (публичные картинки)
2026-05-31 09:17:08 +03:00
Alexey Pavlov 500bb0299e feat: articles — публичный блог zeropost.ru
- БД: таблица articles (slug, title, excerpt, content, cover, tags, SEO)
- services/articles.js: slugify (ru→en транслит), reading_time, генерация со встроенным blog-channel
- routes/articles.js: GET list/tags/:slug, POST /generate
- Универсальный blogChannel со стилем для лонгридов: tone:friendly, structure:headers, без эмодзи и хэштегов
- generateAndSaveArticle: вытаскивает title из H1, генерит excerpt, считает время чтения
2026-05-31 08:45:34 +03:00