| |
1 $MODULE_NAME = "Signals Test Script in Perl"; |
| |
2 |
| |
3 use Purple; |
| |
4 |
| |
5 %PLUGIN_INFO = ( |
| |
6 perl_api_version => 2, |
| |
7 name => "Perl: $MODULE_NAME", |
| |
8 version => "0.1", |
| |
9 summary => "Signals Test plugin for the Perl interpreter.", |
| |
10 description => "Demonstrate the user of purple signals from " . |
| |
11 "a perl plugin.", |
| |
12 author => "Sadrul Habib Chowdhury <sadrul\@pidgin.im>", |
| |
13 url => "http://developer.pidgin.im/wiki/sadrul/", |
| |
14 |
| |
15 load => "plugin_load", |
| |
16 unload => "plugin_unload" |
| |
17 ); |
| |
18 |
| |
19 # Accounts |
| |
20 sub account_connecting_cb |
| |
21 { |
| |
22 my $account = shift; |
| |
23 Purple::Debug::misc("signals test in perl", "account-connecting (" . $account->get_username() . ")\n"); |
| |
24 } |
| |
25 |
| |
26 # Buddylist |
| |
27 sub buddy_signed_on |
| |
28 { |
| |
29 my $buddy = shift; |
| |
30 Purple::Debug::misc("signals test in perl", "buddy-signed-on (" . $buddy->get_name() . ")\n"); |
| |
31 } |
| |
32 |
| |
33 # Connections |
| |
34 sub signed_on |
| |
35 { |
| |
36 my $conn = shift; |
| |
37 Purple::Debug::misc("signals test in perl", "signed-on (" . $conn->get_account()->get_username() . ")\n"); |
| |
38 } |
| |
39 |
| |
40 # Conversations |
| |
41 sub conv_received_msg |
| |
42 { |
| |
43 my ($account, $sender, $message, $conv, $flags, $data) = @_; |
| |
44 Purple::Debug::misc("signals test in perl", "$data (" . $account->get_username() . ", $sender, $message, $flags)\n"); |
| |
45 } |
| |
46 |
| |
47 sub plugin_load |
| |
48 { |
| |
49 my $plugin = shift; |
| |
50 |
| |
51 # Hook to the signals |
| |
52 |
| |
53 # Accounts |
| |
54 $act_handle = Purple::Accounts::get_handle(); |
| |
55 Purple::Signal::connect($act_handle, "account-connecting", $plugin, |
| |
56 \&account_connecting_cb, 0); |
| |
57 |
| |
58 # Buddy List |
| |
59 $blist = Purple::BuddyList::get_handle(); |
| |
60 Purple::Signal::connect($blist, "buddy-signed-on", $plugin, |
| |
61 \&buddy_signed_on, 0); |
| |
62 |
| |
63 # Connections |
| |
64 $conn = Purple::Connections::get_handle(); |
| |
65 Purple::Signal::connect($conn, "signed-on", $plugin, |
| |
66 \&signed_on, 0); |
| |
67 |
| |
68 # Conversations |
| |
69 $conv = Purple::Conversations::get_handle(); |
| |
70 Purple::Signal::connect($conv, "received-im-msg", $plugin, |
| |
71 \&conv_received_msg, "received im message"); |
| |
72 Purple::Signal::connect($conv, "received-chat-msg", $plugin, |
| |
73 \&conv_received_msg, "received chat message"); |
| |
74 } |
| |
75 |
| |
76 sub plugin_unload |
| |
77 { |
| |
78 # Nothing to do here for this plugin. |
| |
79 } |
| |
80 |