Music sender api
User
L'objet user est composé comme suit : {"id":"1","pseudo":"tala","email":"tala@tala.com","id_image":null}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/user |
|
GET |
Retourne un tableau avec tous les objets utilisateur |
|
|
|
/api/user/$$ID$$
|
|
GET |
Retourne un objet utilisateur |
|
|
|
/api/user/ |
|
POST |
Crée un nouvel utilisateur et renvoie son identifiant |
|
|
|
/api/user/email/$$ID$$
|
|
PUT |
Modifie l'email du compte |
|
|
|
/api/user/password/$$ID$$
|
|
PUT |
Modifie le mot de passe du compte |
|
|
|
/api/user/$$ID$$
|
|
DELETE |
Efface l'utilisateur |
|
Genre
L'objet genre est composé comme suit : {"id": "1", "name": "Electro-Jazz"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/genre |
|
GET |
Retourne un tableau avec tous les objets genre |
|
|
|
/api/genre/$$ID$$
|
|
GET |
Retourne un objet genre |
|
|
|
/api/genre/like/$$EXPR$$
|
|
GET |
Retourne un tableau d'objets genre |
|
|
|
/api/genre |
|
POST |
Créé un nouvel objet genre |
|
|
|
/api/genre/$$ID$$
|
|
PUT |
Modifie le nom du genre |
|
|
|
/api/genre/$$ID$$
|
|
DELETE |
Efface le genre |
|
Artist
L'objet artiste est composé comme suit : {"id":"84","name":"Yolanda Be Cool & Dcup","id_image":null}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/artist |
|
GET |
Retourne un tableau avec tous les objets artiste |
|
|
|
/api/artist/$$ID$$
|
|
GET |
Retourne un objet artiste |
|
|
|
/api/artist/like/$$EXPR$$
|
|
GET |
Retourne un tableau d'objets artiste |
|
|
|
/api/artist |
|
POST |
Créé un nouvel objet artiste |
|
|
|
/api/artist/name/$$ID$$
|
|
PUT |
Modifie le nom de l'artiste |
|
|
|
/api/artist/image/$$ID$$
|
|
PUT |
Modifie l'image de l'artiste |
|
|
|
/api/genre/$$ID$$
|
|
DELETE |
Efface l'artiste |
|
Album
L'objet album est composé comme suit : {"id":"1","album":"Electro Swing Collection 1","coverId":null}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/album |
|
GET |
Retourne un tableau avec tous les objets album |
|
|
|
/api/album/$$ID$$
|
|
GET |
Retourne un objet album |
|
|
|
/api/album/artist/$$ID$$
|
|
GET |
Retourne un tableau d'objets album |
|
|
|
/api/album/genre/$$ID$$
|
|
GET |
Retourne un tableau d'objets album |
|
|
|
/api/album/like/$$EXPR$$
|
|
GET |
Retourne un tableau d'objets album |
|
|
|
/api/album |
|
POST |
Créé un nouvel objet album |
|
|
|
/api/album/name/$$ID$$
|
|
PUT |
Modifie le nom de l'album |
|
|
|
/api/album/image/$$ID$$
|
|
PUT |
Modifie l'image de l'album |
|
|
|
/api/genre/$$ID$$
|
|
DELETE |
Efface l'album |
|
Music
L'objet musique est composé comme suit : {"id":"1","title":"All Night","artists":["1"],"genres":["1"],"bitrate":"128","hit":"4","duration":"163","id_image":"1"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/music/info/$$ID$$
|
|
GET |
Retourne un objet musique au format Json |
|
|
|
/api/music/content/$$ID$$
|
|
GET |
Retourne le contenu de la musique (fichier son) |
|
|
|
/api/music/album/$$ID$$
|
|
GET |
Retourne un tableau d'objet musiques au format Json appartenant à l'album associé à l'identifiant |
|
|
|
/api/music/artist/$$ID$$
|
|
GET |
Retourne un tableau d'objet musiques au format Json dont le créateur est l'artiste associé à l'identifiant |
|
Image
L'objet image est composé comme suit : {"id": "1", "content": "/9j/4B4…T0+7RRW/2Q==","mime":"image\jpeg","hash":"0aebaad7…4f265bd"} }
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/images |
|
GET |
Retourne un tableau avec tous les objets image |
|
|
|
/api/image/info/$$ID$$
|
|
GET |
Retourne un objet image |
|
|
|
/api/image/content/$$ID$$
|
|
GET |
Retourne le contenu du fichier avec le type mime en entête |
|
|
|
/api/image |
|
POST |
Créé un nouvel objet image |
|
|
|
/api/image/$$ID$$
|
|
PUT |
Modifie l'image |
|
|
|
/api/image/$$ID$$
|
|
DELETE |
Efface l'image |
|
Device
L'objet périphérique est composé comme suit : {"name":"\/dev\/sda1","label":"MUSIC","size":"7.2 GiB","UUID":"84B9-A853","fstype":"vfat"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/device |
|
GET |
Retourne un tableau avec tous les périphériques |
|
|
|
/api/device/list/$$UUID$$
|
|
GET |
Retourne un tableau avec la liste récursive des fichiers |
|
|
|
/api/device/explore/$$UUID$$
|
|
GET |
Retourne un tableau avec la liste des fichiers et dossiers: {"directories":["Pop","Rock"],"files":["Gala - Freed From Desire.mp3","13)Jacques Your Body (Make Me Sweat)(Jcf Pitch Edit).mp3"]} |
|
|
|
/api/device/content/$$UUID$$
|
|
GET |
Retourne le contenu du fichier avec le type mime en entête |
|
|
|
/api/device/tag/$$UUID$$
|
|
GET |
Retourne un tableau contenant les tags du ou des fichiers présent dans le répertoire |
|
|
|
/api/device/size/$$UUID$$
|
|
GET |
Retourne la taille du fichiers ou répertoire |
|
|
|
/api/device/mounted |
|
GET |
Retourne un tableau avec la liste des périphériques montés |
|
|
|
/api/device/umounted |
|
GET |
Retourne un tableau avec la liste des périphériques démontés |
|
|
|
/api/device/mount/$$UUID$$
|
|
POST |
Monte le périphérique sur le système |
|
|
|
/api/device/enable/$$UUID$$
|
|
POST |
Active le montage du périphérique au démarrage du système |
|
|
|
/api/device/index/$$UUID$$
|
|
POST |
Index le répertoire ou le fichier désigné par le paramètre path |
|
|
|
/api/device/mount/$$UUID$$
|
|
DELETE |
Démonte le périphérique du système |
|
|
|
/api/device/enable/$$UUID$$
|
|
DELETE |
Désactive le montage du périphérique au démarrage du système |
|
L'objet partage est composé comme suit : {"host":"hades","share":"downloads","login":"nobody"}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/share |
|
GET |
Retourne un tableau avec tous les partages montés |
|
|
|
/api/share/list/$$HOST$$
|
|
GET |
Retourne un tableau avec la liste des partages disponibles sur l'hôte |
|
|
|
/api/share/list/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne un tableau avec la liste récursive de tous les fichiers disponibles sur le partage Attention, l'appel peut être long, surtout lorsque les partages contiennent beaucoup de fichiers |
|
|
|
/api/device/explore/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne un tableau avec la liste des fichiers |
|
|
|
/api/share/content/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne le contenu du fichier avec le type mime en entête |
|
|
|
/api/share/tag/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne un tableau contenant les tags du ou des fichiers présent dans le répertoire |
|
|
|
/api/share/size/$$HOST$$/$$SHARE$$
|
|
GET |
Retourne la taille du fichiers ou répertoire |
|
|
|
/api/share/$$HOST$$/$$SHARE$$
|
|
POST |
Monte le partage sur le système. Si aucun couple d'authentification n'est fourni, nobody sera utilisé |
|
|
|
/api/share/index/$$HOST$$/$$SHARE$$
|
|
POST |
Index le répertoire ou le fichier désigné par le paramètre path |
|
|
|
/api/share/$$HOST$$/$$SHARE$$
|
|
DELETE |
Démonte le partage du système |
|
Youtube
Permet de récupérer des informations sur les vidéo Youtube
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/youtube/info/$$ID$$
|
|
GET |
Récupère des informations sur la vidéo Youtube. Voici un exemple: { "url":"https:\/\/www.youtube.com\/watch?v=eVGrSCrRiy8", "cover":"https:\/\/i.ytimg.com\/vi\/eVGrSCrRiy8\/maxresdefault.jpg", "author":"ElectroDanceMixes", "title":"FESTIVAL MIX - Best EDM & Electro House Dance Party Mix 2018", "id":"eVGrSCrRiy8", "videos":["..."] } |
|
|
|
/api/youtube/cover/$$ID$$
|
|
GET |
Récupère la pochette de la vidéo |
|
|
|
/api/youtube/listen/$$ID$$
|
|
GET |
Récupère le contenu de la vidéo |
|
Player
Joue la musique sur la carte son du Pi (intégration VLC)
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/player/pause |
|
GET |
Met en pause la music |
|
|
|
/api/player/stop |
|
GET |
Stop la lecture |
|
|
|
/api/player/volume/$$PERCENT$$
|
|
GET |
Règle le volume du lecteur |
|
|
|
/api/player/device/$$UUID$$
|
|
POST |
Joue le fichier désigné par path sur le périphérique UUID |
|
|
|
/api/player/share/$$HOST$$/$$SHARE$$
|
|
POST |
Joue le fichier désigné par path sur le partage SHARE sur l'hôte HOST |
|
|
|
/api/player/youtube/$$ID$$ |
|
POST |
Joue le son de la vidéo, quand c'est possible (certaines vidéos ne fonctionnent pas) |
|
|
|
/api/player/url |
|
POST |
Joue le fichier |
|
Indexer (WIP)
Permet d'avoir des informations sur les travaux d'indexation en cours. Voici un exemple:
- d'identifiant de travail → 5c2e724887be4;
- d'informations sur un travail → {"files":{"directory":"\/opt\/mount\/192.168.1.252-torrent\/\/Best of POP JCF","total":8,"current":[],"processed":8,"remaining":0,"success":[1,2,3,4,5,6,7,8],"failure":[]},"time":{"start":1546547784,"elapsed":1,"end":1546547785},"state":2}
| URL | Corps | Verbe | Action | Code retour | Implémentée |
|---|---|---|---|---|---|
|
/api/index/run |
|
GET |
Retourne la liste des identifiants des travaux en cours |
|
|
|
/api/index/info |
|
GET |
Récupère la liste des identifiants des travaux disponibles pour consultation |
|
|
|
/api/index/info/$$ID$$
|
|
GET |
Récupère les informations liées au travail désigné par $$ID$$ |
|
|
|
/api/index/run/$$ID$$
|
|
DELETE |
Stop le travail d'indexation désignè par $$ID$$ |
|
|
|
/api/index/info/$$ID$$
|
|
DELETE |
Supprime les informations liées au travail désigné par $$ID$$ |
|