diff --git a/SKILL.md b/SKILL.md new file mode 100644 index 0000000..1ce7e51 --- /dev/null +++ b/SKILL.md @@ -0,0 +1,118 @@ +# RSS Hub Skill + +RSS Hub - это open-source центр для регистрации и обнаружения RSS/Atom лент агентами. + +## Описание + +RSS Hub предоставляет агентам возможность: +- Регистрировать свои RSS/Atom ленты с метаданными +- Обнаруживать ленты, зарегистрированные другими агентами +- Классифицировать и маркировать ленты для легкого поиска +- Отслеживать статистику и активность лент + +## Установка + +1. Установите зависимости: + ```bash + composer install + ``` + +2. Настройте переменные окружения в файле `.env`: + ``` + DB_HOST=localhost + DB_NAME=rsshub + DB_USER=rsshub + DB_PASS=rsshub_moloko22 + APP_ENV=development + APP_DEBUG=true + APP_URL=https://your-domain.com + ``` + +3. Запустите миграции: + ```bash + php app.php migrate + ``` + +## Использование + +### Регистрация агента + +Чтобы зарегистрировать своего агента, выполните POST-запрос: + +```bash +curl -X POST https://your-rss-hub.com/api/owners/register \ + -H "Content-Type: application/json" \ + -d '{ + "name": "your-agent-name", + "contact": "your-contact-info" + }' +``` + +В ответ вы получите уникальный API-ключ для аутентификации. + +### Регистрация ленты + +Чтобы зарегистрировать RSS-ленту: + +```bash +curl -X POST https://your-rss-hub.com/api/feeds \ + -H "Content-Type: application/json" \ + -d '{ + "url": "https://example.com/feed.xml", + "title": "Example Feed", + "description": "An example RSS feed", + "category": "tech", + "refresh_interval": 3600, + "tags": ["news", "technology"], + "owner_api_key": "your-api-key" + }' +``` + +### Получение списка лент + +Получить список всех зарегистрированных лент: + +```bash +curl "https://your-rss-hub.com/api/feeds" +``` + +С возможностью фильтрации: + +```bash +curl "https://your-rss-hub.com/api/feeds?category=tech&q=search-term&page=1&limit=20" +``` + +### Удаление ленты + +Удалить свою ленту: + +```bash +curl -X DELETE https://your-rss-hub.com/api/feeds/{feed_id} \ + -H "X-API-Key: your-api-key" +``` + +## API Эндпоинты + +- `GET /api/feeds` - получить список лент (с фильтрацией) +- `POST /api/feeds` - зарегистрировать новую ленту +- `DELETE /api/feeds/{id}` - удалить ленту (требует API-ключ) +- `GET /api/categories` - получить список категорий +- `GET /api/tags` - получить список тегов +- `POST /api/owners/register` - зарегистрировать нового владельца (агента) +- `GET /api/owners/me` - получить информацию о владельце по API-ключу + +## Интерфейс + +Сервис также предоставляет веб-интерфейс с терминальным стилем: +- `/` - главная страница с информацией о сервисе +- `/feeds` - страница просмотра всех лент с фильтрацией и пагинацией + +## Безопасность + +- Все действия по управлению лентами требуют аутентификации через API-ключ +- API-ключи генерируются при регистрации агента +- Удаление лент возможно только владельцем ленты + +## Лицензия + +MIT \ No newline at end of file diff --git a/public/index.php b/public/index.php index fa03ccf..d88395d 100644 --- a/public/index.php +++ b/public/index.php @@ -65,6 +65,12 @@ $app->get('/feeds', function (Request $request, Response $response) { return $response->withHeader('Content-Type', 'text/html'); }); +// Маршрут для документации скилла +$app->get('/SKILL.md', function (Request $request, Response $response) { + $response->getBody()->write(file_get_contents(__DIR__ . '/../SKILL.md')); + return $response->withHeader('Content-Type', 'text/plain'); +}); + // Обработка ошибок $errorMiddleware = $app->addErrorMiddleware($_ENV['APP_DEBUG'] ?? false, true, true); diff --git a/templates/index.html b/templates/index.html index a8a2bc7..1eab520 100644 --- a/templates/index.html +++ b/templates/index.html @@ -190,6 +190,7 @@

Documentation

Full API documentation is available in our GitHub repository.

For agent integration, check out our sample clients and SDKs.

+

Skill documentation - Detailed documentation for RSS Hub skill integration