[1160] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[D-O-H] r1108 - in trunk/owl/perl/modules: IRC/lib/BarnOwl/Message Jabber/lib/BarnOwl/Message

daemon@ATHENA.MIT.EDU (nelhage@MIT.EDU)
Thu Oct 29 18:13:37 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
X-Original-To: nelhage@nelhage.com
To: dirty-owl-hackers@mit.edu
From: nelhage@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Thu, 21 Aug 2008 02:08:39 -0400 (EDT)

Author: nelhage
Date: 2008-08-21 02:08:39 -0400 (Thu, 21 Aug 2008)
New Revision: 1108

Modified:
   trunk/owl/perl/modules/IRC/lib/BarnOwl/Message/IRC.pm
   trunk/owl/perl/modules/Jabber/lib/BarnOwl/Message/Jabber.pm
Log:
Convert Message::IRC and Message::Jabber to use the new BarnOwl::command()

We should now be able to properly narrow to MUCs and users and
channels containing whitespace or quotation marks.


Modified: trunk/owl/perl/modules/IRC/lib/BarnOwl/Message/IRC.pm
===================================================================
--- trunk/owl/perl/modules/IRC/lib/BarnOwl/Message/IRC.pm	2008-08-21 04:52:04 UTC (rev 1107)
+++ trunk/owl/perl/modules/IRC/lib/BarnOwl/Message/IRC.pm	2008-08-21 06:08:39 UTC (rev 1108)
@@ -19,7 +19,8 @@
     my $self = shift;
     my $inst = shift;
 
-    my ($filter, $ftext);
+    my $filter;
+    my @filter;
 
     if($self->is_private) {
         my $who;
@@ -29,10 +30,12 @@
             $who = $self->sender;
         }
         $filter = "irc-user-$who";
-        my $ftext  =
-             qq{( type ^irc\$ and filter personal and }
-           . qq{( ( direction ^in\$ and sender ^$who\$ ) or ( direction ^out\$ and recipient ^$who\$ ) ) ) };
-        BarnOwl::filter("$filter $ftext");
+        @filter  =
+             (qw{( type ^irc$ and filter personal and },
+              qw{( ( direction ^in$ and sender}, "^$who\$",
+              qw{ ) or ( direction ^out$ and recipient}, "^$who\$",
+              qw{) ) ) });
+        BarnOwl::command("filter", "$filter", @filter);
         return $filter;
     } else {
         # To a Channel
@@ -42,12 +45,17 @@
         my ($filter, $ftext);
         if ($inst && $self->body =~ /^(\S+):/) {
             $filter = "irc-$network-channel-$channel-$sender-$1";
-            $ftext = qq{type ^irc\$ and network ^$network\$ and channel ^$channel\$ and ( sender ^$sender\$ or sender ^$1\$ )};
+            @filter =
+                 (qw{type ^irc$ and network}, "^$network\$",
+                  qw{and channel}, "^$channel\$",
+                  qw{and ( sender}, "^$sender\$",
+                  qw{or sender}, "^$1\$",qq{)});
         } else {
             $filter = "irc-$network-channel-$channel";
-            $ftext = qq{type ^irc\$ and network ^$network\$ and channel ^$channel\$};
+            @filter = (qw{type ^irc$ and network}, "^$network\$",
+                       qw{and channel}, "^$channel\$");
         }
-        BarnOwl::filter("$filter $ftext");
+        BarnOwl::command("filter", "$filter", @filter);
         return $filter;
     }
 }

Modified: trunk/owl/perl/modules/Jabber/lib/BarnOwl/Message/Jabber.pm
===================================================================
--- trunk/owl/perl/modules/Jabber/lib/BarnOwl/Message/Jabber.pm	2008-08-21 04:52:04 UTC (rev 1107)
+++ trunk/owl/perl/modules/Jabber/lib/BarnOwl/Message/Jabber.pm	2008-08-21 06:08:39 UTC (rev 1108)
@@ -55,7 +55,7 @@
     my $self = shift;
     my $inst = shift;
 
-    my ($filter, $ftext);
+    my $filter;
 
     if($self->jtype eq 'chat') {
         my $user;
@@ -68,8 +68,8 @@
     } elsif ($self->jtype eq 'groupchat') {
         my $room = $self->room;
         $filter = "jabber-room-$room";
-        $ftext = qq{type ^jabber\$ and room ^$room\$};
-        BarnOwl::filter("$filter $ftext");
+        BarnOwl::command(qw[filter], $filter,
+                         qw[type ^jabber$ and room], "^$room\$");
         return $filter;
     } elsif ($self->login ne 'none') {
         return smartfilter_user($self->from, $inst);
@@ -82,10 +82,10 @@
 
     $user   = Net::Jabber::JID->new($user)->GetJID( $inst ? 'full' : 'base' );
     my $filter = "jabber-user-$user";
-    my $ftext  =
-        qq{type ^jabber\$ and ( ( direction ^in\$ and from ^$user ) }
-      . qq{or ( direction ^out\$ and to ^$user ) ) };
-    BarnOwl::filter("$filter $ftext");
+    BarnOwl::command(qw[filter], $filter, qw[type ^jabber$],
+                     qw[and ( ( direction ^in$ and from], "^$user",
+                     qw[) or ( direction ^out$ and to ], "^$user",
+                     qw[ ) ) ]);
     return $filter;
 
 }


home help back first fref pref prev next nref lref last post