Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/isida/4.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordiSabler <dissy@ya.ru>2014-07-12 10:42:08 +0400
committerdiSabler <dissy@ya.ru>2014-07-12 10:42:08 +0400
commitd5cfd4be40bcfb8259425ea5a79b273798d02e26 (patch)
treedd5cdd27d4d6127b4d165e95bc09ee6cd5ca3158
parent2a0224d78a6440964d4aabced65cef47d76dc1c4 (diff)
add: plugin example
-rw-r--r--plugins/.empty.py128
1 files changed, 128 insertions, 0 deletions
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 <dsy@dsy.name> #
+# #
+# 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 <http://www.gnu.org/licenses/>. #
+# #
+# --------------------------------------------------------------------------- #
+
+# ----------------------------------------------------------------------
+# фукнция вызывается при подаче команду боту
+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<tab>описание команды'
+
+# полезные функции:
+# 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