Aide - Recherche - Membres - Calendrier
Version complète : [319+3rd]EAMI
3rd-Wing · Escadre virtuelle DCS > DCS (& LockOn) > 3rd Wing devs' zone
etcher
Aussitôt dit, aussitôt fait.

Image IPB

J'ai terminé la première version du programme de synchronisation des mods, et pour faire plaisir à Gilles j'ai même fait une GUI (pauvre de moi).

C'est tout simple:

1) Vous lui dites où se trouve votre répertoire JSGME ("_MODS")
2) Vous lui demandez de "Récupérer la liste des mods disponibles"
3) Vous cochez ceux qui vous intéressent
4) Vous cliquez sur "Installer / mettre à jour les mods sélectionnés"

Si vous voulez mettre un mod en ligne, il y a deux boutons dispos, "Ajouter un mod sur le FTP" et "Mettre à jour un mod sur le FTP". Il faut renseigner:

1) DOSSIER RACINE: le dossier qui contient les fichiers du mods (le même dossier se retrouvera dans JSGME, pas de chichis)
2) NOM DU MOD: euh ...
3) COUPABLE: celui qui met le mod sur le FTP. Oui, oui.
4) VERSION: la version du mod

La mise à jour s'effectue comme suit:

1) Sélectionner le mod à mettre à jour (le cocher dans la liste)
2) Cliquer sur "Mettre à jour"
3) Renseigner le "DOSSIER RACINE" (toutes les autres infos sont conservées, la version se met à jour toute seule)

Le programme s'occupe de gérer les éventuels conflits entre versions, et supprimera les anciennes version de votre répertoire JSGME et du FTP au fur et à mesure.

La journalisation est en mode DEBUG pour le moment, j'ai pondu ça ce soir entre la pizza et la douche, donc bon ... EDIT: je veux dire par là, si ça plante j'aurai besoin des outputs pour corriger

Le programme est écrit en Python, gelé avec cx_freeze, et se sert de l'espace privé du FTP de la Wing pour hoster les mods. Merci de NE PAS envoyer 60 Gigas de mods ^^ EDIT2: tout est compressé en LZMA (quand même)

Téléchargement: ftp.3rd-wing.net/private/EspacePilotes/etcher/EAMI/EAMIv0.1.7z

Bonus: Katze en vortex.
Image IPB
etcher
Nouvelle version 0.2:

- gros nettoyage au cas où qq1 veut la source (je ne publie pas ouvertement du fait de l'accès FTP)
- ajout de quelques options de config
- ajout de la possibilité d'inclure d'autres escadrons que le 319th, si il y a des intéressés me contacter
- réécriture du code de connexion avec le FTP pour être un peu plus gentil avec lui

Au passage ça fonctionne pour JSGME, mais tous les autre programmes qui utilisent le même principe (Gal ? wink.gif ) devraient également fonctionner sans souci.

Téléchargement toujours au même endroit, FTP/private/EspacePilotes/etcher/EAMI

A+ ! cheers.gif

EDIT: oublié le bonus ... Attaque laser ailier avec Katze:
Image IPB
BaDCrC
Sympa. cheer.gif

Du coup est-ce qu'on peut pas decider d'une seule et meme place sur le ftp pour stocker ces mods afin d'eviter d'en avoir partout?
Après tout, il n'y en a pas tant que çà.
etcher
CITATION(BaDCrC @ 10 Jan 2015, 18:45) *

Sympa. cheer.gif

Du coup est-ce qu'on peut pas decider d'une seule et meme place sur le ftp pour stocker ces mods afin d'eviter d'en avoir partout?
Après tout, il n'y en a pas tant que çà.


Il le fait déjà, c'est automatique wink.gif

Version 0.3 en ligne, correction d'un bug, merci Katze !
etcher
Eeeeeeet, la v0.4, pour corriger un souci d'affichage en fonction du ratio de l'écran.

Toujours au même endroit =)
KaTZe
Testé ce pm avec Etcher, super outil wub.gif wub.gif

@Bad, c'est simplissime, les mods sont stockés sur le FTP de la 3rd (dossier privé d'Etcher), quand on lance le EAMI, il liste les mods dispo. les télécharge, et les place automatiquement dans notre répertoire JSJME, il reste juste alors à lancer JSJME pour sélectionner l'install.

On voit immédiatement, nos MODs (et leur version) , vs ceux dispo sur le ftp, et leur téléchargement se fait d'un click.

