myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> Документация DBHub - Написание скриптов на Perl

Теги
Нет тегов для показа
Артём
сообщение 20.10.2010, 18:08
Сообщение #1


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 605
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 767 раз




DB Hub принимает скрипты, написанные на перле. Для примера - смотрите скрипты. О том как программировать на перле, можете посомтреть здесь www.perl.com или здесь www.perldoc.com.

Все файлы в директории ".dbhub/scripts" с именами, заканчивающимися на ".pl" воспринимаются как скрипты во время запуска хаба и каждый раз при использовании команды !reloadscripts.

Делая скрипты, полезно запускать хаб с опцией -d, что направит вывод хаба в консоль. Если Вы сделаете ошибки в скрипте, некоторые ошибки интерпертатора перл будут выведены в консоль, что может оказать существенную помощь в отладке. как только будеьте уверены, что скрипт работает как надо, можете запускать хаб как обычно в фоне. Опция -d толкьо для теста, поскольку некоторые специальные символы в $Lock или $Key псоледовательностях могут сделать терминал не пригодным.

Ниже следует описание событий и функций, которые можно использовать в скриптах ( function(arg_1, arg_2, ..., arg_n) ).

Аргумент - ник пользователя, представляется в виде строки.

added_perm_ban(string banentry);
Срабатывает, когда добавляется запись в banlist.


added_temp_ban(string banentry, int time);
Срабатывает, когда временный бан добавляется в banlist. Время бана выражено в секундах.


added_perm_allow(string allowentry);
Срабатывает, когда добавляется запись в allowlist.


added_temp_allow(string allowentry, int time);
Срабатывает, когда добавляется временная запись в allowlist. Время выражено в секундах.


added_perm_nickban(string allowentry);
Срабатывает, когда добавляется запись в nickbanlist.


added_temp_nickban(string banentry int time);
Срабатывает, когда добавляется временная запись в nickbanlist. Время выражено в секундах.


kicked_user(string kicked_user, string kicking_user);
Срабатывает, когда был кикнут пользователь. kicked_user - тот, кто был кикнут, а kicking_user - тот, кто кикнул.


added_registered_user(string nick);
Срабатывает, когдадобавляется запись в reglist о зарегистрированном пользователе.


added_multi_hub(string hostname, int port);
Срабатывает, когда подлинкованный хаб добавляется в linklist.


started_redirecting(string hostname);
Срабатывает, когда администратор перенаправляет всех пользователей.


mass_message(string message);
Срабатывает, когда администратор отправляет массовое сообщение (приватное сообщение всем).


started_serving();
Срабатывает, когда запускается хаб.


multi_hub_data_chunk_in(string data);
Срабатывает, когда получены данные с подлинкованного хаба.


attempted_connection(string hostname);
Срабатывает, когда кто-то пытается подключиться к хабу.


data_arrival(user_t user, string data);
Срабатывает, когда пользователь посылает данные хабу, вероятно, одна из самых полезных функций.


admin_connected(user_t user);
Срабатывает, когда ADMIN заходит на хаб.


chef_connected(user_t user);
Срабатывает, когда CHEEF заходит на хаб.


op_connected(user_t user);
Срабатывает, когда OP заходит на хаб.


kvip_connected(user_t user);
Срабатывает, когда KVIP заходит на хаб.


vip_connected(user_t user);
Срабатывает, когда VIP заходит на хаб.


reg_connected(user_t user);
Срабатывает, когда REG заходит на хаб.


prot_connected(user_t user);
Срабатывает, когда PROTECTED заходит на хаб.


new_user_connected(user_t user);
Срабатывает, когда REGULAR заходит на хаб, т.е. после отправки $MyINFO хабу.


user_disconnected(string nick);
Срабатывает, когда пользователь уходит с хаба.


hub_timer();
Срабатывает каждые ALARM_TIME секунд, по умолчанию параметр установлен в 15 минут.


-------------------------------------------------------------------------------

Здесь представлены доступные функции выполняемые на виртуальном объекте odch. Тип user_t такой же как и в событиях выше.

Эти функции используются для получения пользовательских атрибутов.


string odch::get_ip(user_t user);
Возвращает IP адрес пользователя как строку.


string odch::get_hostname(user_t user);
Возвращает имя хоста пользователя.


string odch::get_version(user_t user);
Возвращает версию клиента пользователя.


string odch::get_description(user_t user);
Возвращает описание пользователя.


string odch::get_email(user_t user);
Возвращает email пользователя.


int odch::get_connection(user_t user);
Возвращает тип соединения пользователя как целое число, соответственно: 28.8: 1, 33.6: 2, 56: 3, Satellite: 4 ISDN: 5, DSL: 6, Cable: 7, LAN(T1): 8, LAN(T3): 9.


int odch::get_flag(user_t user);
Возвращает флаг пользователя.


int odch::get_share(user_t user);
Возвращает величину шары пользователя в байтах.


int odch::check_if_banned(user_t user);
Возвращает 1, если пользователь в банлисте (banlist), и 0, если нет.


int odch::check_if_allowed(user_t user);
Возвращает 0, если пользователь находится в allowlist, и 0, если нет.


odch::check_if_registered(string nick);
Проверяет наличие ника в реглисте (reglist). Возвращает 0, если пользователя там нет, 1 если он PROTECTED, 2 если REG, 3 если VIP, 4 если KVIP, 5 если OP, 6 если CHEEF, 7 если ADMIN, и 8 если OWNER.


-------------------------------------------------------------------------------

