Perl scripting HOWTO

Введення

Perl-перша мова сценаріїв, сумісний з gAIM., який несе цінну допомогу для розробників, бажаючих модифікувати свій улюблений клієнт. Pel-сценарії працюють як звичайні плагіни, і їх можна побачити в preference вікні в gAIM. Зараз вони є базовими і складаються лише з декількох функцій. Однак завдяки останнім змінам в gAIM, perl API, більша частина gAIM зараз відкрита.

Напиши свій перший скрипт.

Ти хочеш дізнатися, як написати перл сценарій? Насамперед потрібно познайомитися з перл сценаріями. Перл сценарій в gAIM, це звичайний перл сценарій, який використовується при завантаженні perl-модулі. Тому тепер потрібно встановлювати скрипт $HOME/.gaim/plugins/. Це місце, де виконуються всі плагіни і сценарії, незалежно від мови. Передусім треба написати скрипт для необхідної реєстрації та ініціалізації твого скрипта, який виглядає так:

use Gaim;

%PLUGIN_INFO = (
perl_api_version => 2,
name => «Your s Plugin Name»,
version => «0.1»,
summary => «Brief summary of your plugin.»,
description => «Detailed description of what your plugin does.»,
author => «Your Name »,
url => «yoursite.com/»,

load => «plugin_load»,
unload => «plugin_unload»
);

sub plugin_init {
return %PLUGIN_INFO;
}

sub plugin_load {
my $plugin = shift;
}

sub plugin_unload {
my $plugin = shift;
}

Перше, що ти увидешь, це буде хеш, що називається %PLUGIN_INFO. Там буде міститися базова інформація про твоє плагіні. У майбутньому можна розширити цей хеш, наприклад, для установки твого плагіна.

Функція plugi_init необхідна в будь-якому перл-скрипті. Саме ця функція повертає хеш plugin_info, коли gAIM реєструє і ініціалізує твій плагін для использовагия.

Функція plugin_load викликається, коли користувач завантажує твій плагін в preference вікні або в startup. Змінюється вона один раз, коли плагін використовується. Вона повинна використовуватися при реєстрації таймера.

Функція plugin_unload викликається, коли користувач відповідно перестають юзати плагін. Вона корисна при передчасному відключенні плагіна, такого як видалення тимчасових файлів або збереження ключової інформації.

TIMEOUT

Одна характеристика корисна для письменників плагінів — тайм-аут. Тайм-аут допускає код до запуску через кілька секунд, і досить простий в установці. Тут один спосіб реєстрації тайм-ауту:

sub timeout_cb {
my $data = shift;

Gaim::debug_info(«my perl plugin»,
«Timeout callback called! data says: $data»);
}

sub plugin_load {
my $plugin = shift;

# Start a timeout for 5 seconds.
Gaim::timeout_add($plugin, 5, &timeout_cb, «Hello!»);
}

інший спосіб:

sub plugin_load {
my $plugin = shift;

# Start a timeout for 5 seconds.
Gaim::timeout_add($plugin, 5,
sub {
my $data = shift;

Gaim::debug_info(«my perl plugin»,
«Timeout callback called! data says: $data»);
}, «Hello!»);
}

Тайм-аут автоматично відключається, коли досягає 0. Якщо ви хочете запустити тайм-аут на певну кількість секунд, просто перерегистрируйте його в кінці повернення.

Додатково повертаються параметри даних. Якщо ви не хочете передавати дані для повернення, просто опустіть параметри.

Сигнали

Кожен плагін має сигнали подій. Номер сигналу, що сповіщає про доступ.

Сигнал реєструється при з’єднанні, ім’я сигналу використовується, наприклад, при виклику використовується плагіна. Ось приклад:

sub signed_on_cb {
my ($gc, $data) = @_;
my $account = $gc->get_account();

Gaim::debug_info(«my perl plugin»,
«Account ». $account->get_username(). ” signed on.”);
}

sub plugin_load {
my $plugin = shift;
my $data = “”;

Gaim::signal_connect(Gaim::Connections::handle, «signed-on»,
$plugin, &signed_on_cb, $data);
}

як і у тайм-ауту, може повертатися вкладена програма, і так само як у тайм-ауту параметри даних можна опускати.

переклад: розблокована
спеціально для Hackzona.ru
оригінальна статья:http://gaim.sourceforge.net/api/perl-howto.html