Houlala, j'aurais mieux fait de me taire, moi
Il n'y a pas de cahier des charges, parce que j'en suis plus ou moins à valider le fonctionnement.
Cependant il y avait une description des specs fonctionnelles de winaptic ici
http://www.framakey.org/Winaptic/Index
Donc, je reprends plus tranquillement :
1. l'objectif, c'est d'avoir un synaptic-like pour windows, téléchargeant des .zip et déposant les fichiers décompréssés dans un dossier donné.
2. pour des raisons ergonomique, il faut présenter à l'utilisateur une interface lui permettant d'accéder rapidement à ce qui a été téléchargé.
3. pour la partie 1, je pense utiliser AppSnap (lien plus haut), qui gère assez bien le téléchargement depuis un dépot FK
4. pour la partie 2, on peut gérer soit par une appli externe (exemple : asuite) soit en modifiant AppSnap (libre évidemment, en python que je ne connais pas,
ce qui ne m'a pas empêché de demander au développeur)
5. ce qu'il manque, c'est la partie qui fait en sorte que si l'utilisateur à téléchargé par exemple PortableAudacity via AppSnap, il va le retrouver dans aSuite (ou dans AppSnap)
Par rapport à l'outil dont je parlais, prenons un cas d'utilisation.
J'ai au départ 3 dossiers
- Code: Tout sélectionner
/fk
|-/appsnap
|-/asuite
|-/apps
Je lance fk/appsnap/AppSnap.exe
Il se connecte au dépot FK et me propose de télécharger des applis, dont portableAudacity et portableFirefox. Je coche les 2, je valide. Le téléchargement se fait (2 fichiers .zip), les fichiers sont dézippés dans /fk/apps/portableFirefox et /fk/apps/portableAudacity.
Vous suivez ?
Jusque là, tout va bien, AppSnap fait ça très bien.
Maintenant, notre utilisateur lance aSuite, dont le role est de lui proposer une interface d'accès rapide aux applications.

Problème : aSuite est alors vide, et l'utilisateur doit ajouter les applications manuellement. C'est faisable, mais rébarbatif.
Solution : créer un logiciel qui :
1. balaye le dossier /fk/apps
2. dans chaque dossier, repère un fichier .xml (ou .ini ou autre) qui contient les informations de l'application (description courte, desc longue, catégorie du logiciel, nom de l'exe, chemin de l'icone. Au minimum). Par exemple /fk/apps/portableFirefox/portableFirefox.xml. Et qui le stocke en mémoire.
3. ouvre /fk/asuite/config.xml qui ressemble à ça :
- Code: Tout sélectionner
<ASuite Version="1.5">
<Category>
<Category name="Contenus">
<Software name="Video Compiz/fusion">
<PathCache>cache\1.ico</PathCache>
<PathExe>$Drive\framatour_demo\PortableVLC\PortableVLC.exe</PathExe>
<Parameters>$Drive\framatour_demo\contenus\videos\fusion.mp4</Parameters>
</Software>
</Category>
</Asuite>
4. qui cherche, dans les catégories existantes, s'il trouve les catégories des logiciels "scannés" auparavant, ainsi que l'entrée correspondante.
5a. si oui : OK on ne fait rien.
5b. si non : on ajoute l'info au config.xml au bon endroit. De façon à obtenir qq chose du genre :
- Code: Tout sélectionner
<ASuite Version="1.5">
<Category>
<Category name="Contenus">
<Software name="Video Compiz/fusion">
<PathCache>cache\1.ico</PathCache>
<PathExe>$Drive\fk\Apps\PortableVLC.exe</PathExe>
<Parameters>$Drive\fk\Apps\contenus\videos\fusion.mp4</Parameters>
</Software>
</Category>
<Category name="Internet">
<Software name="PortableFirefox">
<PathCache>cache\2.ico</PathCache>
<PathExe>$Drive\fk\Apps\PortableFirefox.exe</PathExe>
</Software>
</Category>
<Category name="Son">
<Software name="PortableAudacity">
<PathCache>cache\3.ico</PathCache>
<PathExe>$Drive\fk\Apps\PortableAudacity.exe</PathExe>
</Software>
</Category></Asuite>
6. on supprime les entrées du fichier config.xml qu'on n'a pas trouvée lors du balayage
Voilà pour les fonctionnalité de base
C'est plus clair.