From d5cfd4be40bcfb8259425ea5a79b273798d02e26 Mon Sep 17 00:00:00 2001 From: diSabler Date: Sat, 12 Jul 2014 10:42:08 +0400 Subject: add: plugin example --- plugins/.empty.py | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 plugins/.empty.py diff --git a/plugins/.empty.py b/plugins/.empty.py new file mode 100644 index 0000000..affa5e8 --- /dev/null +++ b/plugins/.empty.py @@ -0,0 +1,128 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# --------------------------------------------------------------------------- # +# # +# Plugin for iSida Jabber Bot # +# Copyright (C) diSabler # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +# --------------------------------------------------------------------------- # + +# ---------------------------------------------------------------------- +# фукнция вызывается при подаче команду боту +def empty_command(type, jid, nick, text): return +# type - тип chat или groupchat +# jid - конференция или jid из которой пришла команда +# nick - ник пославшего команду +# text - параметры команды + +# ---------------------------------------------------------------------- +# функция вызывается раз в секунду. +def empty_timer(): return +# параметров нет. + +# ---------------------------------------------------------------------- +# функция вызывается при входящем презенсе +def empty_presence(room,jid,nick,type,arr): return +# room ... конференция из которой пришел презенс или jid +# jid .... jid пославшего презенс +# nick ... nick пославшего презенс +# type ... тип презенса + +# arr .... массив дополнительных пареметров: +# (text, role, affiliation, exit_type, exit_message, show, priority, not_found) + +# text - статусное сообщение +# role - роль +# affiliation - аффиляция +# exit_type - тип выхода "вышел" | "выгнали" | "забанили" +# exit_message - статусное сообщение при выходе или ризон при кике/бане +# show - статус online|chat|away|xa|dnd +# priority - приоритет +# not_found - тип презенса: +# 0 - вход +# 1 - смена роли\аффиляции +# 2 - смена статуса + +# ---------------------------------------------------------------------- +# функция вызывается при входящих сообщениях +# при пассивной обработке сообщений без ответа в конференцию +def empty_message(room,jid,nick,type,text): return +# room ... конференция из которой пришло сообщение +# jid .... jid пославшего сообщение +# nick ... ник пославшего сообщение +# type ... тип сообщения +# text ... текст сообщения + +# ---------------------------------------------------------------------- +# функция вызывается при входящих сообщениях, +# при активной обработке сообщений с ответом в конференцию +# в зависмости от возвращаемого результата (False|True) срабатывает или не срабатывает флуд +def empty_act_message(room,jid,nick,type,text): return True +# room ... конференция из которой пришло сообщение +# jid .... jid пославшего сообщение +# nick ... ник пославшего сообщение +# type ... тип сообщения +# text ... текст сообщения + +# ---------------------------------------------------------------------- + +global execute, timer, presence_control, message_control, message_act_control + +# если данные фичи не нужны - удалить ниже и из global +timer = [empty_timer] # список функций, которые вызываются раз в секунду +presence_control = [empty_presence] # реакция на презенс +message_control = [empty_message] # пассивная реакция на сообщение +message_act_control = [empty_act_message] # активная реакция на сообщение + +# описание команд +execute = [(0, 'empty', empty_command, 1, 'command decription')] +# 1. уровень доступа: +# 0 - без ограничений +# 1 - не ниже visitor|none +# 2 - не ниже visitor|member +# 3 - не ниже participant|none +# 4 - не ниже participant|member +# 5 - не ниже moderator|none +# 6 - не ниже moderator|member +# 7 - не ниже moderator|admin +# 8 - не ниже moderator|owner +# 9 - владелeц бота +# 2. название команды на которую бот будет реагировать +# 3. название функции, которая вызывается командой +# 4. тип передачи параметров: +# 0 - передавать справку и все параметры после неё в виде массива +# 1 - не передавать параметров +# 2 - передавать остаток текста после команды +# 5. описание команды, которое покажет бот по help <название_команды> +# при этом в файл локали надо поместить текст вида 'command decriptionописание команды' + +# полезные функции: +# send_msg(type,jid,nick,msg) - отправка сообщения +# readfile(filename) - чтение файла +# writefile(filename,data) - запись файла +# getFile(filename,default) - чтение файла. если файла нет - создание с содержимым default +# get_tag(body,tag) - взять tag из body +# join(conference) - войти в конференцию. возвращает None или ошибку +# leave(conference,sm) - покинуть конференцию со статусным сообщением sm +# getName(jid) - взять NAME@server.tld/resource +# getServer(jid) - взять name@SERVER.TLD/resource +# getResourse(jid) - взять name@server.tld/RESOURCE +# getRoom(jid) - взять NAME@SERVER.TLD/resource +# shell_execute(cmd) - выполнить shell команду +# get_affiliation(room,nick) - возвращает аффиляцию +# get_level(room,nick) - возвращает (уровень_доступа, jid) +# html_encode(body) - определение кодировки и декодирование body в unicode -- cgit v1.2.3