[Module+Script] Keskidi v1.0.0
#1
Description:
Vous vous souvenez du vieux keskidi ? Non? Raaah, bon, je vais vous expliquer alors.
C'est un script qui permet de chercher une ligne au hasard dite par quelqu'un, tout ça grâce aux logs de l'eggdrop. Trop cool hein ?

Pourquoi "le vieux" ?
Bah, par ce que celui là, il est tout neuf !
Au lieu d'utiliser une recherche par TCL super lente et tout (jusqu'a 0.5s par recherche sur #boulets :s), cette version là utilise un module home-made.
Forcément, c'est beaucoup, beaucoup, beaucoup plus rapide.

Edit: Effectivement, après des tests sur un shell tonbnc, une recherche sur une semaine de logs prends environ 154ms avec le keskidi habituel, contre seulement 8.5ms avec le module (soit 18.5x plus rapide)
A noter que ce temps dépends aussi grandement de la machine, puisque sur un autre PC on obtiens un temps approchant 0.45s pour le keskidi habituel.

Les différences par rapport au script
- Largement plus rapide (30% plus rapide sur mes logs miniatures, probablement beaucoup plus rapide que ça sur des gros logs, je vais essayer de tester ça)
- Plus d'anti-flood integré du coup
- Ne gère plus les jokers, mais il est toujours possible de chercher une ligne dite par n'importe qui (en mettant * en pseudo)

Téléchargement (tiens, vous avez vu, c'est le téléchargement numéro 200 :°)


Autres informations

Le package inclus:
- Le code source, commenté en anglais
- Un script TCL pour contrôler le module, en anglais et en français
- Les instructions d'installation en anglais et en français
- Un changelog
Le tout est dans une archive TAR

Comment ça marche ?
Le module en C procède a la recherche dans les fichiers à la place du script TCL (et croyez moi - c'est beaucoup plus compliqué!), mais l'algorythme est plus ou moins identique à celui d'avant.
Le script TCL inclus dans le package est en grande partie repris du script original. C'est lui qui met en place les commandes publiques, la gestion des canaux, et recherche les fichiers par date. Il appelle ensuite le module pour qu'il fasse la recherche dans les fichiers à sa place.

Un module ET un script ? Et puis quoi encore ?
Une partie des fonctions que j'ai inclus dans le script peuvent bien sur être implémentées au niveau du module, mais pas totalement. Donc, tant qu'a faire, je préfère garder un module flexible (puisqu'il n'est pas directement lié au keskidi), d'autant plus que, heu, c'est moins de boulot. Ah et puis, la recherche dynamique des fichiers en fonction de la date utilise les fonctions clock scan et des variables du fichier de configuration, donc ca me parrait difficilement faisable en C.

Plus une BETA qu'une vraie release
Comme expliqué dans le changelog, c'est mon premier module (on va pas compter mes bidouilles sur le module megahal, je savais même pas me servir de l'allocation dynamique et ne connaissait pas le fonctionnement de C >_<). Et même si ca fait déjà presque deux mois que je m'acharne à avoir un truc qui marche sans memory leaks ou autres trucs dans ce genre, c'est toujours possible. Si ça venait arriver, ou s'il y a un autre bug, contactez moi.

maimaimais! pourquoi y'a plus les jokers et le keskifai ?
Concernant les jokers, c'est plus une contrainte technique: pour faire bref, j'ai aucune idée de comment faire ça en C :°
Je crois que c'est possible en utilisant sscanf mais Galdinx m'a déconseillé d'utiliser ce genre de trucs.
Pour le keskifai, c'est simplement par flemme heu, le fait que je viens tout juste de faire tout ça. Et comme pour le keskidi quand je l'ai commencé, ca ne gérait pas les actions. Donc, si possible j'intégrerais ça plus tard dans le module :°
Répondre Avertir


Messages dans ce sujet
[Module+Script] Keskidi v1.0.0 - par Artix - 09/06/2010, 19:32
RE: [Module+Script] Keskidi v1.0.0 - par lesny - 15/02/2011, 20:58

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté