HOWTO Στατιστικά στο IRC με το pisg

HOWTO και TIP.
Άβαταρ μέλους
agorf
Top Poster
Top Poster
Δημοσιεύσεις: 637
Εγγραφή: 07 Νοέμ 2005, 23:44
Distro: Debian testing
Τοποθεσία: Χαλκίδα
Επικοινωνία:

HOWTO Στατιστικά στο IRC με το pisg

Δημοσίευση από agorf » 10 Μαρ 2006, 13:50

Στο παρόν HOWTO θα μάθουμε πώς να κάνουμε διαθέσιμα στατιστικά κάποιου καναλιού ενός δικτύου IRC του οποίου διαθέτουμε logs. Η διατήρηση των logs θα γίνει με κάποιο πρόγραμμα IRC, η δημιουργία των στατιστικών θα γίνει με το pisg, το "ανέβασμά" τους σε κάποιο website με το lftp και η τακτική ανανέωσή τους με crontab. Εύλογη προυπόθεση, για ακριβή στατιστικά, είναι το πρόγραμμα IRC να είναι στο εν λόγω κανάλι συνεχώς, πράγμα που μάλλον απαιτεί κάποιο shell account ή broadband στο σπίτι σας.

Υποθέσεις στο παρόν HOWTO...

Κανάλι για το οποίο θέλουμε να διαθέσουμε στατιστικά: #foo
IRC δίκτυο στο οποίο ανήκει το εν λόγω κανάλι: BarNet
Το nickname σας: lalakis
Το πρόγραμμα IRC που χρησιμοποιείτε και το οποίο διατηρεί logs: ircSUX (ircsux σε filenames/paths)
Το username στο ftp account που θα ανεβάζετε τα στατιστικά: lalakis
Το ανάλογο password: lalakis123
Το hostname της εταιρείας στον ftp server της οποίας θα συνδέεστε: ftp.craphosting.gr

Πρώτο βήμα είναι να δούμε αν το pisg υποστηρίζει το format των logs του προγράμματος που χρησιμοποιούμε. Το pisg, τη στιγμή που γράφονται αυτές οι γραμμές, υποστηρίζει logs από τα εξής προγράμματα: X-Chat, mIRC, mIRC6, eggdrop, bxlog (BitchX), irssi, virc98, dancer, Trillian, Grufti, mbot, winbot, zcbot, muh, energymech, ircII, psybnc, ircle, infobot, axur, bobot++, oer, perlbot, Vision, pircbot, KVIrc, HydraIRC, sirc, moobot, supybot, blootbot, dircproxy.

Εφόσον η απάντηση στην πρώτη ερώτηση είναι θετική, μπορούμε να συνεχίσουμε ρυθμίζοντας το πρόγραμμα IRC που χρησιμοποιούμε να κρατάει logs. Εδώ οι διαθέσιμοι τρόποι είναι αρκετοί (ανάλογα με το πρόγραμμα που χρησιμοποιείτε). Μερικά προγράμματα μπορούν να logάρουν σε ένα αρχείο για το εκάστοτε κανάλι. Άλλα μπορούν να διατηρούν ξεχωριστά logs ανά ημέρα για κάθε κανάλι (δηλαδή logάρουν σε directory με κάθε αρχείο να αντιστοιχεί π.χ. σε μια μέρα). Θα υποθέσουμε λοιπόν ότι τα logs διατηρούνται στο filename ~/.ircsux/log/foo.log (περίπτωση Α) ή στο path ~/.ircsux/log/foo/ (περίπτωση Β) αντίστοιχα.

