Ensemble de scripts bash pour nettoyer les logs clients de Ryzom
Find a file
2021-11-22 15:22:34 +01:00
.gitignore Start porting of the bash scripts to a simple Python GUI 2021-11-16 22:09:39 +01:00
1analyse_new_logryzom.sh push initial 2021-11-10 22:29:54 +01:00
2split_log.sh push initial 2021-11-10 22:29:54 +01:00
3analyse_old_logryzom.sh push initial 2021-11-10 22:29:54 +01:00
main.py Change the verb from second to third person when replacing charname 2021-11-22 15:22:34 +01:00
README.md Add multi file input for processing and organising of logs 2021-11-19 16:56:52 +01:00
sysinfo.ini push initial 2021-11-10 22:29:54 +01:00
tk_tooltip.py Start porting of the bash scripts to a simple Python GUI 2021-11-16 22:09:39 +01:00

Gestion des logs

Ensemble de scripts bash pour nettoyer les logs clients de Ryzom

Analyse New log

Pour analyser les logs d'après 2012/2013, par là.

Fonctionnement idéal : /bin/bash ./1analyse_new_logryzom.sh fichier_entrée fichier_sortie

Par exemple :

./1analyse_new_logryzom.sh log_zatalyz.txt log_zatalye_alentours.txt

Liste des canaux, si on veut filtrer autrement :

  • SAY : alentours
  • SAY/EMT : emotes
  • SAY/BBL : messages de PNJ
  • SAY/SHOUT : cris
  • UNIVERSE : Univers
  • REGION : comme indiqué
  • SYSTEM : messages systèmes
  • SYSTEM/BC : Broadcast (annonces des administrateurs)
  • SYSTEM/AROUND : messages en alentours qui ne sont pas dit par des homins (genre "bienvenue sur ryzom)
  • SYSTEM/ZON : Endroit où le personnage se trouve (affiché lors des changements de zone)
  • SYSTEM/SPLM : Combat ?
  • SYSTEM/SPL : Combat aussi
  • SYSTEM/CHK : Check du système
  • SYSTEM/ITM : gestion des items (type achat de TP)
  • SYSTEM/DG : dégâts
  • SYSTEM/DMG : Dommages
  • SYSTEM/MIS : parade/esquive
  • SYSTEM/ISE : Effets de type vedice etc
  • SYSTEM/PVPTM : infos autour du pvp
  • SYSTEM/TSK : informations à propos des missions
  • SYSTEM/XP : expérience gagnée
  • SYSTEM/THM : encyclopédie
  • GUILD/MTD : Mot du jour de la Guilde
  • GUILD : Messages en guilde
  • DYN0, DYN1, DYN3, etc : canaux dynamiques. Le canal de langue est souvent sur DYN0
  • TELL : messages privés
  • TEAM : messages en équipe

Analyse Old Log

Pour les logs d'avant le changement de système (donc avant 2013, je crois). Il FAUT un fichier sysinfo.ini, qui contient toutes les expressions régulières à filtrer (tout ce qui est dans le sys.infos). C'était plus lourd. Les canaux sont gardés selon un code couleur. À documenter, un jour, peut-être, ou pas : ça se retrouve en regardant les logs.

Splitlog

Ce script sépare les logs en 1 fichier de log par jour.

Il est prévu pour les logs du jeu Ryzom mais peut s'adapter à d'autres types de log (virer "pseudo !")

Mettre tous les logs en vrac dans le même dossier que le script, et lancer la moulinette.

La bonne commande à passer est

cmd ./dossiersource ./dossier final [nomperso]

Sans argument des variables par défaut seront utilisées. Le nom du perso peut être déduit des logs

Exemple :

./split_log.sh ./logbrut/zatalyz/ ./final john

=> les fichiers seront traités depuis ./logbrut/zatalyz/, et mis dans le dossier ./final sous le nom de log_john_année_mois_jour.txt sans préciser "john", le nom des logs sera probablement celui de zatalyz, si les fichiers d'origine sont bien formatés comme log_zatalyz.txt ou log_zatalyz_*.txt

Le script range aussi les logs.

Attention ! Il laisse quelques fichiers dans le dossier courant. Gardez les logs originaux, dans quelques cas les lignes ne sont pas analysées correctement (cas des retours à la ligne comme dans les poèmes : la ligne ne commence plus par une date).

Crédits et licence

Auteur : Zatalyz. Tout est sous licence CC0, c'est de l'assemblage de bons conseils et de tests, rien de transcendant. Plus de détail dans chaque script.

Python version

The script uses basic python3 with no additional 3rd part libraries. The main file is main.py and the only other file it uses is tk_tooltip.py. To just run the GUI, run: python3 main.py

If you want to create a binary for distribution, it seems that pyinstaller is the easiest way. Just run:

pip3 install pyinstaller pyinstaller --onefile --noconsole --clean --log-level=WARN --strip main.py tk_tooltip.py