Aller au contenu

Featured Replies

Posté(e)

Salut,

Je me suis documenté pas mal pour savoir comment faire un spk. Ça n'a pas l'air insurmontable...

J'ai toutefois des petites questions :

- quel est l'intérêt de mettre le package_icon encodé en BASE64 dans le fichier INFO (comme c'est le cas dans les spk SynoCommunity) au lieu de l'enregistrer en PACKAGE_ICON.PNG à coté du fichier INFO (comme c'est le cas pour les spk Synology) ?

- existe-t-il un exemple de spk qui ne lance pas une page web avec un port différent (genre 9091 pour transmission) mais une fenêtre ExtJS? C'est juste pour la syntaxe.

- avec le paquet Python installé, on peut faire un CGI en python ? (réponse : oui, il faut juste faire un .htaccess qui va bien)

Merci

A+

Michel

Modifié par MrWaloo

Posté(e)

Pour l'icone, de mémoire, c'est ce qui est préconisé dans le "3rd party app developper" de Synology (dispo ici)

Pour l'exemple de SPK en extJS, comme çà de tête, y'a le "shellinabox" dans le repo de missilehugger

Pour la CGI, tu t'es auto-répondu :)

Posté(e)

Je réponds dans l'ordre :

  • Pas vraiment d'intérêt, les deux méthodes ont coexistées à une époque, base64 prédominait chez Syno avant, c'est possible que maintenant ce soit la méthode PACKAGE_ICON qu'ils privilégient. Je ne sais pas. En tout cas pour le repo c'est facile à stocker en base de donnée via le base64 ;) Faut voir avec Piwi pour le repo.
  • Oui il en existe, je te recommande le SPK subliminal comme exemple, ça utilise le must en Python du moment et j'ai essayé de rendre clair le ExtJS qui ne l'est pas forcément... Je n'ai pas regardé shellinabox mais je te conseille de rester sur du "maison" SynoCommunity ;)
  • Oui, même sans .htaccess, cf le SPK subliminal.

Pour résumer, le SPK subliminal c'est :

  • Un fichier de config pour sauvegarder les paramètres utilisateurs
  • Une petite base de donnée sqlite avec une table pour stocker une liste de répertoires
  • Une interface ExtJS qui permet d'éditer tout ce beau monde
  • Un folder picker dans ExtJS pour sélectionner un dossier facilement (comme dans les SPK de Synology)
  • Un CGI protégé des intrusions exterieures grace à une authentification DSM et un contrôle sur le groupe utilisateur (restreint à administrators)

Tout ça en Python parce que ça fait un code lisible et synthétique.

Du coté des modules Python en vogue en ce moment ça utilise :

  • Flask (framework web)
  • SQLAlchemy (ORM)

Enjoy :)

Posté(e)

Honte à moi, j'avais pas du tout pensé à Subliminal ...

*part s'auto-flageller"

Posté(e)

  • Pas vraiment d'intérêt, les deux méthodes ont coexistées à une époque, base64 prédominait chez Syno avant, c'est possible que maintenant ce soit la méthode PACKAGE_ICON qu'ils privilégient. Je ne sais pas. En tout cas pour le repo c'est facile à stocker en base de donnée via le base64 ;) Faut voir avec Piwi pour le repo.

Peu importe, le dépôt supporte les deux méthodes avec une priorité sur l'icône en base64 dans le fichier INFO.

C'est-à-dire que si l'icône est définie dans le fichier INFO, le fichier PACKAGE_ICON.PNG sera ignoré.

  • Une petite base de donnée sqlite avec une table pour stocker une liste de répertoires

Pour stocker des paramètres d'application, je privilégié les fichiers JSON.

Je ne sais pas si c'est aussi transparent en Python qu'en PHP, mais en PHP c'est très simple de récupérer un fichier JSON sous forme de tableau ou d'objets imbriqués (et surtout très performant).

Modifié par PiwiLAbruti

Posté(e)
  • Auteur

Merci pour toutes ces réponses, je m'y penche prochainement

bisous ;)

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Qui est en ligne (Afficher la liste complète)

  • Il n’y a aucun utilisateur enregistré actuellement en ligne

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.