Εγκαθιστούμε το pisg και το lftp στο σύστημά μας (δε θα μπω σε λεπτομέριες για να διατηρήσω το παρόν HOWTO distro-agnostic). Έπειτα εκτελούμε τις ακόλουθες εντολές:
$ mkdir ~/.lftp/
$ touch ~/.lftp/bookmarks
$ chmod go-rwx ~/.lftp/bookmarks
Με τον αγαπημένο σας editor, ανοίξτε το ~/.lftp/bookmarks και γράψτε μια γραμμή της μορφής:
όπου crap είναι μια "ταμπέλα" που δίνεται στο συγκεκριμένο bookmark και <TAB> είναι το πάτημα του πλήκτρου Tab. Ο ρόλος των υπόλοιπων (username, password, κτλ..) είναι, ελπίζω, κατανοητός. Αποθηκεύστε τις αλλαγές και κλείστε τον editor σας.

Ώρα να δημιουργήσουμε το ανάλογο structure online για την υποδοχή των στατιστικών. Κάντε τα εξής:
$ cd /usr/share/pisg/gfx/
$ lftp crap
cd ok, cwd=/
lftp lalakis@ftp.craphosting.gr:/> mkdir foo
mkdir ok, `foo' created
lftp lalakis@ftp.craphosting.gr:/> cd foo
cd ok, cwd=/foo
lftp lalakis@ftp.craphosting.gr:/foo> mkdir ircstats
mkdir ok, `ircstats' created
lftp lalakis@ftp.craphosting.gr:/foo> cd ircstats
cd ok, cwd=/foo/ircstats
lftp lalakis@ftp.craphosting.gr:/foo/ircstats> mput *-h.png
lftp lalakis@ftp.craphosting.gr:/foo/ircstats> mput *-v.png
lftp lalakis@ftp.craphosting.gr:/foo/ircstats> exit
Πληροφοριακά, αν ανήκετε στην περίπτωση Α (βλέπε 4η παράγραφο), τότε για τη δημιουργία των στατιστικών αρκεί η εντολή:
$ pisg -ch \#foo -l ~/.ircsux/log/foo.log -o ~/foo.html -ma lalakis -f ircSUX -ne BarNet -s
Αν ανήκετε στην περίπτωση Β (βλέπε 4η παράγραφο), τότε η εντολή είναι:
$ pisg -ch \#foo -o ~/foo.html -ma lalakis -f ircSUX -ne BarNet -d ~/.ircsux/log/foo/ -s
Γράψτε την εντολή:
$ crontab -e
Θα εμφανιστεί ο editor σας με κάποιο ανοιγμένο αρχείο προς επεξεργασία. Προσθέστε τη γραμμή (περίπτωση Α):
0 * * * * pisg -ch \#foo -l ~/.ircsux/log/foo.log -o ~/foo.html -ma lalakis -f ircSUX -ne BarNet -s && lftp -c "connect crap && cd foo/ircstats/ && put -E ~/foo.html && mv foo.html index.html"
ή (περίπτωση Β):
0 * * * * pisg -ch \#foo -o ~/foo.html -ma lalakis -f ircSUX -ne BarNet -d ~/.ircsux/log/foo/ -s && lftp -c "connect crap && cd foo/ircstats/ && put -E ~/foo.html && mv foo.html index.html"
Αποθηκεύστε τις αλλαγές και κλείστε τον editor σας. Τα στατιστικά θα πρέπει (αν δεν έχω ή έχετε κάνει κάποιο λάθος) να ανανεώνονται κάθε ώρα στο site σας.

Να σημειώσω ότι για το ftping θα μπορούσαμε να είχαμε χρησιμοποιήσει οποιοδήποτε άλλο ftp client που να υποστηρίζει τα στοιχειώδη. Ακόμη, όλα τα προγράμματα που αναφέρονται εδώ σηκώνουν (ως γνωστόν) τρελή παραμετροποίηση. Ειδικά στο pisg, δεν αγγίξαμε τίποτα πέρα από τα πολύ πολύ βασικά. Για να προχωρήσετε περισσότερο σας παραπέμπω στο αντίστοιχο documentation του εκάστοτε προγράμματος.
Τελευταία επεξεργασία από το μέλος agorf την 15 Δεκ 2007, 19:04, έχει επεξεργασθεί 1 φορά συνολικά.

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης