App-Bondage

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

    - 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

LICENSE  view on Meta::CPAN


		     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.

README  view on Meta::CPAN

    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

README  view on Meta::CPAN


     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 )