Mercurial > pidgin
view libpurple/plugins/perl/common/Purple.pm @ 20351:d938cdb2339a
applied changes from a3511433f0830f88e2e470b22fd2c706e2aa7713
through cca81a1b623d3a31f3a7d03158eddb36ecf4bfbc
applied changes from cca81a1b623d3a31f3a7d03158eddb36ecf4bfbc
through f881ac75f7e0412344009a6cc0f00318fa750fa0
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Sun, 21 Oct 2007 04:51:10 +0000 |
parents | ca09f5b57672 |
children |
line wrap: on
line source
package Purple; use 5.008; use strict; use warnings; use Carp; require Exporter; use AutoLoader; our @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. # This allows declaration use Purple ':all'; # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); our $VERSION = '0.01'; sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. my $constname; our $AUTOLOAD; ($constname = $AUTOLOAD) =~ s/.*:://; croak "&Purple::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { croak $error; } { no strict 'refs'; *$AUTOLOAD = sub { $val }; } goto &$AUTOLOAD; } require XSLoader; XSLoader::load('Purple', $VERSION); # Preloaded methods go here. 1; __END__ =head1 NAME Purple - Perl extension to the libpurple instant messenger library. =head1 SYNOPSIS use Purple; =head1 ABSTRACT This module provides the interface for using perl scripts as plugins in libpurple. =head1 DESCRIPTION This module provides the interface for using perl scripts as plugins in Purple. With this, developers can write perl scripts that can be loaded in Purple as plugins. The scripts can interact with IMs, chats, accounts, the buddy list, libpurple signals, and more. The API for the perl interface is very similar to that of the Purple C API, which can be viewed at http://developer.pidgin.im/doxygen/ or in the header files in the Purple source tree. =head1 FUNCTIONS =over =item @accounts = Purple::accounts Returns a list of all accounts, online or offline. =item @chats = Purple::chats Returns a list of all chats currently open. =item @connections = Purple::connections Returns a list of all active connections. =item @conversations = Purple::conversations Returns a list of all conversations, both IM and chat, currently open. =item @conv_windows = Purple::conv_windows Returns a list of all conversation windows currently open. =item @ims = Purple::ims Returns a list of all instant messages currently open. =back =head1 SEE ALSO Purple C API documentation - http://developer.pidgin.im/doxygen/ Purple website - http://pidgin.im/ =head1 AUTHOR Christian Hammond, E<lt>chipx86@gnupdate.orgE<gt> =head1 COPYRIGHT AND LICENSE Copyright 2003 by Christian Hammond This library is free software; you can redistribute it and/or modify it under the terms of the General Public License (GPL). For more information, see http://www.fsf.org/licenses/gpl.txt =cut