# These are debugging scripts which can be run with "Eval" command. # Check timeouts of foreign handlers my $yesno = $user->GetResponse('YesNo'); if (defined($yesno->{'handlers'})) { for (my $i = 0; $i < scalar @{$yesno->{'handlers'}}; $i++) { my $timeout; if ($yesno->{'handlers'}[$i][0] < 0) { $timeout = $yesno->{'handlers'}[$i][0]; } else { my $date = new Orangutan::Date($yesno->{'handlers'}[$i][0]); $timeout = $date->DateTime; } printf("%s: %s\n", $yesno->{'handlers'}[$i][1]->GetID, $timeout); } } # Check timeouts for contexts my $user = $main::users->GetUser('s-andy@localhost'); foreach my $id (keys %{$user->{'contexts'}->{'in'}}) { my $ctx = $user->{'contexts'}->{'in'}->{$id}[1]; my $timeout = $ctx->GetTimeout; if (defined($timeout)) { printf("%s: %d\n", $ctx->GetID, $timeout); } } printf("TOTAL: %d\n", $user->GetTimeout); # Send a message to an user $main::users->GetUser('s-andy@localhost')->SendMessage("Message..."); # Remove user $main::users->Delete('s-andy@localhost'); $main::jabber->Subscription( type => 'unsubscribed', to => 's-andy@localhost' ); $main::jabber->Subscription( type => 'unsubscribe', to => 's-andy@localhost' ); # Broadcast foreach my $username ($main::users->GetUsers) { $main::users->GetUser($username)->SendMessage("Message..."); } # Check users statuses foreach my $username ($main::users->GetUsers) { my $user = $main::users->GetUser($username); printf("%s: %s\n", $username, defined($user->GetStatus) ? $user->GetStatus : 'offline'); } # Remove user's current task my $user = $main::users->GetUser('s-andy@localhost'); my $task = $user->GetTask; $user->RemoveTask; $user->FireEvent('task', 'cancel', $task); # Check presence data of users foreach my $username ($main::users->GetUsers) { my $user = $main::users->GetUser($username); my $presence = $user->GetField('presence'); printf("%s:\n", $username); for ($i = 0; $i < scalar @{$presence}; $i++) { my $start = new Orangutan::Date($presence->[$i][1]); my $end = new Orangutan::Date($presence->[$i][2]); printf("%s %02d:%02d - %02d:%02d: %s\n", $start->DateTime('date'), $start->GetTime, $end->GetTime, $presence->[$i][0]); } } # Set debug mode for a user for Presence context $main::users->GetUser('s-andy@localhost')->SetField('debug_presence', 1); # Custom SQL query $main::query->Connect; $main::query->Query("SELECT user_id FROM user_preferences"); while (defined(my $user = $main::query->Next)) { printf(" ===> %d\n", $user->{'user_id'}); } $main::query->Disconnect; # Dynamically changing context weight $user->{'contexts'}->{'in'}->{$context}[0] = $newvalue; # Enable DoneRatio hinting $main::users->GetUser('s-andy@localhost')->SetField('enable_doneratio', 1); # kate: syntax perl