Metadata-Version: 2.4
Name: fastpluggy-brain
Version: 0.9.100
Summary: FastPluggy plugin to receive iOS Shortcut share payloads and store them in DB
Author: FastPluggy Team
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: FastPluggy>=0.4.33
Requires-Dist: fastapi
Requires-Dist: sqlalchemy>=2.0
Requires-Dist: pydantic>=2.0
Requires-Dist: httpx>=0.24
Requires-Dist: yt-dlp
Requires-Dist: gallery-dl
Requires-Dist: Pillow
Requires-Dist: opencv-python-headless
Requires-Dist: numpy
Requires-Dist: python-multipart
Requires-Dist: markdown>=3.4
Requires-Dist: fastpluggy-tasks-worker<1,>=0.3.284
Requires-Dist: fastpluggy-git-tools<1,>=0.6.2
Requires-Dist: mcp<2,>=1.28.0
Provides-Extra: tests
Requires-Dist: pytest>=7.0; extra == "tests"
Requires-Dist: pytest-cov>=4.0; extra == "tests"
Requires-Dist: pytest-asyncio>=0.21; extra == "tests"
Provides-Extra: e2e
Requires-Dist: fastpluggy-cli; extra == "e2e"
Requires-Dist: uvicorn[standard]; extra == "e2e"

# FastPluggy Send To Brain

[![pipeline status](https://gitlab.ggcorp.fr/open/fastpluggy/private_plugins/brain/badges/main/pipeline.svg)](https://gitlab.ggcorp.fr/open/fastpluggy/private_plugins/brain/-/pipelines)
[![coverage report](https://gitlab.ggcorp.fr/open/fastpluggy/private_plugins/brain/badges/main/coverage.svg)](https://gitlab.ggcorp.fr/open/fastpluggy/private_plugins/brain/-/commits/main)
[![release](https://gitlab.ggcorp.fr/open/fastpluggy/private_plugins/brain/-/badges/release.svg)](https://gitlab.ggcorp.fr/open/fastpluggy/private_plugins/brain/-/releases)

Plugin minimal pour recevoir un payload depuis un raccourci iOS et le stocker en base.

## Endpoint principal

```http
POST /api/share
Content-Type: application/json
```

Payload exemple envoyé par Raccourcis iOS :

```json
{
  "content": "https://www.instagram.com/...",
  "date": "2026-06-07",
  "device": "iPhone de Jerome",
  "source_app": "Shortcuts"
}
```

Réponse :

```json
{
  "success": true,
  "message": "Ajouté à Brain",
  "id": 1
}
```

## Endpoints utiles

```http
GET /api/shares
GET /api/share/{id}
GET /api/search?q=...        # recherche mot-clé (contenu + extractions)
```

### Recherche

`GET /api/search` cherche un mot-clé dans le `content` des shares **et** dans le
texte des extractions (OCR, transcript, metadata, résumé, remarque) et renvoie
les shares correspondants, classés, avec un extrait. Mots-clés uniquement — pas
de synthèse LLM (le mode `think` viendra plus tard). Paramètres : `q` (requis),
`limit`, `offset`, `status` (par défaut : tout sauf `dropped`), `kind` (restreint
le type d'extraction). La page liste de l'UI a aussi un champ de recherche. Voir
brain#12.

## Installation rapide

Copie le dossier `send_to_brain/` dans `domains/` ou `plugins/` selon ton layout FastPluggy.

Si ton import de DB n'est pas `fastpluggy.database`, adapte dans :

- `send_to_brain/models.py`
- `send_to_brain/router.py`

## Raccourci iOS

Dans l'action **Obtenir le contenu de l'URL** :

- URL : `https://brain.lab/api/share`
- Méthode : `POST`
- Corps : `JSON`

Champs :

- `content` = Entrée de raccourci
- `date` = Date actuelle
- `device` = Détails de l'appareil

Ensuite, lis la clé `success` dans la réponse JSON pour afficher une notification différente.
