home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 June / PCWorld_2007-06_cd.bin / komunikace / pidgin / pidgin-2.0.0.exe / perlmod / Purple.pm < prev   
Text File  |  2007-05-04  |  3KB  |  132 lines

  1. package Purple;
  2.  
  3. use 5.008;
  4. use strict;
  5. use warnings;
  6. use Carp;
  7.  
  8. require Exporter;
  9. use AutoLoader;
  10.  
  11. our @ISA = qw(Exporter);
  12.  
  13. # Items to export into callers namespace by default. Note: do not export
  14. # names by default without a very good reason. Use EXPORT_OK instead.
  15. # Do not simply export all your public functions/methods/constants.
  16.  
  17. # This allows declaration    use Purple ':all';
  18. # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
  19. # will save memory.
  20. our %EXPORT_TAGS = ( 'all' => [ qw(
  21.     
  22. ) ] );
  23.  
  24. our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
  25.  
  26. our @EXPORT = qw(
  27.     
  28. );
  29.  
  30. our $VERSION = '0.01';
  31.  
  32. sub AUTOLOAD {
  33.     # This AUTOLOAD is used to 'autoload' constants from the constant()
  34.     # XS function.
  35.  
  36.     my $constname;
  37.     our $AUTOLOAD;
  38.     ($constname = $AUTOLOAD) =~ s/.*:://;
  39.     croak "&Purple::constant not defined" if $constname eq 'constant';
  40.     my ($error, $val) = constant($constname);
  41.     if ($error) { croak $error; }
  42.     {
  43.         no strict 'refs';
  44.  
  45.         *$AUTOLOAD = sub { $val };
  46.     }
  47.  
  48.     goto &$AUTOLOAD;
  49. }
  50.  
  51. require XSLoader;
  52. XSLoader::load('Purple', $VERSION);
  53.  
  54. # Preloaded methods go here.
  55.  
  56. 1;
  57. __END__
  58.  
  59. =head1 NAME
  60.  
  61. Purple - Perl extension to the libpurple instant messenger library.
  62.  
  63. =head1 SYNOPSIS
  64.  
  65.   use Purple;
  66.  
  67. =head1 ABSTRACT
  68.  
  69.   This module provides the interface for using perl scripts as plugins
  70.   in libpurple.
  71.  
  72. =head1 DESCRIPTION
  73.  
  74. This module provides the interface for using perl scripts as plugins
  75. in Purple. With this, developers can write perl scripts that can be
  76. loaded in Purple as plugins. The scripts can interact with IMs, chats,
  77. accounts, the buddy list, libpurple signals, and more.
  78.  
  79. The API for the perl interface is very similar to that of the Purple C
  80. API, which can be viewed at http://developer.pidgin.im/doxygen/ or in
  81. the header files in the Purple source tree.
  82.  
  83. =head1 FUNCTIONS
  84.  
  85. =over
  86.  
  87. =item @accounts = Purple::accounts
  88.  
  89. Returns a list of all accounts, online or offline.
  90.  
  91. =item @chats = Purple::chats
  92.  
  93. Returns a list of all chats currently open.
  94.  
  95. =item @connections = Purple::connections
  96.  
  97. Returns a list of all active connections.
  98.  
  99. =item @conversations = Purple::conversations
  100.  
  101. Returns a list of all conversations, both IM and chat, currently open.
  102.  
  103. =item @conv_windows = Purple::conv_windows
  104.  
  105. Returns a list of all conversation windows currently open.
  106.  
  107. =item @ims = Purple::ims
  108.  
  109. Returns a list of all instant messages currently open.
  110.  
  111. =back
  112.  
  113. =head1 SEE ALSO
  114.  
  115. Purple C API documentation - http://developer.pidgin.im/doxygen/
  116.  
  117. Purple website - http://pidgin.im/
  118.  
  119. =head1 AUTHOR
  120.  
  121. Christian Hammond, E<lt>chipx86@gnupdate.orgE<gt>
  122.  
  123. =head1 COPYRIGHT AND LICENSE
  124.  
  125. Copyright 2003 by Christian Hammond
  126.  
  127. This library is free software; you can redistribute it and/or modify
  128. it under the terms of the General Public License (GPL).  For
  129. more information, see http://www.fsf.org/licenses/gpl.txt
  130.  
  131. =cut
  132.