File: chat.pl

package info (click to toggle)
libsoap-lite-perl 0.712-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 1,740 kB
  • ctags: 831
  • sloc: perl: 10,860; xml: 90; makefile: 23; cs: 16
file content (33 lines) | stat: -rw-r--r-- 1,124 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!perl -w
#!d:\perl\bin\perl.exe 

# -- SOAP::Lite -- soaplite.com -- Copyright (C) 2001 Paul Kulchenko --

use SOAP::Lite +autodispatch => 
  uri => 'http://www.soaplite.com/My/Chat',
  proxy => 'http://localhost/soap',
# proxy => 'http://localhost/',                 # local daemon server
# proxy => 'http://localhost/soap',             # local mod_perl server
# proxy => 'https://localhost/soap',            # local mod_perl SECURE server
# proxy => 'tcp://localhost:82',                # local tcp server
  on_fault => sub { my($soap, $res) = @_; 
    die ref $res ? $res->faultstring : $soap->transport->status, "\n";
  }
;

my $nick = shift or die "Usage: $0 nickname\n";
my $c = My::Chat->join($nick);
my %whois = %{$c->whois};
print map { "$_ [" . mktime($whois{$_}) . "]\n" } keys %whois;
for (;;) {
  print map { 
    my($nick, $text, $time) = @$_; chomp($text); 
    join '', mktime($time), ' ', $nick, '>', ' ', $text, "\n"; 
  } @{$c->get};
  print "$nick> ";
  defined($_ = <>) or last;
  $c->send($_) if $_ =~ /\S/;
}
$c->quit;

sub mktime { use POSIX qw(strftime); strftime("%m/%d %H:%M", localtime shift) }