libpurple/plugins/perl/scripts/count_down.pl

Wed, 13 May 2009 20:29:03 +0000

author
Marcus Lundblad <malu@pidgin.im>
date
Wed, 13 May 2009 20:29:03 +0000
changeset 27110
05ca719b901b
parent 16241
0c4919abc3b7
child 18068
b6554e3c8224
child 33955
55aa58076485
permissions
-rw-r--r--

Support custom smileys in MUCs (when all participants support BoB and a maximum
of 10 participants are in the chat).
Always announce support for BoB, since disable custom smileys will still turn
off fetching them, and BoB can be used for other purposes further on.

use Purple;

%PLUGIN_INFO = ( 
	perl_api_version => 2, 
	name => "Countdown Info Timer", 
	version => "0.1", 
	summary => "Makes a countdown in days from today.", 
	description => "Long description coming....", 
	author => "John H. Kelm <johnhkelm\@gmail.com>", 
	url => "http://pidgin.im", 
	
	load => "plugin_load", 
	unload => "plugin_unload" 
); 

	$GLOBAL_TEST_VAR = "STUFF!";

sub plugin_unload { 
	my $plugin = shift; 
}

sub plugin_init { 
	return %PLUGIN_INFO; 
} 


sub plugin_load { 
	my $plugin = shift; 
	
	# Retrieve all the accounts
	@accounts = Purple::Accounts::get_all();
	
	print "NUM OF ACCS: " . $accounts . "\n";
	# Search each account's user info for our tag
	foreach $acc (@accounts) {
		print "IN ACCOUNTS\n";
		$user_info = $acc->get_user_info();
		print "USER INFO 1: " . $user_info . "\n";
		# Find <countdown> and replace
		$user_info =~ /countdown([0-9]+).([0-9]+).([0-9]+)/;
		print "Found: " .$1 . " " . $2 . " " . $3 . "\n";
		$days = count_days($1, $2, $3);
		$user_info =~ s/countdown(\d\d\d\d).(\d\d).(\d\d)/$days/;
		print "USER INFO 2: " . $user_info . "\n";
	#	$acc->set_user_info($user_info);
	
	}
	
	eval '
		use Gtk2 \'-init\';
		use Glib;
		$window = Gtk2::Window->new(\'toplevel\');
		$window->set_border_width(10);
		$button = Gtk2::Button->new("Hello World");
		$button->signal_connect(clicked => \&hello, $window);
		
		$window->add($button);
		$button->show;
		$window->show;
	#	Gtk2->main;
		
		0;
		
	'; warn $@ if $@;
}

sub hello {
	my ($widget, $window) = @_;
	print "Called from sub hello!\n ";
	print "Test var: " . $GLOBAL_TEST_VAR . " \n";
	@accounts = Purple::Accounts::get_all();
	$acc = $accounts[0];
	$user_info = $acc->get_user_info();
	print "USER INFO from sub hello: " . $user_info . "\n";
	$window->destroy;
}

sub count_days {
	($year, $month, $day) = @_;
	
	
	eval '
		use Time::Local;
		$future = timelocal(0,0,0,$day,$month-1,$year); 
	'; warn $@ if $@;
	$today = time();
	$days = int(($future - $today)/(60*60*24));
	return $days;
}

mercurial