Aller au contenu

Publier un plugin

Tout ce qu'il faut pour publier un plugin ou un thème Majic, puis ses mises à jour.

En 4 étapes

  1. 01

    Ajoutez majic.json à la racine du dépôt

    Le dépôt GitHub doit être public et vous appartenir. Le format est détaillé plus bas.
  2. 02

    Publiez une release GitHub

    Le tag doit correspondre à version (ex. v1.1.0). Joignez le paquet <id>.zip (50 Mo max) qui contient le fichier indiqué dans main. Le site lit majic.json au tag de la release et calcule l'empreinte SHA-256 du paquet.
  3. 03

    Soumettez-le

    Dans Submit Plugin, choisissez le dépôt : le site vérifie la release et pré-remplit le formulaire. Ajoutez des images, envoyez : un admin vérifie le code et les permissions avant publication.
  4. 04

    Publiez vos mises à jour

    Créez une nouvelle release avec une version plus élevée, puis cliquez sur « Proposer une mise à jour » dans My Plugins. Chaque mise à jour passe en review ; l'ancienne version reste disponible en attendant.

Le fichier majic.json

majic.json
{
  "id": "resource-advisor",
  "name": "Resource Advisor",
  "version": "1.1.0",
  "description": "Affiche l'utilisation des ressources et propose des optimisations en un clic.",
  "type": "plugin",
  "tags": ["Utilitaires"],
  "main": "dist/index.js",
  "permissions": ["ui", "storage", "notifications"],
  "majic_version": ">=1.0.0",
  "api_version": 1,
  "author": "MaitreAntho",
  "update_url": "https://example.com/api/plugins/resource-advisor/update.json"
}
ChampRequisDescription
idOuiIdentifiant unique et définitif : 3 à 40 caractères, minuscules, chiffres et tirets. Il ne peut plus changer après publication.
nameOuiNom affiché (2 à 60 caractères).
versionOuiVersion au format x.y.z. Elle doit correspondre au tag de la release (1.1.0 ou v1.1.0).
descriptionOui20 à 1000 caractères. Pré-remplit le formulaire de soumission.
typeOuiplugin ou theme. Ne peut plus changer après publication.
tagsPluginsCatégories, la première étant la principale : Interface, Utilitaires, Audio, Confidentialité, Modération, Fun.
mainOuiPoint d'entrée dans le .zip : un fichier .js (plugin) ou .css (thème).
permissionsNonCe que le plugin a le droit de faire (voir ci-dessous). Un thème ne peut en demander aucune.
majic_versionNonVersion minimale de Majic requise, ex. >=1.0.0.
api_versionNonVersion de l'API des plugins (1 par défaut).
authorNonNom affiché. L'auteur de référence reste votre compte GitHub vérifié.
update_urlNonSi présent, doit être l'adresse de mise à jour de ce site (ci-dessous). L'application ne fait confiance qu'à elle.

Permissions

Ne demandez que ce dont votre plugin a besoin : chaque permission est vérifiée en review, et une nouvelle permission dans une mise à jour est signalée aux admins.

ValeurPermet deRisque
uiModifier l'interface : Ajouter des boutons, panneaux ou styles dans Discord.Faible
notificationsNotifications : Afficher des notifications.Faible
storageStockage local : Enregistrer ses propres réglages sur l'appareil.Faible
clipboardPresse-papiers : Lire et écrire dans le presse-papiers.Moyen
networkAccès réseau : Communiquer avec des sites ou serveurs externes.Moyen
voiceAudio et voix : Traiter le son des salons vocaux (micro, sortie audio).Moyen
guilds.readLire les serveurs : Voir la liste des serveurs et salons de l'utilisateur.Moyen
messages.readLire les messages : Lire le contenu des messages des salons ouverts.Élevé
messages.sendEnvoyer des messages : Envoyer ou modifier des messages au nom de l'utilisateur.Élevé

Mises à jour automatiques

L'application interroge /api/plugins/<id>/update.json sur ce site. Seule la dernière version acceptée en review y est publiée, avec l'empreinte SHA-256 qui permet à l'application de vérifier le paquet téléchargé avant de l'installer.

GET /api/plugins/resource-advisor/update.json
{
  "*": {
    "version": "1.1.0",
    "download_url": "https://github.com/<auteur>/<depot>/releases/download/v1.1.0/resource-advisor.zip",
    "sha256": "b53b13a90ed9276cd0277b5fb0556611d1cfb8225442a3c1b0b96c16d69ebcd5",
    "size": 482113,
    "permissions": ["ui", "storage", "notifications"],
    "majic_version": ">=1.0.0",
    "api_version": 1
  }
}

Votre dépôt est prêt ?

Submit Plugin