feat(imggen): генерация картинок ИИ (FLUX.1) — ассистент, флэшкарты, редактор уроков
Бэкенд /api/imggen (status/generate, CF Workers AI, cooldown+дневной лимит). Переиспользуемый модал LS.imagePromptModal (js/imggen.js). Квантик: режим «Нарисовать» в чате (inline). Флэшкарты: кнопка «ИИ» в блоке картинки карточки. Редактор уроков: кнопка «Сгенерировать» в блоке изображения. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -160,6 +160,7 @@ app.use('/api/questions', questionRoutes);
|
||||
app.use('/api/classes', classRoutes);
|
||||
app.use('/api/assignments', assignmentRoutes);
|
||||
app.use('/api/files', fileRoutes);
|
||||
app.use('/api/imggen', require('./routes/imggen'));
|
||||
app.use('/api/tests', testRoutes);
|
||||
app.use('/api/notifications', notificationRoutes);
|
||||
app.use('/api/permissions', permissionRoutes);
|
||||
@@ -336,6 +337,7 @@ app.use('/css', express.static(path.join(frontendDir, 'css'), staticCache));
|
||||
app.use('/img', express.static(path.join(frontendDir, 'img'), staticCache));
|
||||
app.use('/avatars', express.static(path.join(__dirname, '../uploads/avatars'), { maxAge: '1d' }));
|
||||
app.use('/uploads/flashcards', express.static(path.join(__dirname, '../uploads/flashcards'), { maxAge: '7d' }));
|
||||
app.use('/uploads/generated', express.static(path.join(__dirname, '../uploads/generated'), { maxAge: '7d' }));
|
||||
app.use('/uploads/materials', express.static(path.join(__dirname, '../uploads/materials'), { maxAge: '7d' }));
|
||||
|
||||
// Redirect legacy .html URLs → clean URLs (301)
|
||||
|
||||
Reference in New Issue
Block a user