Mercurial > pidgin
comparison plugins/perl/scripts/count_down.pl @ 11170:0e9e2b923d09
[gaim-migrate @ 13271]
Fixed some bugs and made some additions to the XSUBS. Added some of my test scripts which are incomplete, but mostly functional. GaimPluginPrefs and GaimGtkPluginPrefs--using evals to do the Gtk widgets with gtk2-perl--work. Plugin actions can now be added, but only one for now.
committer: Tailor Script <tailor@pidgin.im>
author | John H. Kelm <johnkelm@gmail.com> |
---|---|
date | Fri, 29 Jul 2005 13:38:00 +0000 |
parents | |
children | 6fd82071a7b8 |
comparison
equal
deleted
inserted
replaced
11169:778d5464a9b8 | 11170:0e9e2b923d09 |
---|---|
1 use Gaim; | |
2 | |
3 %PLUGIN_INFO = ( | |
4 perl_api_version => 2, | |
5 name => "Countdown Info Timer", | |
6 version => "0.1", | |
7 summary => "Makes a countdown in days from today.", | |
8 description => "Long description coming....", | |
9 author => "John H. Kelm <johnhkelm\@gmail.com>", | |
10 url => "http://gaim.sourceforge.net/", | |
11 | |
12 load => "plugin_load", | |
13 unload => "plugin_unload" | |
14 ); | |
15 | |
16 $GLOBAL_TEST_VAR = "STUFF!"; | |
17 | |
18 sub plugin_unload { | |
19 my $plugin = shift; | |
20 } | |
21 | |
22 sub plugin_init { | |
23 return %PLUGIN_INFO; | |
24 } | |
25 | |
26 | |
27 sub plugin_load { | |
28 my $plugin = shift; | |
29 | |
30 # Retrieve all the accounts | |
31 @accounts = Gaim::Accounts::get_all(); | |
32 | |
33 print "NUM OF ACCS: " . $accounts . "\n"; | |
34 # Search each account's user info for our tag | |
35 foreach $acc (@accounts) { | |
36 print "IN ACCOUNTS\n"; | |
37 $user_info = Gaim::Account::get_user_info($acc); | |
38 print "USER INFO 1: " . $user_info . "\n"; | |
39 # Find <countdown> and replace | |
40 $user_info =~ /countdown([0-9]+).([0-9]+).([0-9]+)/; | |
41 print "Found: " .$1 . " " . $2 . " " . $3 . "\n"; | |
42 $days = count_days($1, $2, $3); | |
43 $user_info =~ s/countdown(\d\d\d\d).(\d\d).(\d\d)/$days/; | |
44 print "USER INFO 2: " . $user_info . "\n"; | |
45 # Gaim::Account::set_user_info($acc, $user_info); | |
46 | |
47 } | |
48 | |
49 eval ' | |
50 use Gtk2 \'-init\'; | |
51 use Glib; | |
52 $window = Gtk2::Window->new(\'toplevel\'); | |
53 $window->set_border_width(10); | |
54 $button = Gtk2::Button->new("Hello World"); | |
55 $button->signal_connect(clicked => \&hello, $window); | |
56 | |
57 $window->add($button); | |
58 $button->show; | |
59 $window->show; | |
60 # Gtk2->main; | |
61 | |
62 0; | |
63 | |
64 '; warn $@ if $@; | |
65 } | |
66 | |
67 sub hello { | |
68 my ($widget, $window) = @_; | |
69 print "Called from sub hello!\n "; | |
70 print "Test var: " . $GLOBAL_TEST_VAR . " \n"; | |
71 @accounts = Gaim::Accounts::get_all(); | |
72 $acc = $accounts[0]; | |
73 $user_info = Gaim::Account::get_user_info($acc); | |
74 print "USER INFO from sub hello: " . $user_info . "\n"; | |
75 $window->destroy; | |
76 } | |
77 | |
78 sub count_days { | |
79 ($year, $month, $day) = @_; | |
80 | |
81 | |
82 eval ' | |
83 use Time::Local; | |
84 $future = timelocal(0,0,0,$day,$month-1,$year); | |
85 '; warn $@ if $@; | |
86 $today = time(); | |
87 $days = int(($future - $today)/(60*60*24)); | |
88 return $days; | |
89 } |