YOUR CREATIONS & GUIDES


uiWebPrevious1uiWebNext

#1 Multilingual 

Multilingual | Français
[FR] Salut à toutes !

Il y a déjà divers analyseurs pour les logs ici et là. Je voulais gérer les miens avec bash. Ça a été l'occasion d'apprendre aussi à mieux maitriser ce dernier. Aujourd'hui cela me semble assez abouti pour le partager. Rien de transcendant, il y a probablement des façons plus élégantes de faire cela, mais si ça peut aider d'autres !

Merci à Siela1915 d'avoir utilisé la première version du script pour en faire une version python avec une interface graphique.

Qu'est-ce que c'est exactement ?

Sur Ryzom, vous pouvez garder une trace de tout ce qui est dit en jeu quand vous êtes connectés. Il faut pour cela activer la commande /chatlog sur votre personnage (et répéter ça sur chaque perso). Ensuite, cela remplira un fichier du type "log_NOM_DU_PERSO.txt" dans votre dossier "save". Voir https://fr.wiki.ryzom.com/wiki/Chat pour plus d'infos.

Le souci c'est que ce fichier mélange tous les canaux, y compris le sys.infos, et grossit au fil du temps jusqu'à ne plus être ouvrable par votre éditeur de texte favori. Pas très pratique comme ça.

Il existe donc des analyseurs, qui permettent d'extraire les canaux utiles. Par exemple ce qui s'est dit en "Alentours" afin de relire vos folles soirées RP. Mais on peut aussi extraire uniquement les discussions en MP avec une personne précise, ou le résultat de combats pour faire des analyses statistiques.

Mon analyseur découpe ce fichier brut en plusieurs, un par jour. Cela me permet par la suite de filtrer quand je cherche une info, sans chercher sur 10 ans d'archives. Il range tout ça par année et par mois. Puis il nettoie ces logs pour ne garder (par défaut) que ce qui est dit en alentours, ainsi que les indications de zone. De cette façon je sais où on était et je retrouve les histoires qu'on a vécu.

Il y a possibilité de l'adapter aux besoins, bien évidement. Il suffit de modifier selon les indications dans le script.

À noter qu'il y a le script pour les logs d'aujourd'hui (clean_log.sh) mais aussi de quoi analyser un ancien format des logs, ceux d'avant 2013 (analyse_old_logryzom.sh associé à sysinfo.ini). Vous pouvez ne télécharger que clean_log.sh, il se suffit à lui-même.

Du bash ? C'est quoi ce .sh ?

Un truc de nerd. Sous linux, la ligne de commande est tellement fabuleuse ! Il devrait fonctionner tel quel sous toutes les distributions linux ; pour les autres systèmes, je ne maitrise pas et cela demandera plus de manipulations.

Pas besoin d'être un as pour faire marcher le script, cependant (tant que vous êtes sous linux). Assurez-vous qu'il soit exécutable, ouvrez une console dans le dossier et faites la commande :
./clean_log.sh

Et ça devrait être assez clair. J'espère.

Pour le télécharger, c'est ici :
https://git.khaganat.net/zatalyz/ryzom_log_cleaner/-/tree/main

Du python ?

La console, tout le monde n'est pas fan, et puis ça semble ne pas être simple à faire marcher sous Mac. Aussi Siela1915 a fabriqué une interface graphique à partir de tout ceci, qui fonctionne sur Mac. Il a fait ça sur une des versions précédentes de mes tests. Ça marche suffisamment pour que mes amies m'envoient aussi leurs soirées.

Par contre je n'ai pas noté comment cela se lance facilement sous Mac. Je compléterais si je retrouve, ou avec vos infos.

Cette version est sur une autre branche. Vous pouvez le télécharger ici :

https://git.khaganat.net/zatalyz/ryzom_log_cleaner/-/tree/python- version

Pourquoi en français ?

C'est la seule langue que je parle correctement et à la base ce script était "juste pour moi". Les commentaires sont verbeux, mais je crois qu'on s'en passe facilement si on connaît le code. Si vous souhaitez traduire, je serais ravie d'intégrer vos propositions. Cependant ça ne me semble pas vital : il y a déjà d'autres analyseurs, ce script n'est pas un truc révolutionnaire non plus.

Il y a un bug, ça ne marche pas, je ne sais pas comment faire...

