Cette documentation vous guide pour contribuer au projet Cast Kodi.
Les outils suivants sont nécessaires pour utiliser ce projet :
- Dupliquez
(forker) le dépôt
castkodi
. - Clonez votre dépôt dupliqué :
git clone https://github.com/YOUR-USERNAME/castkodi.git
- Déplacez vous dans le répertoire du projet :
cd castkodi
- Installez les dépendances :
npm ci
- Créez un fichier dans le répertoire
src/core/scraper/
- Implémentez votre scraper pour un site Internet dans ce fichier.
- Importez votre fichier dans
src/core/scrapers.js
et ajoutez le dans la listeSCRAPERS
- Ajoutez le nouveau site supporté dans le
README
et dans les fichierslocales/*/description.tpl
- Écrivez des tests unitaires dans
test/unit/core/scraper/
et des tests d'intégration danstest/integration/scraper/
Vous pouvez installer l'extension dans les navigateurs avec les commandes suivantes :
npm run start:chromium
: déployer l'extension dans Chromium.npm run start:firefox
: déployer l'extension dans Firefox.
Vous pouvez aussi installer manuellement l'extension :
- Load an unpacked extension in Chrome.
- Sideload an extension to install and test it locally in Edge
- Temporary installation in Firefox.
Pour vérifier la qualité de votre développement, trois commandes sont disponibles :
npm run lint
: exécuter les linters (avec Metalint) pour faire une analyse statique du code source.npm run lint:fix
: exécuter les linters et corriger certains problèmes (dont le formatage).npm run lint:types
: vérifier les types avec TypeScript (et la JSDoc).
Deux types de tests sont exécutables : les tests unitaires et les tests d'intégration.
npm run test:unit
: lancer les tests unitaires (avec Mocha).npm run test:unit -- --grep foo
: lancer seulement les tests unitaires dont leur titre contientfoo
(par exemple :npm run test:unit -- --grep core/scraper/twitch.js
).npm run test:coverage
: calculer la couverture des tests unitaires (avec Stryker Mutator).npm run test:integration
: lancer les tests d'intégration.npm run test:integration -- --grep foo
: lancer seulement les tests d'intégration dont leur titre contientfoo
(par exemple :npm run test:integration -- --grep YouTube
).
Le message de commit doit suivre la spécification des Commits Conventionnels.
Les traductions dans les différentes langues se font avec Weblate.