• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Eggdrop to Mirc log converter

sebi

New member
Hi. Ich suche einen Eggdrop log converter der die Logs in mirc fähige Logs umwandelt (um sie z.B. mit mircstats zu bearbeiten).
So etwas gibt es schon. Leider funktioniert das Perl script nicht bei mir. Kennt jemand so eines? Oder kann er mir den Perl Code in PHP evtl. umschreiben? (Das script ist nicht soo groß (90 Zeilen)

wäre cool wenn jemand antwortet. Ich habe schon überall gesucht, aber nichts vergleichbares gefunden.


sebi
 
poste mal das cgi script oder gib nen link(is wohl besser posten 90 zilen is nen bisle viel)
vieleicht kannst du mal nen beispiel bringen wo der unterschie is zwischen den beien logs

cu xxoes
 
Also, der Typ der das Geschrieben hat sagte dass man es nur mit ner SSH Konsole ausführen kann, deswegen funzt das nicht bei mir. Da ich keine Konsole habe könnte man doch einfach die sachen ändern die das benötigen oder?
Naja, die änderungen der Dateien sind nicht gerade einfach. Aber es wird klar gezeigt was gemacht wird. Nur leider habe ich zu wenig ahnung davon ):

Hier das script:




#!/usr/bin/perl -w

# Drop Egg
#
# This script takes a heap of daily eggdrop logs and changes them around
# to look a little more mIRC-like. (So that they can be fed through PISG
# and whatnot)
#
# Copyright 2001, Emil Mikulic. <darkmoon7@optushome.com.au>

use Time::Local;

$logdir = "/home/www/web146/html/irc";
$logname = "www145.gcwf.log";
$outfile = "www145.gcwf.log";
$channel = "#gcwf";

open(OUTFILE, ">$outfile");

foreach (`ls $logdir/$logname.*`)
{
chomp( $current_log = $_ );
print "Sanitizing $current_log...";

($year,$mon,$day) = $current_log =~ /$logdir\/$logname\.(\d\d\d\d)(\d\d)(\d\d)/;
$time = timelocal(1,0,0,$day,$mon,$year);
print OUTFILE "\nSession Start: " . localtime($time) . "\n";
print OUTFILE "[00:00] *** Now talking in $channel\n";

foreach (`cat $current_log`)
{
chomp( $line = $_ );

$line =~ s/\cB//g;
$line =~ s/\c_//g;
$line =~ s/\cO//g;
$line =~ s/\cC\d+//g;

# [02:25] DTails (~Dtails@co3033554-a.mckinn1.vic.optushome.com.au) joined #gencorp.
# [14:48] *** shai (cmot_dblah@a1-46.melbpc.org.au) has joined #breakfastclub

if (($line =~ /joined/) && !($line =~ /\</))
{
($timestamp,$nick,$hostmask) = $line =~ /(\[\d\d\:\d\d\]) (\S+) \(([^)]+)\) joined/;
$line = "$timestamp *** $nick ($hostmask) has joined $channel";
}

# [02:26] DTails (~Dtails@co3033554-a.mckinn1.vic.optushome.com.au) left irc: We're the
# [14:46] *** alice (noidea@dialup-33.ap1-nas7.unite.mel.dav.net.au) Quit

if (($line =~ /left irc/) && !($line =~ /\[\d\d\:\d\d\] \</))
{
($timestamp,$nick,$hostmask) = $line =~ /(\[\d\d\:\d\d\]) (\S+) \(([^)]+)\) left irc/;
$line = "$timestamp *** $nick ($hostmask) Quit";
}

if (($line =~ /got netsplit/) && !($line =~ /\[\d\d\:\d\d\] \</))
{
($timestamp,$nick,$hostmask) = $line =~ /(\[\d\d\:\d\d\]) (\S+) \(([^)]+)\) got netsplit/;
$line = "$timestamp *** $nick ($hostmask) Quit";
}

# [19:42] Action: G..... wipes away tear
# [19:42] * G..... is a SED KENT

