Closed alexylem closed 8 years ago
c'est a dire ?
Qu'est-ce que tu ne comprends pas? c'est écrit dans la description. Peux-tu être un peu plus précis? Merci.
non c'est pas vraiment ce que je voulait dire... j'ai lu vite fait donc j'avais pas tout saisi... euh... ce store inclueras-t-il les dossier genre script python shell etc ?
ce serait plus pratique ainsi on pourrait envoyer la commande + le scipt...
(désolé pour le double post j'ai un bug...)
Oui mais je pense que dans un premier temps le store de limitera aux commandes inline. Donc tout ce qui peut être fait depuis le fichier de commandes. Ce qui est déjà pas mal... Je verrais comment faire pour que les utilisateurs puissent contribuer, il faudra que ca soit simple, et idéalement depuis Jarvis sans avoir de compte GitHub. Je pense malgré tout faire un système d'approbation pour éviter les mauvaises blagues...
oui je pense que ce serait bon le système d'approb.... donc du coup pas de script pour l'instant ? :+1:
Pas pour le moment mais surement à l'avenir avec un système de modules... je procède pas à pas, comme d'habitude 😄
Intéressant comme idée. Il commence à y avoir pas mal de branches au projet. Ne serait-il pas possible d'avoir un schéma ou un plan à quelque part sur le Github afin de voir ce qu'il y a à faire à moyen/long terme afin d'avoir une meilleure vision d'ensemble du projet et de voir où les efforts doivent être mis en priorité? Par exemple, tu as déjà mentionné qu'éventuellement, tu veux ajouter de la reconnaissance faciale avec OpenCV. Ce serait un truc à mettre sur le plan pour le long terme afin de voir la direction générale du projet. Il y a aussi tout ce qui est STT engine sur un serveur local et toute amélioration prévue.
Je viens de créer le ticket pour formaliser l'intégration à opencv
#56
J'utilise aussi les milestones pour classifier les demandes d'évolutions stratégiques et celles qui ne le sont pas:
C'est bon à savoir. Personnellement, je préfère les schémas, mais c'est parce que je suis visuel et que ça permet de synthétiser tout en un seul endroit :laughing:
Pour ce qui est du système de vote, Je ne pense pas que le projet soit assez avancé encore pour que ça vaille la peine. Un système de vote est bien quand tu veux ajouter des évolutions non essentielles. Actuellement, plusieurs évolutions à venir sont essentielles à mon sens.
on en est où pour ce store de commandes ?
Il semble y avoir plusieurs personnes intéressées, je mets un milestone
ok
Voici ce que je propose:
jarvis
jarvis/
jarvis.sh # jarvis program
jarvis-commands # your own commands
community-commands/ # community commands
clock_fr/ # suffix for the language
command # the command (can be multiple lines)
info # information about the command (see below)
config # (optional) user config for the command
install.sh # (for v2) for commands needing additional software
Fichier command
*QUELLE HEURE*==say "il est `date +%H:%M`"
Fichier info
description="Donne l'heure qu'il est"
example="
you: S'il te plaît quelle heure est-il?
jarvis: Il est 9h00
"
authors="alexylem" # comma-separated list of contributors
url="https://github.com/alexylem/jarvis/issues/XX"
- Start Jarvis
- Commands
- Store
- Installed commands # list commands install (to uninstall)
- Search # search commands by keyword
- Browse # browse commands (list all or by category?)
- Publish # publish a command on the store
❓ A discuter:
J'ai aussi pensé à faire un site web complètement custo (html / javascript / php / mysql) avec une api pour s'intégrer avec jarvis (à la google play store). Mais cela me prendrait plus de temps, il faudrait faire un autre système de compte (sauf s'intégrer avec git), et payer un hébergement... Donc je pense que pour commencer c'est une bonne approche.
Je pense que la clé du succès sera la facilité pour les utilisateurs de partager leurs commandes, donc je travaillerai sur le "Publish" pour permettre à n'importe qui de publier de nouvelles commandes, sans pour autant connaître les pulls request de git (ca sera donc un "wizard").
Vous en pensez quoi?
Ça semble un bon plan de match. Je ne vois rien à redire pour l'instant.
Je rencontre déjà une difficulté sur la fonction de partage de nouvelle commande. Je ne suis pas un expert GitHub mais j'ai l'impression qu'on ne peut pas soumettre de pull request à partir d'un clone local. Apparemment ca se fait depuis un fork. Le problème est qu'aujourd'hui la procédure d'installation de jarvis se fait via un clone, et la mise à jour automatique via un pull. Il faudrait donc que je change la procédure d'installation pour faire un fork et changer le système de mise à jour. Ce qui m'embête aussi est que pour le fork cela nécessite beaucoup plus d'étapes (notamment sur le site) ainsi que la création d'un compte git, d'une clé ssh, etc... Du coup je me demande si c'est la bonne approche (la plupart des utilisateurs de jarvis ne savent même pas ce qu'est git). 😞 edit: d'ailleurs je réalise que ceux qui ont fait un fork (15) n'ont pas bénéficié des mises à jour, mais bon ils doivent savoir comment synchroniser depuis le repo d'origine...
J'ai réalisé que github permettait de directement créer un fichier sur le repo d'un autre. Il fait le fork automatiquement: https://github.com/alexylem/jarvis/new/master Il suffit de choisir un nom et le bouton commit créer automatiquement le pull request: Si j'arrive à tout regrouper dans un seul fichier, ca pourrait être une possibilité. Donc la contribution et la création du fichier se ferait depuis GitHub.
Autre piste: je laisse le clone pour tout le monde, et pour ceux qui veulent contribuer, je fais un script qui génère un fork et le clone en local (nouveau dossier jarvis-fork
) afin qu'y copier le dossier de la commande que l'utilisateur souhaite partager (depuis son clone), et soumet un pull request.
D'autres idées?
Bon après avoir mûrement réfléchi 2 minutes 😄 je pense que je vais commencer comme ca:
Dans le store du programme jarvis, il y aura un wizard Publish qui permettra de publier une commande sur le store.
Le wizard demandera le nom, la langue, la description, la commande, un exemple d'utilisation, un URL, etc... ensuite compilera le tout dans un fichier special avec une extension spécifique (ex: clock_fr.command
). Il donnera ensuite le lien à cliquer pour créer une command sur le repo de GitHub et le contenu du fichier à copier coller. C'est en cliquant sur ce lien que l'utilisateur pour créer si nécessaire un compte GitHub.
Ca me semble être le moins pire d'un point de vue expérience utilisateur. Vous en pensez quoi? D'autres idées les experts GitHub?
Je ne connais pas assez bien Github pour t'aiguiller, mais le fait de séparer les nouvelles commandes dans chaque fichier est une bonne piste et permettra de débugger facilement en cas de besoin. Est-ce que Jarvis peut lire plusieurs fichiers de command ou il faut agréger toutes les commandes dans un fichier unique ?
Oui j'agrègerai vos propres commandes (menu Commands) et les commandes installées depuis le store. J'attends vos feedback sur la question suivante posée plus haut:
Lorsqu'un utilisateur "installe" une commande, soit je l'"inclue" à la liste des commandes de l'utilisateurs, soit je la "copie". Si je l'"inclue" il aura le droit automatiquement aux mises à jour et améliorations de la commande. Si je la "copie" il pourra la modifier en local à sa guise (ex: la traduire ou améliorer son texte). J'attends vos retours.
J'ai créé une procédure sur le wiki pour soumettre des commandes sur le store. Elle n'est bien sûr pas publique (le store n'existe pas encore). https://github.com/alexylem/jarvis/wiki/store Pouvez-vous la revoir et me dire si ca vous semble assez simple? Je ne vois pas encore trop comment je vais pouvoir gérer les notes & avis (et surtout les afficher dans le store depuis Jarvis). J'y réfléchis toujours... Sinon il y a toujours la solution complètement customizée... (sans passer par GitHub)
Bonjour, et bravo pour ton travail. J'ai développé une première version d'un plugin permettant de contrôler sa liveboxtv grâce à jarvis. (je me suis basé sur le plugin élaboré pour SARAH). Bref, le plugin comprend donc des commandes à ajouter mais utilise également un script. Juste pour clarifier un détail, cette procédure n'est pas le système de plugin? Juste des suggestions d'ajout de commandes natives? N'hésite pas à me dire si la structure du plugin est correcte. Plugin jarvis liveboxtv_fr: https://github.com/Erim32/liveboxtv_fr/
Salut Alexandre,
Bravo pour ton travail que je découvre aujourd'hui. La procédure de création de nouvelle commande me parait bien décrite, et je pense que les utilisateurs de jarvis sont suffisament à l'aise avec Git / Github pour la comprendre :)
Bonne continuation. Nicolas.
Bon je pense que je vais repartir sur mon idée d'origine avec une structure de dossier. L'idée du fichier consolidée est trop limitée. J'ai pris le postulat que ceux qui contribueront (contrairement à ceux qui utiliseront) seront un minimum calés en GitHub... J'ai mis à jour la procédure détaillée pour publier un plugin sur le store: https://github.com/alexylem/jarvis/wiki/store
@Erim32 il te faut suivre la procédure ci-dessus (ne créé pas de nouveau repo)
Tu peux te passer du fichier liveboxtv.sh
ainsi:
Fichier config.sh
:
liveboxtv_ip="192.168.1.21" # ip address of your livebox
liveboxtv_url="http://$liveboxtv_ip:8080/remoteControl/cmd?operation=01&mode=0&key=" # do not change
Extrait de commands
:
*ALLUME LA TELE*==say "J'allume la télé" && wget -qO /dev/null "${liveboxtv_url}116"
Je ne vois toujours pas comment je vais pouvoir gérer les notes & avis (et surtout les afficher dans le store depuis Jarvis). J'attends vos retours, et en parallèle je continue de coder le store dans Jarvis à partir de cette nouvelle structure.
Merci @npotier pour ton message, et pleins de belles choses pour la suite avec ACSEO! 👍 👍
Bon voila la première version du Store est disponible! Mettez à jour votre Jarvis! Pour le moment le nombre de plugin sur le store est au nombre incroyable de 1!!! J'attends vos contribution, voir ici comment publier vos plugins: https://github.com/alexylem/jarvis/wiki/store
Ça fonctionne tempête! Vraiment une excellente update! Bon, qu'est-ce qui suit?
Super @alexylem :)
Description
L'idée est que chacun puisse contribuer à un repository de commandes que d'autres utilisateurs pourront découvrir et télécharger via le "Store" de Jarvis (gratuitement bien entendu)