Net::Jabber::Query::Filter::Rule - Jabber IQ Filter Rule Module
Net::Jabber::Query::Filter::Rule is a companion to the Net::Jabber::Query::Filter module. It provides the user a simple interface to set and retrieve all parts of a Jabber Filter Rule.
To initialize the Rule with a Jabber <iq/> and then access the filter query you must pass it the XML::Parser Tree array from the Net::Jabber::Client module. In the callback function for the iq: use Net::Jabber; sub iq { my $iq = new Net::Jabber::IQ(@_); my $filter = $iq->GetQuery(); my @rules = $filter->GetRules(); foreach $rule (@rules) { ... } . . . } You now have access to all of the retrieval functions available below. To create a new IQ Filter Rule to send to the server: use Net::Jabber; $Client = new Net::Jabber::Client(); ... $iq = new Net::Jabber::IQ(); $filter = $iq->NewQuery("jabber:iq:filter"); $rule = $filter->AddRule(); ... $client->Send($iq); Using $rule you can call the creation functions below to populate the tag before sending it. For more information about the array format being passed to the CallBack please read the Net::Jabber::Client documentation.
%conditions = $rule->GetConditions(); $body = $rule->GetBody(); $from = $rule->GetFrom(); $resource = $rule->GetResource(); $show = $rule->GetShow(); $size = $rule->GetSize(); $subject = $rule->GetSubject(); $time = $rule->GetTime(); $type = $rule->GetType(); $unavailable = $rule->GetUnavailable(); %actions = $rule->GetActions(); $drop = $rule->GetDrop(); $edit = $rule->GetEdit(); $error = $rule->GetError(); $reply = $rule->GetReply(); $forward = $rule->GetForward(); $offline = $rule->GetOffline(); $continue = $rule->GetContinue();
$rule->SetRule(unavailable=>1, offline=>1); $rule->SetRule(from=>"bob\@jabber.org", forward=>"me\@jabber.org/Pager"); $rule->SetRule(from=>"ex-wife\@jabber.org", reply=>"I don't want to talk you..."); $rule->SetBody("free"); # Future condition $rule->SetFrom("bob"); # Future condition $rule->SetResource("Home"); # Future condition $rule->SetShow("dnd"); # Future condition $rule->SetSize(1024); # Future condition $rule->SetSubject("sex"); # Future condition $rule->SetTime("20000502T01:01:01"); # Future condition $rule->SetType("chat"); # Future condition $rule->SetUnavailable(); $rule->SetDrop(); $rule->SetEdit(); # Future Action $rule->SetError("This JID is not a valid address"); $rule->SetForward("foo\@bar.com/FooBar"); $rule->SetOffline(); $rule->SetReply("I don't want to talk you..."); $rule->SetContinue();
$test = $rule->DefinedBody(); $test = $rule->DefinedFrom(); $test = $rule->DefinedResource(); $test = $rule->DefinedShow(); $test = $rule->DefinedSize(); $test = $rule->DefinedSubject(); $test = $rule->DefinedTime(); $test = $rule->DefinedType(); $test = $rule->DefinedUnavailable(); $test = $rule->DefinedDrop(); $test = $rule->DefinedEdit(); $test = $rule->DefinedError(); $test = $rule->DefinedForward(); $test = $rule->DefinedOffline(); $test = $rule->DefinedReply(); $test = $rule->DefinedContinue();
GetConditions() - returns a hash with the condition name and the value of the tag as the value in the hash. For example: $conditions{unavailable} = 1; $conditions{resource} = "Pager"; $conditions{type} = "chat"; GetBody() - returns the string that the <rule/> uses to match in the body for this condition. **** This condition is still under development **** **** in mod_filter. **** GetFrom() - returns the string that the <rule/> uses to match in the from for this condition. **** This condition is still under development **** **** in mod_filter. **** GetResource() - returns the string that the <rule/> uses to match in the resource of the to for this condition. **** This condition is still under development **** **** in mod_filter. **** GetShow() - returns the string that the <rule/> uses to match in the show for this condition. **** This condition is still under development **** **** in mod_filter. **** GetSize() - returns the string that the <rule/> uses to match in the size for this condition. **** This condition is still under development **** **** in mod_filter. **** GetSubject() - returns the string that the <rule/> uses to match in the subject for this condition. **** This condition is still under development **** **** in mod_filter. **** GetTime() - returns the string that the <rule/> uses to match the time for this condition. **** This condition is still under development **** **** in mod_filter. **** GetType() - returns the string that the <rule/> uses to match the type for this condition. **** This condition is still under development **** **** in mod_filter. **** GetUnavailable() - returns 1 if this condition is set, 0 otherwise. This condition is used to specify that you are unavailable. GetActions() - returns a hash with the condition name and the value of the tag as the value in the hash. For example: $actions{reply} = "I'm not in the office right now."; $actions{continue} = 1; GetDrop() - returns 1 if the message is to be dropped, 0 otherwise. GetEdit() - **** This condition is still under development **** **** in mod_filter. **** GetError() - returns the string that the <rule/> uses to return in error message. GetReply() - returns the string that is sent for this action. GetForward() - returns the JID of the account to forward the message to for this action. GetOffline() - returns 1 if the message is to go to the offline message list, 0 otherwise. GetContinue() - returns 1 if there is a <continue/> tag in the <rule/>, 0 otherwise. This allows you to chain multiple actions in order for one set of conditions.
SetRule(body=>string, - set multiple fields in the <rule/> from=>string, at one time. This is a cumulative resource=>string, and overwriting action. If you show=>string, set the "body" twice, the second size=>string, setting is what is used. If you set time=>string, the show, and then set the type=>string, offline then both will be in the unavailable=>0|1, <rule/> tag. For valid settings edit=>string, read the specific Set functions below. error=>string, forward=>string, offline=>0|1, reply=>string, continue=>0|1) SetBody(string) - sets the string that the <rule/> uses to match against in the body. SetFrom(string) - sets the string that the <rule/> uses to match against in the from. SetResource(string) - sets the string that the <rule/> uses to match against in the resource of the from JID. SetShow(string) - sets the string that the <rule/> uses to match against in the show. SetSize(string) - sets the string that the <rule/> uses to match against for the size of the message. SetSubject(string) - sets the string that the <rule/> uses to match against in the subject. SetTime(string) - sets the string that the <rule/> uses to match against for the time the message is received. SetType(string) - sets the string that the <rule/> uses to match against for the type of message. SetUnavailable() - adds an <unavailable/> to the <rule/> to match if you are offline. SetDrop() - sets that the <rule/> should drop the message from the queue. SetEdit(string) - sets the string that the <rule/> uses to execute the edit action on. SetError(string) - sets the string that goes into the error message for this action. SetForward(string) - sets the JID that the message is forwarded to for this action. SetOffline() - sets that the message goes into the offline queue. SetReply(string) - sets the string that goes into the reply message for this action. SetContinue() - sets that this <rule/> is continued in the next <rule/>.
DefinedBody() - returns 1 if there is a <body/> tag in the <rule/>, 0 otherwise. DefinedFrom() - returns 1 if there is a <from/> tag in the <rule/>, 0 otherwise. DefinedResource() - returns 1 if there is a <resource/> tag in the <rule/>, 0 otherwise. DefinedShow() - returns 1 if there is a <show/> tag in the <rule/>, 0 otherwise. DefinedSize() - returns 1 if there is a <size/> tag in the <rule/>, 0 otherwise. DefinedSubject() - returns 1 if there is a <subject/> tag in the <rule/>, 0 otherwise. DefinedTime() - returns 1 if there is a <time/> tag in the <rule/>, 0 otherwise. DefinedType() - returns 1 if there is a <type/> tag in the <rule/>, 0 otherwise. DefinedUnavailable() - returns 1 if there is a <unavailable/> tag in the <rule/>, 0 otherwise. DefinedDrop() - returns 1 if there is a <drop/> tag in the <rule/>, 0 otherwise. DefinedEdit() - returns 1 if there is a <edit/> tag in the <rule/>, 0 otherwise. DefinedError() - returns 1 if there is a <error/> tag in the <rule/>, 0 otherwise. DefinedForward() - returns 1 if there is a <forward/> tag in the <rule/>, 0 otherwise. DefinedOffline() - returns 1 if there is a <offline/> tag in the <rule/>, 0 otherwise. DefinedReply() - returns 1 if there is a <reply/> tag in the <rule/>, 0 otherwise. DefinedContinue() - returns 1 if there is a <continue/> tag in the <rule/>, 0 otherwise.
By Ryan Eatmon in June of 2000 for http://jabber.org..
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Net::Jabber, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Net::Jabber
CPAN shell
perl -MCPAN -e shell install Net::Jabber
For more information on module installation, please visit the detailed CPAN module installation guide.