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 }