C'est fourni "comme ça". Vous pouvez ouvrir un rapport de bug ou m'envoyer un message mais je ne vous garantis pas que je pourrais y faire quoi que ce soit. Je ne suis pas développeuse, ceci est une expérience, et ça marche assez pour mon usage, c'est déjà pas mal ;)

Je vois tellement de trucs à améliorer !

Super :)

La licence est aussi permissive que possible, sentez-vous libre de faire ce que vous voulez du code. Si en plus vous le repartagez ensuite (sur vos dépôts ou en ouvrant des branches et des merges request sur le mien), c'est encore plus génial ! J'intégrerais dans "main" ce qui peut l'améliorer, tant que ça ne rends pas le code moins lisible par une "noob". Oui, awks est plus puissant (sauf que je n'y comprends rien), et oui il y a 5 fois trop de commentaires (mais cela me permet d'intervenir sur ce script au fil du temps). Pour moi, si ça marche et que j'y comprends, c'est suffisamment bon ;)

#2

Ah ben j'en parlais justement cette après-midi d'un outil de ce style intégré à Ryztart :)

Pour Linux et Macos, Ryztart contient tout ce qu'il faut (python et TK), l'outil serait donc utilisable sans modification

Sur Windows, c'est plus compliqué :)

Last edited by Jadeyn (3 years ago) | Reason: Spelling mistake.

#3 [fr] 

+1
Si en plus c'est intégré à Ryztart, c'est merveilleux!

---

Kyriann Ba'Zephy Rie
Ancienne Cheffe de la guilde Bai Nhori Drakani
Taliar
Mère de famille

#4 [fr] 

Effectivement, ce serait chouette qu'on aie ce genre d'outil dans Rystart :)
Un truc facile d'accès, avec interface graphique, sans avoir besoin d'installer quoi que ce soit d'autre... ça va devenir trop facile pour les rôlistes !

Il y aurait encore un peu de travail à faire par rapport à ce que j'ai fait, mais la logique est là, et la partie "analyse du log" est bien séparée du traitement par lot. Les règles sont assez simples, ça doit s'adapter dans plein de langages. Le format de log depuis 2013 est vraiment plus facile à gérer.

#5 [fr] 

La version bash a été mise à jour (il y a déjà quelques mois !) pour plus d'efficacité et corriger quelques bugs. Je m'en sers régulièrement sur des gros lots de log et ça convient bien. La version python est plus ancienne donc peut-être que certains trucs marchent moins bien. Il était peut-être temps que je le signale...

Si vous avez l'habitude d'utiliser http://ryzom.natara.fr/analyseur_log/, attention, on vient de me signaler qu'il y a un bug sur les emotes avec deux points. Par exemple une ligne comme

"2022/10/16 20:48:57 (SAY/EMT) * @{EE3F}machin ronchonne: @{F99F}ça marche pas" 


ne donne rien dans la version finale. Je ne sais malheureusement pas comment contacter Natara pour remonter ce souci. Et si mon script n'a pas ce souci, je conçois bien qu'il n'est pas d'un usage aisé pour tout le monde...

Donc je profite de ce message pour deux choses :
- Natara, si tu nous lis encore et que tu peux corriger ça, je crois que pas mal de rôlistes t'en seront reconnaissants :D
- Si Natara reste indisponible et si un dev php voit comment corriger le souci et me fournir un simple truc en php à héberger (que ce soit en corrigeant le script ou en faisant un truc de zéro grâce aux diverses sources), j'ai de la place pour ça sur mes serveurs. Là, malgré le code source je n'étais jamais arrivée à grand chose ; je suis une sysadmin passable, mais une très mauvaise codeuse. Par contre je me débrouille en css, et j'aime bien le bidouiller :)

#6 [fr] 

Ces emotes personnalisées ne sont jamais passées dans le chatLog decoder mais il y a un contournement très facile.
Il suffit de cocher la ligne factions et autres canaux et mettre dedans SAY/EMT.
Les emotes personnalisées sont alors récupérées sans problème.

---

Kyriann Ba'Zephy Rie
Ancienne Cheffe de la guilde Bai Nhori Drakani
Taliar
Mère de famille

#7 [fr] 

Merci pour l'astuce, Kyriann :)
uiWebPrevious1uiWebNext
 
Last visit Monday, 25 November 01:19:19 UTC
P_:G_:PLAYER

powered by ryzom-api