if ($line =~ /\[\d\d\:\d\d\] Action/)
{
$line =~ s/Action\:/\*/;
}

# [12:06] Nick change: DTails -> DT|Work
# [14:53] *** Death is now known as Memnoch

if ($line =~ /\[\d\d\:\d\d\] Nick change/)
{
$line =~ s/(\[\d\d\:\d\d\]) Nick change\: (\S+) \-\> (\S+)/$1 *** $2 is now known as $3/;
}

# [11:23] #gencorp: mode change '+o ark|tv' by curtis!~curtis@co...
# [11:23] *** curtis sets mode: +o ark
if ($line =~ /\[\d\d\:\d\d\] \#\S+ mode change/)
{
($timestamp,$mode,$setter) = $line =~
/(\[\d\d\:\d\d\]) \#\S+ mode change \'([^']+)\' by ([^!]+)\!/;
$line = "$timestamp *** $setter sets mode: $mode";
}

# [19:32] Gumpy kicked from #gencorp by curtis: flood
# [18:49] *** darkmoon was kicked by dark|away (BLAM!)
if ($line =~ /\[\d\d\:\d\d\] \S+ kicked from \#/)
{
($timestamp,$victim,$kicker,$reason) = $line =~
/(\[\d\d\:\d\d\]) (\S+) kicked from \#\S+ by ([^:]+)\: (.+)/;
$line = "$timestamp *** $victim was kicked by $kicker ($reason)";
}

# [00:48] Topic changed on #gen by arknstone!~...: <topic>
# [14:43] *** arknstone changes topic to 'this is a test'
if ($line =~ /\[\d\d\:\d\d\] Topic changed/)
{
($timestamp,$changer,$topic) = $line =~
/(\[\d\d\:\d\d\]) Topic changed on \#\S+ by ([^!]+)\![^:]+\: (.+)/;
$line = "$timestamp *** $changer changes topic to '$topic'";
}



if (!(($line =~ /got lost/) && !($line =~ /\[\d\d\:\d\d\] \</)))
{
print OUTFILE "$line\n";
}

}

$time = timelocal(59,59,23,$day,$mon,$year);
print OUTFILE "Session Close: " . localtime($time) . "\n";
print "done!\n";
}

close(OUTFILE);
 
Niemand? Schade ):
Ich brauche das echt dringen, habe schon 2 Wochen im vorraus gesucht und sowas gibts nicht. Ist das so schwer es in ein "normales" PHP oder CGI script umzuschreiben? Vielleicht kann ja jemand Visual Basic oder so ^_^

naja *nachobenschieb*



sebi
 
ähm, wieso nimmst die nicht Egglog (Oder wie das heisst)? Wird auf der mIRCStats Seite sogar empfohlen als zubehör für deinen Eggdrop, der loggt dann im mIRC Stats kompatiblen Format, bzw im mIRC kompatiblen Format. Ist kein CGI oder PHP, sondern TCL, und wenn du mir sagst, du kannst keine TCLs bei deinem Eggie einsetzen, dann solltest du schleunigst den anbieter wechseln.

Und wenn du nen PerlBOT benutzt, dann gute nacht, der hat nämlich e ganz böse Eigenschaft, die deinen Hoster zur Weisglut bringt, nämlich als shielded Process sich in den Server brennen wo er drauf läuft und Resourcen von 60 - 80% des Servers zu belegen.

Zu dem TCL Teil: Ich habs selber oft eingesetzt bei diversen Eggies.

Ciao
 
Zuletzt bearbeitet:
danke für deine antwort (hey warum bekomm ich keine Mail benachrichtigung??)
Also erstmal: Der Anbieter ist sehr gut, dafür dass es eigentlich ein "nur" webspace anbieter ist und ich ohne aufpreis Telnet und nen Eggdrop bekomme, das finde ich sehr großartig von denen, da will und sollte ich mich überhaupt nicht beschweren).
Nein, benutze schon eggdrop (;


sebi
 
Zurück
Oben