LINUX.ORG.RU
ФорумTalks

jabber->dictd bot


0

0

Сегодня мне сообщили UIN бота со словарём ушакова. Стало обидно за державу.

Короче говоря, никто, случайно, не хочет захостить у себя на сервере бота, который переводит слова при помощи dictd?

Написан на питоне с использованием pyxmpp (ЕМНИП, на нём же написан gajim) и dictclient.

ps aux | grep bot.py

davidov 13198 0.0 1.1 7948 5860 pts/6 S+ 17:47 0:00 /usr/bin/python ./bot.py

Все пожелания к коду попробую выполнить.

Перемещено cavia_porcellus из Development

★★★★

Спасибо, cavia_porcellus.

Davidov ★★★★
() автор топика

ЕМНИП, sulci как раз использует dictd для перевода слов

выложи бота где нибудь, попробую запустить у себя на darkmachine.org

JB ★★★★★
()

А какой функционал? В конфы ходит?

Мне тоже дай, если можно.

generatorglukoff ★★
()
Ответ на: комментарий от JB

http://myths.ru/tmp/dictbot.tar.gz

Это глубокая бета, я ещё даже не успел проверить unicode. Функционал пока простой: даёт авторизацию и шлёт переводы слов. Из зависимостей dictclient.py (лежит в tar.gz, т.к. в официальном есть бага) и pyxmpp.

Запускать так:

./dictbot.py JID password dictd.xdsl.by mueller7

В качестве словаря можно указывать также ! (первый найденный ответ).

Я думаю, что если запускать на сервере, то нужно научить его входить с нескольких JID одновременно (на каждый словарь по JIDу).

Конструктивная критика принимается.

Davidov ★★★★
() автор топика
Ответ на: комментарий от Davidov

BTW эта версия сыплет дебаг в консоль.

Davidov ★★★★
() автор топика
Ответ на: комментарий от Davidov

запустил, dict@darkmachine.org. Хотелось бы чтобы он ответ отправлял чатом, а не отдельным сообщением

JB ★★★★★
()
Ответ на: комментарий от JB

>Хотелось бы чтобы он ответ отправлял чатом, а не отдельным сообщением

Попробую разобраться (у меня в gajim treat all incoming messages as chat).

>и еще, jid и пароль лучше хранить в конфиге, чем передавать как параметры

Да, это я собирался сделать.

>tar-bomb

Поправлю.

Davidov ★★★★
() автор топика
Ответ на: комментарий от Davidov

Чото оно у меня не работает:

Traceback (most recent call last):
  File "./dictbot.py", line 19, in <module>
    import xmpp
ImportError: No module named xmpp

pyxmpp ставил и 1.0.0 (который вроде стабильный) и 1.0.0.s20070831 (который вроде как последний снапшот)

Python 2.5.1, libxml2-python-2.6.21

andrey@silverblood (~/pyxmpp-1.0.0.s20070831/tests)$ ./all.py 
..data/vcard1.xml:1: parser warning : xmlns: URI vcard-temp is not absolute
<vCard xmlns='vcard-temp'>
                         ^
.data/vcard_without_n.xml:1: parser warning : xmlns: URI vcard-temp is not absolute
<vCard xmlns='vcard-temp'>
                         ^
.data/vcard_without_n.xml:1: parser warning : xmlns: URI vcard-temp is not absolute
<vCard xmlns='vcard-temp'>
                         ^
...............................................................................
..................
----------------------------------------------------------------------
Ran 101 tests in 5.488s

OK
andrey@silverblood (~/pyxmpp-1.0.0.s20070831/tests)$ 

generatorglukoff ★★
()
Ответ на: комментарий от router

>Смени ник, пока окончательно не испортил карму :D

карму всегда можно поднять интегралами

generatorglukoff ★★
()
Ответ на: комментарий от Davidov

еще иногда он падает ни с того ни с сего

DEBUG: dispatcher   ok    Got jabber:client/iq stanza
DEBUG: dispatcher   ok    Dispatching iq stanza with type->set props->[u'jabber:iq:roster'] id->push
DEBUG: roster       ok    Setting roster item ars3n@jabber.ru...
DEBUG: socket       got   <message from='чей_нибудь_jid' to='dict@darkmachine.org' xml:lang='en' type='chat' id='ab00a'>\n<body>test</body>\n<active xmlns='http://jabber.org/protocol/chatstates'/>\n<nick xmlns='http://jabber.org/protocol/nick'>чей_то_nick</nick>\n</message>
DEBUG: dispatcher   ok    Got jabber:client/message stanza
DEBUG: dispatcher   ok    Dispatching message stanza with type->chat props->[u'jabber:client', u'http://jabber.org/protocol/chatstates', u'http://jabber.org/protocol/nick'] id->ab00a
u'test'
Traceback (most recent call last):
  File "./dictbot.py", line 77, in ?
    GoOn(conn)
  File "./dictbot.py", line 50, in GoOn
    while StepOn(conn): pass
  File "./dictbot.py", line 45, in StepOn
    conn.Process(1)
  File "/usr/lib/python2.4/site-packages/xmpp/dispatcher.py", line 302, in dispatch
    handler['func'](session,stanza)
  File "./dictbot.py", line 28, in message
    defination=dictd.define(dict, text.encode('UTF8'))
  File "/home/artem/dictbot/dictclient.py", line 178, in define
    self.getdbdescs()               # Prime the cache
  File "/home/artem/dictbot/dictclient.py", line 129, in getdbdescs
    self.dbdescs = self.get100dict()
  File "/home/artem/dictbot/dictclient.py", line 99, in get100dict
    for line in self.get100result()[1]:
  File "/home/artem/dictbot/dictclient.py", line 85, in get100result
    code, text = self.getresultcode()
  File "/home/artem/dictbot/dictclient.py", line 57, in getresultcode
    code, text = line.split(' ', 1)
ValueError: need more than 1 value to unpack

JB ★★★★★
()
Ответ на: комментарий от JB

причем вылетает совершенно в разных местах :)

JB ★★★★★
()
27 февраля 2008 г.

xmpp://translate.jrudevels.org

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.