File: chat.pl

package info (click to toggle)
libsoap-lite-perl 1.27-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 1,680 kB
  • sloc: perl: 8,908; makefile: 23; cs: 16
file content (33 lines) | stat: -rw-r--r-- 1,118 bytes parent folder | download | duplicates (3)
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) }