Et comme Etcher a bien fait les choses, il a prévu une fonction pour upper un mod depuis la machine du créateur (de mission ou de mod), directement sur le ftp. Ainsi plus besoin de Filezilla, et on va pouvoir gagner 1/2 heure aux début de chaque vol, même si l'on doit avoir 2 ou 3 mods comme la semaine dernière tongue.gif tongue.gif
(En deux click on est prêt)

Du super boulot
Miaou wavetowel2.gif
BaDCrC
Génial,
Faut par contre que les mods soient stockés ailleurs que dans le ftp privé d'un des pilotes, mais dans une zone plus generale ou l'on pourra trouver les mods et les skins pour tout le monde.
etcher
CITATION(BaDCrC @ 11 Jan 2015, 13:05) *

Génial,
Faut par contre que les mods soient stockés ailleurs que dans le ftp privé d'un des pilotes, mais dans une zone plus generale ou l'on pourra trouver les mods et les skins pour tout le monde.


Le stockage est transparent, à aucun moment tu ne dois aller sur le FTP pour uploader ou télécharger les mods.

Si tu veux absolument changer no problemo c'est facile comme tout tu me dis cheers.gif
etcher
Version 6 en ligne:

- ajout des descriptions (compatibles avec le format des descriptions JSGME, yeah)
- ajout des autres escadrons de la 3rd
- lifting de l'interface

Upgrade obligatoire sous peine de plantage (les versions <6 ne gèrent pas les descriptions)

EDIT: oublié: la v0.5 introduit la vérification de nouvelle version et un bugfix
etcher
0.8: correction d'un bug qui permettait d'uploader un mod sans description valable
gillesdrone
CITATION(etcher @ 12 Jan 2015, 23:46) *

0.8: correction d'un bug qui permettait d'uploader un mod sans description valable

Arfff je suis débusqué tongue.gif
BaDCrC
Bon, du coup on les stocke ou ces mods??
etcher
CITATION(BaDCrC @ 13 Jan 2015, 23:24) *
Bon, du coup on les stocke ou ces mods??





@bad: via le programme, il y a un bouton "Ajouter mod", il va te demander quelques infos et se charger de le mettre en ligne pour toi.

@tous: une info au passage: pour l'instant, le programme est écrit en une seule grosse thread, j'ai écrit ça à l'arrache et j'avais pas prévu qu'il devienne si gros si vite. Ca veut dire que quand il est occupé (téléchargement/envoi d'un gros mod), il "gèle" complètement. Il n'est pas planté, il faut seulement lui laisser le temps. La prochaine version sera multi-threadée et indiquera en temps réel la progression de la compression ou du transfert, je suis en train de la finaliser et de la tester.
BaDCrC
Oui d'accord mais c'est pas ca que je voulais mettre au point.

Les mods qu'on utilise dans plusieurs missions:
- platform ship
- tents, watchtowers, uh1 cargo
- helicopter landing trainer
- skins Ka50
- skins Mi8

Autant les mettre une fois pour toutes dans un seul directory. Moi je les ai dans mon private, mais si tout le monde fait comme moi, ca fait beaucoup de place prise pour rien.

Il y a aussi eventuellement:
- mod cockpit HD ka50
- mod cockpit anglais Mi8
gillesdrone
CITATION(BaDCrC @ 14 Jan 2015, 17:02) *

Oui d'accord mais c'est pas ca que je voulais mettre au point.

Les mods qu'on utilise dans plusieurs missions:
- platform ship
- tents, watchtowers, uh1 cargo
- helicopter landing trainer
- skins Ka50
- skins Mi8

Autant les mettre une fois pour toutes dans un seul directory. Moi je les ai dans mon private, mais si tout le monde fait comme moi, ca fait beaucoup de place prise pour rien.

Il y a aussi eventuellement:
- mod cockpit HD ka50
- mod cockpit anglais Mi8



Justement une fois que Etcher aura fini

on centralise tous les modes dans un endroit du FTP , 1 fois ...

et tu auras EAMI pour envoyer par exemple tes mises a jour et reccevoir les MAJ des autres directement dans ton _MOD si tu le souhaite par le menu du log
etcher
@Î bad: c'est le but de la manoeuvre, avoir tout à un seul endroit, facilement accessible pour installation et mise à jour, pour pouvoir distribuer facilement et sans erreur les mods et leur mises à jour (éventuellement en last-minute en début de mission innocent.gif )
SandJo
Il faudrait quand même expliquer à quoi ca sert tout ça.

