[1113] in BarnOwl Developers
[D-O-H] r1077 - in branches/barnowl_perlaim/owl: . perl/modules/AIM/lib/BarnOwl/Module
daemon@ATHENA.MIT.EDU (geofft@MIT.EDU)
Thu Oct 29 18:13:09 2009
Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@nelhage.com
Date: Sun, 1 Jun 2008 20:37:02 -0400 (EDT)
To: dirty-owl-hackers@MIT.EDU
From: geofft@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Author: geofft
Date: 2008-06-01 20:37:02 -0400 (Sun, 01 Jun 2008)
New Revision: 1077
Modified:
branches/barnowl_perlaim/owl/commands.c
branches/barnowl_perlaim/owl/perl/modules/AIM/lib/BarnOwl/Module/AIM.pm
Log:
Proof-of-concept AIM client. Maybe less than a proof. Lemma-of-concept.
Modified: branches/barnowl_perlaim/owl/commands.c
===================================================================
--- branches/barnowl_perlaim/owl/commands.c 2008-06-01 08:02:46 UTC (rev 1076)
+++ branches/barnowl_perlaim/owl/commands.c 2008-06-02 00:37:02 UTC (rev 1077)
@@ -2469,12 +2469,12 @@
void owl_command_editresponse_done(owl_editwin *e)
{
- owl_function_run_buffercommand();
-
owl_global_set_typwin_inactive(&g);
owl_editwin_fullclear(e);
wnoutrefresh(owl_editwin_get_curswin(e));
owl_global_set_needrefresh(&g);
+
+ owl_function_run_buffercommand();
}
Modified: branches/barnowl_perlaim/owl/perl/modules/AIM/lib/BarnOwl/Module/AIM.pm
===================================================================
--- branches/barnowl_perlaim/owl/perl/modules/AIM/lib/BarnOwl/Module/AIM.pm 2008-06-01 08:02:46 UTC (rev 1076)
+++ branches/barnowl_perlaim/owl/perl/modules/AIM/lib/BarnOwl/Module/AIM.pm 2008-06-02 00:37:02 UTC (rev 1077)
@@ -15,34 +15,52 @@
use Net::OSCAR;
+our @oscars;
+
+sub on_im_in {
+ my ($oscar, $sender, $message, $is_away) = @_;
+ my $msg = BarnOwl::Message->new(
+ type => 'AIM',
+ sender => $sender,
+ body => $message,
+ away => $is_away,
+ );
+ BarnOwl::queue_message($msg);
+}
+
sub cmd_aimlogin {
+=comment
my ($cmd, $user, $pass) = @_;
- if (undef $user) {
+ if (!defined $user) {
BarnOwl::start_question('Username: ', sub {
cmd_aimlogin($cmd, @_);
});
- } elsif (undef $pass) {
+ } elsif (!defined $pass) {
BarnOwl::start_password('Password: ', sub {
cmd_aimlogin($cmd, $user, @_);
});
} else {
+=cut
+ {
my $oscar = Net::OSCAR->new();
+ my ($user, $pass) = ('...', '...');
$oscar->set_callback_im_in(\&on_im_in);
- $oscar->signon($user, $pass);
+ $oscar->signon(
+ screenname => $user,
+ password => $pass
+ );
+ push @oscars, $oscar;
}
}
+BarnOwl::new_command(aimlogin => \&cmd_aimlogin, {});
-sub on_im_in {
- my ($oscar, $sender, $message, $is_away) = @_;
- my $msg = BarnOwl::Message->new(
- type => 'AIM',
- sender => $sender,
- body => $message,
- away => $is_away,
- );
- BarnOwl::queue_message($msg);
+sub main_loop {
+ for my $oscar (@oscars) {
+ $oscar->do_one_loop();
+ }
}
+$BarnOwl::Hooks::mainLoop->add(\&main_loop);
-BarnOwl::new_command(aimlogin => \&cmd_aimlogin, {});
+1;
-1;
+# vim: set sw=4 et cin: