plugins/fortuneprofile.pl

Wed, 01 Dec 2004 01:17:19 +0000

author
Scott Shedden
date
Wed, 01 Dec 2004 01:17:19 +0000
changeset 10282
055f7b0e0f43
parent 7733
887bdae5fe43
child 12406
89863d2d9b8d
permissions
-rw-r--r--

[gaim-migrate @ 11451]
Patch from Scott Shedden to have the blist hidden when Gaim starts.

This actually probably won't work for most people currently, because
on X11, the docklet is added asynchrously, so we usually won't realize the
docklet exists until we've already created the blist. I'm sure there
must be some way around this, though (Scott's solution was to manually hide
the buddy list when the docklet was finally embedded. I may fall back on
that).

committer: Sean Egan <seanegan@pidgin.im>

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

mercurial