Ce que je veux dire : il y a jsmachin qui est parait-il super pour gerer ses mods. Ensuite Gal explique que c'est de la daube a côté du soft qu'il programme et diffuse. Ensuite c'est au tour d'Etcher de nous sortir un soft qui doit être mieux aussi (sinon il l'aurait certainement pas fait...) mais au final, pour moi qui ne suis ni modeur, ni codeur mais juste utilisateur de certains mods, j'ai du mal a trouver un intérêt a suivre tel ou tel voie dans tout ça.

Donc si vous pouviez nous faire un petit comparatif de tout ça histoire qu'on s'y retrouve. smile.gif

Merci d'avance

Tchouss
SandJo
etcher
CITATION(SandJo @ 14 Jan 2015, 19:38) *

Il faudrait quand même expliquer à quoi ca sert tout ça.

Ce que je veux dire : il y a jsmachin qui est parait-il super pour gerer ses mods. Ensuite Gal explique que c'est de la daube a côté du soft qu'il programme et diffuse. Ensuite c'est au tour d'Etcher de nous sortir un soft qui doit être mieux aussi (sinon il l'aurait certainement pas fait...) mais au final, pour moi qui ne suis ni modeur, ni codeur mais juste utilisateur de certains mods, j'ai du mal a trouver un intérêt a suivre tel ou tel voie dans tout ça.

Donc si vous pouviez nous faire un petit comparatif de tout ça histoire qu'on s'y retrouve. smile.gif

Merci d'avance

Tchouss
SandJo


JSGME: installe/désinstalle les mods à partir d'un répertoire dans lesquels tu les lui fournis
DYMOD par Gal: la même chose en mieux

EAMI: travaille au dessus des deux précédents; permets de fournir, installer et mettre à jour des mods directement depuis le FTP de la Wing. Un escadron (319th, 75th, ...) = une liste de mods, le même mod et la même version pour tous les pilotes. En quelques clics.
Photun
Ce qui permettrait donc d'avoir un tronc commun d'add-on et des mises à jour automatiques comme par exemples pour les paint schemes persos des pilotes ?

Autrement dit, plus besoin de tout installer manuellement, le logiciel le ferait pour nous ?

Ça ressemble un peu à Arma Sync (pour Arma 2 et 3) de ce que j'en comprends et suppose ; j'ai bon ?
etcher
CITATION(Photun @ 15 Jan 2015, 08:41) *
Ce qui permettrait donc d'avoir un tronc commun d'add-on et des mises à jour automatiques comme par exemples pour les paint schemes persos des pilotes ?

Autrement dit, plus besoin de tout installer manuellement, le logiciel le ferait pour nous ?

Ça ressemble un peu à Arma Sync (pour Arma 2 et 3) de ce que j'en comprends et suppose ; j'ai bon ?



C'est exactement ça =) La grosse diférence avec ArmaSync étant que EAMI n'installe pas les mods dans DCS, mais dans JSGME/DyMOD, c'est à l'utilisateur de faire la suite (pour le moment, qui sait).

Je suis encore en phase de test, mais les fonctionnalités principales sont toutes présentes dans la dernière version en date.
KaTZe
Un petit dessin valant mieux qu'un long discours

Cliquez pour voir le fichier-joint

Fonction Upload :
Pour permettre au moddeur ou à celui qui propose le mod de le placer sur le FTP

Fonction CheckVersion :
Pour permettre au joueur de comparer les mod présents dans son dossier "JSGME_Mods" avec les dernières versions qui ont été releasées

Fonction Download Auto :
Pour permettre au joueur de sélectionner les mods à rapatrier/updater sur son PC (dans le dossier "JSGME_Mods")


JSGME, reste utilisé pour selectionner/installer les mods présents dans le dossier "JSGME_Mods", dans DCS


Utilité : Lors de la phase d'Upload, EAMI force le moddeur/fournisseur à renseigner des infos de version, commentaire, origine. Ces info. sont utilisées pour comparer les mods présent chez les joueurs avec "La version de référence".

Ainsi, lorsqu'un ou des mods sont utilisés pour un vol de la 3rd, le concepteur a juste à les upper avec EAMI.
Pour les joueurs, plus de temps perdu à savoir où télécharger les mods, si on a les bons etc etc ...
On a juste à dire, vol du 30/02/2154, chargez mods "X,Y et Z" ... 3 click et tout le monde est à jour.

Miaou smile.gif
Galevsky
Quel language ton soft Etcher ? Toujours du Python ?
Car les repo distant en ftp ou http public ou avec authen sont en cours de dev dans DyMOD, comnme prevu initialement...

Perso je suis sur du C#, pratique pour la GUI et les API Windows...
etcher
CITATION(Galevsky @ 15 Jan 2015, 10:35) *
Quel language ton soft Etcher ? Toujours du Python ?
Car les repo distant en ftp ou http public ou avec authen sont en cours de dev dans DyMOD, comnme prevu initialement...

Perso je suis sur du C#, pratique pour la GUI et les API Windows...




Oui, Python, PyQt et cx_freeze. Je vais quand même le finir proprement, c'est quasiment terminé et ça fera une alternative en attendant le DyMOD, ou par la suite s'il y en a qui veulent rester avec JSGME.
etcher
Nouvelle beta terminée hier soir, je met en ligne maintenant ça à l'air OK.

Au menu, réorganisation de l'interface, et intégration du multithreading pour la réactivité.

C'est une beta, les threads font que c'est parfois difficile de savoir exactement ce que fait le programme. Faites attention à vos fichiers (n'utilisez pas avec votre dernier mod perso super précieux), et n'hésitez pas à faire remonter les problèmes (avec fichier 'eami.log' svp) pour que je puisse arranger au plus vite.


Image IPB



KaTZe
Merci Etcher,

Pour info. avec les thread sur le KaTZ-Link j'ai du utiliser des flag pour séquencer leur travail (sinon, je me retrouvais avec des résultats bizarre quend le job était interrompu pour passer au thread suivant).

Si tu veux on en parle wink.gif
etcher
CITATION(KaTZe @ 18 Jan 2015, 16:25) *

Merci Etcher,

Pour info. avec les thread sur le KaTZ-Link j'ai du utiliser des flag pour séquencer leur travail (sinon, je me retrouvais avec des résultats bizarre quend le job était interrompu pour passer au thread suivant).

Si tu veux on en parle wink.gif


C'est super sympa, mais si je me rappelle bien tu utilises le module threading, de mon côté je dois composer avec Qt du coup je ne sais pas si ça a encore grand chose à voir.

Ce que je voulais dire c'est que la thread étant indépendante, le stack est déconnecté et tu n'as aucune traceback en cas d'exception non gérée. Du coup, si plantage dans une thread -> aucune info (autre qu'explicitement loggée). Je cherchais une solution autre que le module faulthandler mais jusqu'ici no joy, donc pour la prochaine version ce sera lui.
Trinity
0.9.1

CODE

BUGS CONNUS:
- impossible pour le moment de trier correctement les mods par taille

0.9.1 ! correction d'un bug lors de l'ajout d'un mod (le mod ne s'affichait pas correctement après installation, rien
        de grave)
0.9.1 + rafraîssement automatique de la liste des mods lors de la mise à jour du répertoire JSGME
0.9.1 + affichage de la taille des mods dans la fenêtre principale
0.9.1 + l'opération "Mettre à jour sur le FTP" demande confirmation à l'utilisateur avant d'effectuer quoi que ce soit,
        en présentant une liste de ce qui va être fait. J'ai rajouté cette option suite à des retours d'utilisateurs
        qui ne comprenaient pas la portée de la fonction
KaTZe
Trinity blink.gif ... c'est de la bombe wink.gif pour ceux qui ont un peu de culture atomique, à moins que l'on ne soit en plein neohackingmatrixien saianlol.gif

Btw ... sur le ftp il y a une 0.9.1.7z et une 0.9.7z (antérieure d'une 20aine d'heure).
Je voulais me mettre à jours avant ce soir, je dois prendre laquelle blushing.gif

Miaou wink.gif
etcher
CITATION(KaTZe @ 19 Jan 2015, 11:01) *

Trinity blink.gif ... c'est de la bombe wink.gif pour ceux qui ont un peu de culture atomique, à moins que l'on ne soit en plein neohackingmatrixien saianlol.gif

Btw ... sur le ftp il y a une 0.9.1.7z et une 0.9.7z (antérieure d'une 20aine d'heure).
Je voulais me mettre à jours avant ce soir, je dois prendre laquelle blushing.gif

Miaou wink.gif


Hmmm, je vois ce que tu veux dire ... le ".7z" en fait c'est l'extension du fichier gap.gif

Si tu utilises l'auto-updater, il ne devrait pas y avoir de confusion, il choisit automatiquement la dernière version en date.

Sinon c'est la 9.1 =)
etcher
CODE


BUGS CONNUS:

- si votre répertoire mod JSGME se trouve dans un répertoire protégé par l'UAC de Windows, vous aurez des erreurs   lors des décompressions/déplacements/renommage. Une solution est de lancer EAMI en mode administrateur, je ne le fais pas  par défaut pour ne pas effrayer les gens mais c'est safe, et le code source du programme est dispo pour ceux qui le voudrait


NOUVEAUTES

0.9.2 + ajout d'un avertisssement explicite lorsqu'une erreur UAC est possible
0.9.2 ! correction d'un bug de gestion des erreurs lors de la création d'un mod
0.9.2 + il est maintenant possible de trier les mods par taille

etcher
La 0.9.4 est pourrie, j'ai accidentellement poussé ma branche de développement, mes excuses.

La 0.9.5 corrige le tir.
etcher
Intégration de la mise à jour sans intervention utilisateur; ne pas mettre à jour ou télécharger pour le moment.
etcher
Intégration terminée, les mises à jour se feront dorénavant sans intervention de l'utilisateur.

EDIT: à partir de la prochaine version; vous devrez mettre à jour à la main une dernière fois.
etcher
Dernières corrections:

- le tri par date fonctionne maintenant correctement
- correction d'un bug lors de l'upload d'un nouveau mod alors que le FTP était déconnecté
- amélioration du processus de mise à jour automatique pour Windows 8
gillesdrone
CITATION(etcher @ 8 Feb 2015, 18:34) *

Dernières corrections:

- le tri par date fonctionne maintenant correctement
- correction d'un bug lors de l'upload d'un nouveau mod alors que le FTP était déconnecté
- amélioration du processus de mise à jour automatique pour Windows 8


Chez moi derniere version marche pas , on verra ce soir wink.gif
etcher
CITATION(gillesdrone @ 9 Feb 2015, 16:49) *

Chez moi derniere version marche pas , on verra ce soir wink.gif


Windows Vista ? J'ai besoin du log pour savoir exactement où ça plante et corriger le problème =)

Le problème se trouve ici:

CODE
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(__guid__)


Je vais faire des recherches pour le faire passer sous Vista.
etcher
EAMI 0.9.12:

Passage de PyQt4+py2exe à PyQt5+cx_freeze, mise à jour manuelle nécessaire (même cirque qu'EKPI).

Téléchargement dans mon espace privé.

Correction du bug lié à Windows Vista.
gillesdrone
j"ai chargé la version 12 et j"ai cette erreur en voulant charger mettre a jour un mod

INFO - main.FtpWrapper - connexion au serveur FTP (essai 1 de 3)
INFO - main.WorkerModInstaller - installation/mise à jour du mod: TA_pack
INFO - main.FtpWrapper - connexion au serveur FTP (essai 1 de 3)
ERROR - main.FtpWrapper - - échec tu téléchargement
Traceback (most recent call last):
File "F:\DEV\EAMI\eami.py", line 929, in download
File "C:\Python34\lib\ftplib.py", line 635, in size
File "C:\Python34\lib\ftplib.py", line 272, in sendcmd
File "C:\Python34\lib\ftplib.py", line 245, in getresp
ftplib.error_perm: 550 Can't check for file existence
ERROR - main.WorkerModInstaller - erreur pendant le téléchargement du mod
Traceback (most recent call last):
File "F:\DEV\EAMI\eami.py", line 782, in task
Exception
INFO - main.WorkerModInstaller - installation/mise à jour du mod: TA_pack
ERROR - main.FtpWrapper - - échec tu téléchargement
Traceback (most recent call last):
File "F:\DEV\EAMI\eami.py", line 929, in download
File "C:\Python34\lib\ftplib.py", line 635, in size
File "C:\Python34\lib\ftplib.py", line 272, in sendcmd
File "C:\Python34\lib\ftplib.py", line 245, in getresp
ftplib.error_perm: 550 Can't check for file existence
ERROR - main.WorkerModInstaller - erreur pendant le téléchargement du mod
Traceback (most recent call last):
File "F:\DEV\EAMI\eami.py", line 782, in task

Avec SEVEN wink.gif
etcher
Typique d'un souci de connexion avec le FTP, généralement il suffit d'attendre quelques minutes.

Je rajouterai un message plus explicite, cette erreur à tendance à revenir.
etcher
EAMI est obsolète, remplacé par EASI.

-> http://www.3rd-wing.net/index.php?showtopic=14554
C'est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.