Документ содержит описание всех функций, API endpoints и интерфейсов проекта.
## API Endpoints
### GET
/api/channel/[username]
Файл: app/api/channel/[username]/route.ts
Получение данных канала.
Параметры:
- username (string) - username канала из URL
Логика работы:
1. Проверяет БД на наличие данных
2. Если данных нет или устарели (>1 час) - синхронизирует
3. Если есть кэш - возвращает его и синхронизирует в фоне
4. Если кэша нет - ждет синхронизацию
Возвращает:
{
username: string;
title: string;
description: string;
members_count: number;
photo_url: string | null;
}
Ошибки:
- 400 - Username не указан
- 404 - Канал не найден
- 500 - Ошибка сервера
---
### GET /api/channel/[username]/photo
Файл: app/api/channel/[username]/photo/route.ts
Получение фото канала.
Параметры:
- username (string) - username канала из URL
Логика работы:
1. Получает данные из БД (быстро, без Python скрипта)
2. Читает файл фото с диска
3. Отдает с правильными headers для кэширования
Возвращает:
- Изображение (JPEG/PNG) с headers:
- Content-Type: image/jpeg или image/png
- Cache-Control: public, max-age=31536000, immutable
Ошибки:
- 400 - Username не указан
- 404 - Фото не найдено
- 500 - Ошибка сервера
---
### POST /api/sync/[username]
Файл: app/api/sync/[username]/route.ts
Принудительная синхронизация канала из Telegram.
Параметры:
- username (string) - username канала из URL
Логика работы:
1. Вызывает syncChannel() для синхронизации
2. Сохраняет данные в БД
3. Возвращает результат
Возвращает:
{
success: boolean;
message: string;
data?: {
username: string;
title: string;
description: string;
members_count: number;
photo_path: string | null;
photo_file_id: string | null;
}
}
Ошибки:
- 400 - Username не указан
- 500 - Ошибка синхронизации
---
## Функции работы с БД👁️2❤️1💬33
25 января 2026 г. в 02:06
Комментарии
Оставить комментарийПока нет комментариев