Функции для взаимодействия с пользователями.


odch::data_to_user(user_t user, string data);
Отправляет данные пользователю, например, личное сообщение: $To Nickname From: Scriptname $<scriptname> Message.| Примечание, это raw команда, клиенты не обрабатывают команду, если она не заканчивается на "|".


odch::kick_user(user_t user);
Кикнуть пользователя.


odch::force_move_user(user_t user, string ip);
Отправяет команду перенаправления пользователя, где ip - IP адрес или имя хоста, куда пользователь должен будет соедениться.


-------------------------------------------------------------------------------

Эти функции используются для получения и изменения переменных конфиг файла.


var odch::get_variable(string variable_name);
Возвращает значение переменной из конфиг файла. Переменная может быть как числом так и строкой, взависимости от запрашиваемой переменной. Помимо переменных в конфиг файле, этой функцией можно получить ещё три переменных: working_dir, hub_uptime и total_share.
working_dir - путь к корню хаба. По умолчанию, это домашняя директория пользователя.
hub_uptime - аптайм хаба в секундах.
total_share - величина всей шары на хабе в байтах.


odch::set_variable(string variable, string value);
Задаёт значение переменной в конфиг файле. Даже если типа переменной - число, необходимо посылать значение как строку, например: set_variable("max_users", "800");


-------------------------------------------------------------------------------

Функции для добавления и удаления записей из списков.


odch::add_ban_entry(string banentry);
Добавляет запись в banlist.


odch::add_nickban_entry(string banentry);
Добавляет запись в nickbanlist.


odch::remove_ban_entry(string banentry);
Удаляет запись из banlist.


odch::remove_nickban_entry(string banentry);
Удаляет запись из nickbanlist.


odch::add_allow_entry(string allowentry);
Добавляет запись в allowlist.


odch::remove_allow_entry(string allowentry);
Удаляет запись из allowlist.


odch::add_reg_user(string nick, string password, int type);
Добавляет аккаунт в reglist. Тип 0 для обычных зарегистрированных пользователей, 1 для OP, и 2 для OP Admins (OP с доступом к администраторским командам в чате).


odch::remove_reg_user(string nick);
Удалить пользователя из reglist.


-------------------------------------------------------------------------------

Различные функции для взаимодействия с хабом.


odch::data_to_all(string data);
Отправить данные всем пользователям пользователям, например, сообщение в чате: <Botname> Message.|


int odch::count_users();
Возвращает число подключенных к хабу пользователей.


string odch::get_user_list();
Возвращает всех пользователей на хабе разделённых пробелами.


odch::register_script_name(string nick);
Регистрирует 'nick' как ник скрипта в никлисте, так пользователи смогу отправлять личное сообщение скрипту. Ник добавится в reglist со случайным паролем. Примечание, запись в реглисте не будет удалена после того, как скрипт будет выгружен или хаб остановится, это нужно будет делать в ручную.


-------------------------------------------------------------------------------

Будте осторожны вводя odch имена функций, т.к. если Вы ошибётесь, вы не получите никакой информации об этом, и скрипт не будет работать.


Спасибо сказали:
Go to the top of the page
+Quote Post
 
Начать новую тему
Ответов

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new ВАЖНО: Topic has attachmentsМодули для скриптов RusHub
26 Setuper 25 176 21.3.2017, 17:31 Посл. сообщение: Alexey
No New Posts ВАЖНО: Topic has attachmentsВопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
1 048 Wariner 494 372 12.3.2017, 22:09 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 1 445 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No New Posts От: Установка скриптов
От темы с ID: 5657
0 MIKHAIL 1 858 29.7.2014, 23:37 Посл. сообщение: MIKHAIL
No New Posts Установка скриптов
Нужна помощь по установке
2 _wRz_ 2 670 29.7.2014, 16:11 Посл. сообщение: Артём
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 10 710 28.1.2014, 13:11 Посл. сообщение: Alexey
No New Posts Ищу специалиста на позицию Perl (Lua) developer
Московское представительство американской софтверной компании приглаша
0 Katteia 2 498 25.10.2012, 15:33 Посл. сообщение: Katteia
No New Posts Единая платформа для скриптов
Обсуждения вопроса создания единой платформы скриптов
5 Enyby 4 141 18.1.2012, 20:15 Посл. сообщение: Setuper
No new Topic has attachmentsПеределка скриптов
Прошу помощи
47 Fe(one)X 21 127 26.12.2011, 15:04 Посл. сообщение: Ksan
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 14 019 6.12.2011, 0:34 Посл. сообщение: Enyby
No new ВАЖНО: Topic has attachmentsМетод Быстрого Перевода Скриптов Под API_1
Самостоятельный быстрый перевод из API_2 ---> в API_1
30 Setuper 32 683 14.8.2011, 21:16 Посл. сообщение: Олешка
No New Posts конфиг dbhub
/u
8 Lamo 7 087 14.8.2011, 7:36 Посл. сообщение: Lamo
No New Posts От: Переделка скриптов
От темы с ID: 4941
6 Ksan 4 615 12.8.2011, 11:33 Посл. сообщение: Ksan
No New Posts пингер на perl
.
0 Lamo 4 695 5.8.2011, 23:30 Посл. сообщение: Lamo
No new ВАЖНО: Запросы Скриптов
Ваши идеи по разработке скриптов под HeXHuB
36 Setuper 25 310 16.5.2011, 9:40 Посл. сообщение: ANDRBEST

 



RSS Сейчас: 19.10.2018, 10:59