Документ содержит описание всех функций, API endpoints и интерфейсов проекта.
## API Endpoints
### GET
Файл:
Получение данных канала.
Параметры:
-
Логика работы:
1. Проверяет БД на наличие данных
2. Если данных нет или устарели (>1 час) - синхронизирует
3. Если есть кэш - возвращает его и синхронизирует в фоне
4. Если кэша нет - ждет синхронизацию
Возвращает:
Ошибки:
-
-
-
---
### GET
Файл:
Получение фото канала.
Параметры:
-
Логика работы:
1. Получает данные из БД (быстро, без Python скрипта)
2. Читает файл фото с диска
3. Отдает с правильными headers для кэширования
Возвращает:
- Изображение (JPEG/PNG) с headers:
-
-
Ошибки:
-
-
-
---
### POST
Файл:
Принудительная синхронизация канала из Telegram.
Параметры:
-
Логика работы:
1. Вызывает
2. Сохраняет данные в БД
3. Возвращает результат
Возвращает:
Ошибки:
-
-
---
## Функции работы с БД
## 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 - Ошибка синхронизации---
## Функции работы с БД
❤1
Forwarded from Вокруг Светы
Мы сняли дом на три месяца — до мая 🏡
Показала в видео рум-тур.
Заехали мы в полпервого ночи, а документы подписывали уже почти в час. Устали жутко, но проснулись — уже в новом доме, с нормальным стабильным интернетом. Это отдельный вид счастья.
Артём с утра работает.
А я сегодня без задач. Расставляю вещи, стираю вообще всё, что можно постирать, и просто отдыхаю.
И впервые за долгое время:
фокус — на себя, на здоровье, на работу, на накопления.
Дом нашли удивительно легко. Я, если честно, была в шоке, насколько здесь любят собак. После Питера кажется, что там это было бы в два раза сложнее. А здесь — у многих свои пёсы, все лояльные. Наши хозяева — вообще душки, сразу сложилось ощущение «мы на своём месте».
Снимаем за 50 тысяч в месяц.
Да, варианты были и дешевле — но там, если честно, творилась жесть: дома стоят всю зиму, люди их сдают и даже не приводят в порядок. Либо совсем крошечные пространства, либо чуть подальше — Лазаревское.
Нам повезло: уютный домик в самом Адлере. До Сириуса — 15 минут, там сейчас стоит наш автодом и ждёт.
К сожалению, поднять его сюда нельзя: резкий поворот, узкие улицы, маленький гараж. Из всех вариантов только один дом реально позволял заехать автодому — и всё. Здесь вообще очень тесно с улицами.
Но мы всё равно очень выдохнули.
Возможно, я скоро начну почаще выходить в блог. А пока — я отдыхаю. Радуюсь тому, что мы наконец-то можем быть наедине со своей семьёй, без переездов и суеты.
И когда на улице +6, а на днях обещают +10
фух 😮💨
Показала в видео рум-тур.
Заехали мы в полпервого ночи, а документы подписывали уже почти в час. Устали жутко, но проснулись — уже в новом доме, с нормальным стабильным интернетом. Это отдельный вид счастья.
Артём с утра работает.
А я сегодня без задач. Расставляю вещи, стираю вообще всё, что можно постирать, и просто отдыхаю.
И впервые за долгое время:
фокус — на себя, на здоровье, на работу, на накопления.
Дом нашли удивительно легко. Я, если честно, была в шоке, насколько здесь любят собак. После Питера кажется, что там это было бы в два раза сложнее. А здесь — у многих свои пёсы, все лояльные. Наши хозяева — вообще душки, сразу сложилось ощущение «мы на своём месте».
Снимаем за 50 тысяч в месяц.
Да, варианты были и дешевле — но там, если честно, творилась жесть: дома стоят всю зиму, люди их сдают и даже не приводят в порядок. Либо совсем крошечные пространства, либо чуть подальше — Лазаревское.
Нам повезло: уютный домик в самом Адлере. До Сириуса — 15 минут, там сейчас стоит наш автодом и ждёт.
К сожалению, поднять его сюда нельзя: резкий поворот, узкие улицы, маленький гараж. Из всех вариантов только один дом реально позволял заехать автодому — и всё. Здесь вообще очень тесно с улицами.
Но мы всё равно очень выдохнули.
Возможно, я скоро начну почаще выходить в блог. А пока — я отдыхаю. Радуюсь тому, что мы наконец-то можем быть наедине со своей семьёй, без переездов и суеты.
И когда на улице +6, а на днях обещают +10
фух 😮💨