Mercurial > pidgin
comparison libpurple/plugins/fortuneprofile.pl @ 15373:5fe8042783c1
Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sat, 20 Jan 2007 02:32:10 +0000 |
parents | |
children | 44b4e8bd759b |
comparison
equal
deleted
inserted
replaced
15372:f79e0f4df793 | 15373:5fe8042783c1 |
---|---|
1 # FORTUNE PROFILE | |
2 # | |
3 # Sets your AIM profile to a fortune (with a header and footer of your | |
4 # choice). | |
5 # | |
6 | |
7 # By Sean Egan | |
8 # seanegan@gmail.com | |
9 # AIM: SeanEgn | |
10 # | |
11 # Updated by Nathan Conrad, 31 January 2002 | |
12 # Changes: | |
13 # * Fortunes have HTML tabs and newlines | |
14 # AIM: t98502 | |
15 # ICQ: 16106363 | |
16 # | |
17 # Updated by Mark Doliner, 15 October 2002 | |
18 # Changes: | |
19 # * Modified to work with the changed perl interface of gaim 0.60 | |
20 # * Fixed a bug where your info would be set to nothing if you had | |
21 # no pre and no post message | |
22 # AIM: lbdash | |
23 # | |
24 # Updated by Christian Hammond, 20 August 2003 | |
25 # Changes: | |
26 # * Modified to work with the changed perl interface of gaim 0.68 | |
27 # AIM: ChipX86 | |
28 | |
29 # Copyright (C) 2001 Sean Egan | |
30 | |
31 # This program is free software; you can redistribute it and/or modify | |
32 # it under the terms of the GNU General Public License as published by | |
33 # the Free Software Foundation; either version 2 of the License, or | |
34 # (at your option) any later version. | |
35 # | |
36 # This program is distributed in the hope that it will be useful, | |
37 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
38 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
39 # GNU General Public License for more details. | |
40 # | |
41 # You should have received a copy of the GNU General Public License | |
42 # along with this program; if not, write to the Free Software | |
43 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
44 | |
45 use Gaim; | |
46 | |
47 %PLUGIN_INFO = ( | |
48 perl_api_version => 2, | |
49 name => "Fortune Profile", | |
50 version => "3.4", | |
51 summary => "Sets your AIM profile to a fortune (with a header and footer of your choice).", | |
52 description => "Sets your AIM profile to a fortune (with a header and footer of your choice).", | |
53 author => "Sean Egan <seanegan\@gmail.com>", | |
54 url => "http://gaim.sf.net/", | |
55 | |
56 load => "plugin_load" | |
57 ); | |
58 | |
59 sub plugin_init { | |
60 return %PLUGIN_INFO; | |
61 } | |
62 | |
63 sub plugin_load { | |
64 $plugin = shift; | |
65 | |
66 $tab = " "; | |
67 $tab = $tab . $tab . $tab . $tab; | |
68 $nl = "<BR>"; | |
69 | |
70 $seconds = 30; # Delay before updating away messages. | |
71 $max = 1020; # Max length of an profile. It should be | |
72 # 1024, but I am being safe | |
73 $pre_message = ""; # This gets added before the fortune | |
74 | |
75 $post_message =""; | |
76 | |
77 $len = 0; | |
78 if ($pre_message ne "") { | |
79 $len += length( $pre_message . "---$nl" ); | |
80 } | |
81 if ($post_message ne "") { | |
82 $len += length("---$nl" . $post_message); | |
83 } | |
84 | |
85 # Command to get dynamic message from | |
86 $command = "fortune -sn " . ($max - $len); | |
87 | |
88 # output the first message and start the timers... | |
89 # This is done as a timeout to prevent attempts to set the | |
90 # profile before logging in. | |
91 Gaim::timeout_add($plugin, $seconds, \&update_away, 0); | |
92 } | |
93 | |
94 sub update_away { | |
95 # The fortunes are expanded into HTML (the tabs and newlines) which | |
96 # causes the -s option of fortune to be a little bit meaningless. This | |
97 # will loop until it gets a fortune of a good size (after expansion). | |
98 | |
99 do { | |
100 do { #It's a while loop because it doesn't always work for some reason | |
101 $fortune = `$command`; | |
102 if ($? == -1) { | |
103 return; | |
104 } | |
105 } while ($fortune eq ""); | |
106 $fortune =~ s/\n/$nl/g; | |
107 $fortune =~ s/\t/$tab/g; | |
108 } while ((length($fortune) + $len ) > $max); | |
109 | |
110 $message = $fortune; | |
111 if ($pre_message ne "") { | |
112 $message = $pre_message . "---$nl" . $message; | |
113 } | |
114 if ($post_message ne "") { | |
115 $message = $message . "---$nl" . $post_message ; | |
116 } | |
117 | |
118 foreach $account (Gaim::accounts()) { | |
119 if ($account->is_connected()) { | |
120 $account->set_user_info($message); | |
121 } | |
122 } | |
123 | |
124 Gaim::timeout_add($plugin, $seconds, \&update_away, 0); | |
125 } |