Files
Noxely/server/noxely_server/web/about.js
T
tuxgyver 53f5fc1148 Le serveur se présente, et range son jeton (2.3.0)
L'interface du serveur affichait un champ de jeton dans son en-tête, visible
en permanence alors qu'il ne sert qu'une fois : il descend dans l'onglet
Réglages, avec le nom du serveur, sa version et le nombre d'appareils
appairés.

Elle gagne surtout une page À propos sur le modèle des autres projets : cinq
sections, contenu séparé du rendu, version lue de /api/health et journal servi
depuis le CHANGELOG du dépôt — rien de recopié, donc rien qui puisse diverger.

Au passage, le serveur annonçait 1.0.0 depuis six publications ; il lit
maintenant le fichier VERSION comme le client.
2026-09-13 22:10:44 +02:00

74 lines
3.9 KiB
JavaScript

// Noxely — collecte côté serveur, écoute hors connexion côté mobile.
// Copyright © 2026 Johnny (tuxgyver)
//
// Ce programme est un logiciel libre : vous pouvez le redistribuer et le modifier
// selon les termes de la GNU General Public License, version 3 ou ultérieure,
// telle que publiée par la Free Software Foundation.
//
// Il est distribué dans l'espoir d'être utile, mais SANS AUCUNE GARANTIE.
// Voir le fichier LICENSE à la racine du dépôt pour le texte complet.
// Contenu de la page « À propos », séparé de son rendu.
// Tout ce qui est écrit ici se vérifie dans le dépôt : une fonction décrite existe, une garantie
// annoncée est tenue par du code. La version vient de /api/health, jamais recopiée.
const ABOUT = {
name: 'Noxely — serveur',
tagline: 'Il cherche, il guette, il enregistre. Le téléphone n\'a plus qu\'à écouter.',
repository: 'https://git.tuxtech.fr/tuxgyver/Noxely',
author: 'Johnny',
authorRole: 'Conception, direction et supervision',
authorship:
'Application développée avec l\'assistance de l\'IA, sous la direction et la supervision de Johnny.',
license: 'GPL v3',
copyright: 'Copyright © 2026 Johnny (tuxgyver)',
// Ce que fait le serveur, du point de vue de qui s'en sert.
features: [
['Chercher partout à la fois',
'Internet Archive, Underground (netlabels et Free Music Archive), LibriVox et Wikimedia ' +
'Commons sont interrogés en parallèle, les résultats fondus et les plus légers mis en tête.'],
['Choisir avant de télécharger',
'Un album ou un livre affiche ses pistes avec leur taille : on met en file ce qu\'on veut, ' +
'pas l\'ensemble.'],
['Guetter un morceau sur les radios',
'On nomme un titre sans désigner de station : les plus écoutées sont balayées en continu, ' +
'et l\'enregistrement part dès que l\'une le diffuse.'],
['Enregistrer un direct',
'La capture prend le nom du morceau annoncé par la station, et s\'arrête quand il cède la ' +
'place au suivant.'],
['Tenir la file',
'Les téléchargements s\'enchaînent seuls ; un échec est repris, son état reste visible.'],
['Servir le mobile',
'L\'application demande ce qui a changé depuis son dernier passage et récupère des fichiers ' +
'déjà prêts — c\'est ce qui lui épargne sa batterie.'],
],
guaranteesIntro:
'Noxely est un outil personnel : rien n\'y transite par un service tiers, et le serveur ne ' +
'répond qu\'à ce qui présente un jeton valide.',
// Chaque promesse est tenue par du code.
guarantees: [
'Aucun compte, aucune clé d\'API : les quatre catalogues et l\'annuaire radio sont publics.',
'Toute route de données exige un jeton — celui du serveur, ou celui d\'un appareil appairé ; ' +
'seuls l\'état de santé, la page et ses ressources répondent sans.',
'Chaque appareil reçoit son propre jeton : en révoquer un ne coupe pas les autres.',
'Les jetons d\'appareil ne sont jamais renvoyés par la route qui les liste.',
'L\'appairage n\'est possible que pendant une fenêtre ouverte depuis cette interface, deux ' +
'minutes durant, une seule fois, et depuis le réseau local uniquement.',
'Les catalogues ne proposent que des œuvres libres ou du domaine public ; les éléments en ' +
'accès restreint sont écartés avant même d\'être affichés.',
'Une synchronisation partielle ne fait pas avancer le curseur du client : rien n\'est perdu.',
],
// Couche → outils.
stack: [
['Service', 'Python, FastAPI, uvicorn, unité systemd'],
['Données', 'SQLite pour l\'index, fichiers sur disque pour les médias'],
['Collecte', 'httpx asynchrone, flux ICY pour les titres de radio'],
['Catalogues', 'Internet Archive, netlabels, LibriVox, Wikimedia Commons'],
['Interface', 'HTML, CSS et JavaScript sans dépendance'],
['Synchronisation', 'HTTP avec jeton, curseur incrémental côté client'],
],
};