App-Bondage
view release on metacpan or search on metacpan
- Generate various server replies without contacting the server.
As a consequence, it should use less traffic and be snappier,
especially when many/large/busy channels are involved.
- Added away_poll config option
0.3.3 Sun Sep 28 04:21:50 GMT 2008
- Fixed crash on client disconnect
0.3.2 Wed Sep 24 20:10:19 GMT 2008
- Fix race condition related to CAPAB IDENTIFY-MSG
- Use less CPU while attaching when recall mode is 'all'
0.3.1 Wed Sep 24 19:06:09 GMT 2008
- Fix bug in recall due to wrong string interpolation
- More pod improvements
- More sanity checks on the config file
0.3.0 Wed Sep 24 00:17:00 GMT 2008
- Handle the CAPAB IDENTIFY-MSG feature smoothly
- Make recall keep track of channel topic changes
- Remove a debugging print statement, doh
- Should detach from the terminal now when not using --debug
- Moved 'bondage' from bin/ to script/ since it's not a binary
- Prettified some of the pod
- Exit cleanly upon getting SIGINT when clients are attached
- Fix bug in 99-test-pod.t
- Create the logs/ dir on demand
0.2.5 Tue Mar 11 01:42:08 GMT 2008
- Fix PM recalling
- Enable plugin_debug in PoCo::IRC when debugging
- A few pod fixes
- Fix MANIFEST
0.2.4 Mon Feb 11 04:33:05 GMT 2008
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to humanity, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.
To do so, attach the following notices to the program. It is safest to
attach them to the start of each source file to most effectively convey
the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
Bondage will reconnect to IRC when it gets disconnected or the IRC
server stops responding.
Recall messages
Bondage can send you all the messages you missed since you detached, or
it can send you all messages received since it connected to the IRC
server, or neither. This feature is based on similar features found in
miau, dircproxy, and ctrlproxy.
Auto-away
Bondage will set your status to away when no clients are attached.
Reclaim nickname
Bondage will periodically try to change to your preferred nickname if it
is taken.
Flood protection
Bondage utilizes POE::Component::IRC's flood protection to ensure that
you never flood yourself off the IRC server.
NickServ support
channels:
"chan1" : ""
"chan2" : "password"
"chan3" : ""
"recall_mode"
(optional, default: *"missed"*)
How many channel messages you want Bondage to remember, and then send to
you when you attach.
"missed": Bondage will only recall the channel messages you missed since
the last time you detached from Bondage.
"none": Bondage will not recall any channel messages.
"all": Bondage will recall all channel messages.
Note: Bondage will always recall private messages that you missed while
you were away, regardless of this option.
lib/App/Bondage.pm view on Meta::CPAN
=head2 Recall messages
Bondage can send you all the messages you missed since you detached, or it
can send you all messages received since it connected to the IRC server, or
neither. This feature is based on similar features found in miau,
dircproxy, and ctrlproxy.
=head2 Auto-away
Bondage will set your status to away when no clients are attached.
=head2 Reclaim nickname
Bondage will periodically try to change to your preferred nickname if it is
taken.
=head2 Flood protection
Bondage utilizes POE::Component::IRC's flood protection to ensure that you
never flood yourself off the IRC server.
lib/App/Bondage.pm view on Meta::CPAN
channels:
"chan1" : ""
"chan2" : "password"
"chan3" : ""
=head3 C<recall_mode>
(optional, default: I<"missed">)
How many channel messages you want Bondage to remember, and then send to you
when you attach.
B<"missed">: Bondage will only recall the channel messages you missed since
the last time you detached from Bondage.
B<"none">: Bondage will not recall any channel messages.
B<"all">: Bondage will recall all channel messages.
B<Note>: Bondage will always recall private messages that you missed while you
were away, regardless of this option.
lib/App/Bondage/Away.pm view on Meta::CPAN
return bless \%self, $package;
}
sub PCI_register {
my ($self, $irc) = @_;
if (!$irc->isa('POE::Component::IRC::State')) {
die __PACKAGE__ . " requires PoCo::IRC::State or a subclass thereof\n";
}
$self->{Message} = 'No clients attached' unless defined $self->{Message};
$self->{clients} = 0;
if ($irc->connected() && $irc->is_away($irc->nick_name())) {
$self->{away} = 1;
}
$irc->plugin_register($self, 'SERVER', qw(001 proxy_authed proxy_close));
return 1;
}
lib/App/Bondage/Away.pm view on Meta::CPAN
This plugin requires the IRC component to be
L<POE::Component::IRC::State|POE::Component::IRC::State> or a subclass thereof.
=head1 METHODS
=head2 C<new>
One optional argument:
B<'Message'>, the away message you want to use. Defaults to 'No clients
attached'.
Returns a plugin object suitable for feeding to
L<POE::Component::IRC|POE::Component::IRC>'s C<plugin_add()> method.
=head2 C<message>
One optional argument:
An away message
lib/App/Bondage/Recall.pm view on Meta::CPAN
to be in the plugin pipeline. It will be added automatically if it is not present.
=head1 METHODS
=head2 C<new>
One optional argument:
B<'Mode'>, which public messages you want it to recall. B<'missed'>, the
default, makes it only recall public messages that were received while no
proxy client was attached. B<'all'> will recall public messages from all
channels since they were joined. B<'none'> will recall none. The plugin will
always recall missed private messages, regardless of this option.
Returns a plugin object suitable for feeding to
L<POE::Component::IRC|POE::Component::IRC>'s C<plugin_add()> method.
=head1 AUTHOR
Hinrik E<Ouml>rn SigurE<eth>sson, hinrik.sig@gmail.com
( run in 0.738 second using v1.01-cache-2.11-cpan-e1769b4cff6 )