About | Blog | xapy

xapy — ещё один chat-бот

Когда-то, в начале своего изучения языка Python, для большей наглядности пытался реалиpовать полученные навыки, портируя простейшего irc-бота с php. Со временем код развивался и вырос в так же небольшого, но уже мультипротокольного бота, с системой плагинов, которого тут и представляю. Основными идеями являются: простота использования/расширения, мультипротокольность, абстракция плагинов: пиши однажды, используй везде. На данный момент успешно работает в IRC, XMPP (Jabber) сетях, доступно пару десятков функциональных плагинов, благодаря которым можно внести в работу всю мощь и гибкость языка Python, на котором и написано ядро приложения. На этом первое знакомство завершу, остаётся линк на страничку: xapy + hg репозиторий

Add post to: Delicious Reddit Slashdot Digg Technorati Google
Comment

Comments

buriy 1.07.2008 15:40

а можно про плагины поподробнее?

reply
Yevgen 1.07.2008 15:54

Используются плагины двух видов: протоколы и обработчики, лежат, соответственно, в репе в protocols, processors. Первые — для добавления протколов, в них необходимо реализовать несколько специфических для протокола методов. Вторые — обработчики, выполняют собственно полезную работу. Простейший обработчик состоит из объявления класса, содержащего метод process(), принимающего в качестве аргумента объект, класса сообщение. Используя декораторы можно уменьшить количество рутины так, что один из простейших обработчиков будет иметь вид:

# -*- coding: utf-8 -*-
import time

from processor import Processor
from decorators import simple_named_processor

class TimeProcessor(Processor):
    protocol = 'all'
    lowLevel = 0

    @simple_named_processor('time')
    def process(self, frm, text):
        return frm + unicode(": Сейчас: " +
                        time.strftime("%A, %d %B %Y, %X"), 'UTF-8')
reply

Comment form for «introducing-xapy»

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image