ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Net-Knuddels/eg/markovd
Revision: 1.1
Committed: Fri Jan 28 01:34:34 2005 UTC (21 years, 7 months ago) by elmex
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 elmex 1.1 #!/usr/bin/perl
2    
3     use strict;
4     use IO::Select;
5     use Socket;
6     use IO::Socket::INET;
7     use Event;
8     use Net::Knuddels;
9    
10     my @CHANNELS = (
11     'Singles 11-14',
12     'Singles 11-14 2',
13     'Singles 11-14 3',
14     'Singles 11-14 4',
15     );
16    
17     my $Knick = "ich bin suess";
18     my $Kpass = "qwerty";
19    
20     my $client;
21    
22     sub connect_knuddels {
23     $client->login;
24     Event->io (
25     fd => $client->fh,
26     poll => 'r',
27     cb => sub {
28     my $e = shift;
29     if (not $client->ready) {
30     $e->w->cancel;
31     }
32     });
33     }
34    
35     ####################################################################################
36     ########################## MAIN START ##############################################
37     ####################################################################################
38    
39     $client = new Net::Knuddels::Client PeerAddr => "213.61.5.150:2710";
40    
41    
42     $client->register (UNHANDLED => sub {
43     use Dumpvalue;
44     print "---\n";
45     Dumpvalue->new (compactDump => 1, veryCompact => 1, quoteHighBit => 1, tick => '"')->dumpValue ([@_]);
46     });
47    
48     $client->register (login => sub {
49     $client->enter_room ($_, $Knick, $Kpass)
50     for (@CHANNELS);
51     });
52    
53     $client->register (msg_room => sub {
54     my ($room, $user, $msg) = @_;
55     print "($room) $user: $msg\n";
56     });
57    
58     $client->register (msg_priv => sub {
59     my ($room, $src, $dst, $msg) = @_;
60     print "($room) ########### $src an $dst: $msg\n";
61     });
62    
63     $client->register (dialog => sub {
64     for my $l (@{$_[0]}) {
65     $l =~ s/\260[^\260]*\260//g;
66     print $l;
67     }
68     });
69    
70     $client->register (join_room => sub {
71     print "$_[1]->{name} joined $_[0]: ".scalar(keys %{$client->{user_lists}->{lc $_[0]}}). " users\n";
72     });
73    
74     $client->register (part_room => sub {
75     print "$_[1]->{name} left $_[0]: ".scalar(keys %{$client->{user_lists}->{lc $_[0]}}). " users\n";
76     });
77    
78     $client->register (user_list => sub {
79     my ($room, $list) = @_;
80     print "***** USER JOIN FUER $room *****\n";
81     print scalar (keys %$list)." users\n";
82     print "********************************\n";
83     });
84    
85     $client->register (room_info => sub {
86     my ($room, $ri) = @_;
87     print "ROOM INFO: $room : $ri->{picture}\n";
88     });
89    
90     connect_knuddels;
91     Event::loop;