python + jabber. как получить оффлайн сообщение
Есть, конечно. Модуль xmpp.
У кого-нибудь есть джаббер-бот болтающий по icq-транспорту? Хочу заглушку поставить. Язык значения не имеет.
Посмотри в исходники gajim.
про xmpp я упомянул, что как там регаться я не нашёл.
либо предложи пример использования функциональности, либо ссылку на доку, либо выругайся матом, что совсем все зажрались не хотят исходники даже посмотреть.
иначе твоё сообщение не несёт особого смысла
сейчас посмотрю
это вот ищешь? Смотреть функцию xmpp.features.register
Хорошо лужу газифицировал. Ты не $ python -c 'import xmpp
help (xmpp.features.register)' | cat
Help on function register in module xmpp.features:
register(disp, host, info)
Perform registration on remote server with provided info.
disp must be connected dispatcher instance.
Returns true or false depending on registration result.
If registration fails you can get additional info from the dispatcher's owner
attributes lastErrNode, lastErr and lastErrCode.
спасибо.
я вот на этот мануал никак выйти не мог, хотя и догадывался, что он где-то существует
вспоминая твои предыдущие вопросы, в других тредах, я понимаю, что ты сам никогда не ищешь
только кто ж его знает, что после xmpp. нужно написать, чтобы нужную инфу получить.
только кто ж его знает, что после xmpp. нужно написать, чтобы нужную инфу получить.
Кхе-кхе
Emacs знает
Достаточно просто знать про dir
Там через dir не понятно. Я бы не догадался искать register именно в features.
но после долгих неудачных попыток, можно и на него обратить внимание
Вот сейчас выковыриваю из MoinMoin модуль перевода викиразметки в docbook — там dir'ом не обойдешься.
from inspect import ismodule, ismethod, isfunction, isclass
from inspect import getmembers, getdoc, getmodule, getargspec
from imp import find_module, load_module
def reversemap(func, *arg):
for l in arg:
l.reverse
res = map(func, *arg)
res.reverse
return res
def test(what, where, cmpFunc):
members = getmembers(where, lambda o: ismethod(o) or isfunction(o
return [(where,n,v) for n,v in members if cmpFunc(what,n)]
def walk(what, where, cmpFunc, res=[], checked=[]):
if where not in checked:
checked.append(where)
res += test(what,where, cmpFunc)
if ismodule(where) and hasattr(where,'__all__'):
__import__(where.__name__,fromlist=where.__all__)
filter_ = lambda o: (ismodule(o) or isclass(o and o not in checked
for n,v in getmembers(where, filter_):
walk(what, v, cmpFunc, res, checked)
return res
def prettyPrint(listOfResults, noDocs):
for from_,member,obj in listOfResults:
if ismodule(from_):
print '%s:'%from_.__name__
else:
print '%s.%s'%(getmodule(obj).__name__, from_.__name__)
argSpec = getargspec(obj)
args = argSpec[0]
defs = list([str(a) for a in argSpec[3]] if argSpec[3] else [])
args = reversemap(lambda a,d: '%s=%s'%(a,d) if d else a, args, defs)
print '%s(%s)'%(member, ','.join(args
if not noDocs:
print getdoc(obj)
print '---------------'
#public wrapper
def search(what, modName, noDocs=True):
where = __import__(modName, fromlist=['*'])
cmpFunc = lambda a, b: a in b
prettyPrint(walk(what,where,cmpFunc noDocs)
from u import search
search('parse','xml')
user='server.com'
jid = xmpp.protocol.JID(user)
cl = xmpp.Client(jid.getDomaindebug=[])
cl.connect
cl.auth(jid.getNode pwd)
cl.send(xmpp.protocol.Message('server2.com','test'
emacs - это редактор текстовый?
как послать сообщение, открыв чат?
cl.send(xmpp.protocol.Message('server2.com', 'test', typ='chat'
Другие способы - какой-нить высокоуровневый интерфейс поищи в доках
Или пакетом pyxmpp
upd апиридил
что-то перерыл gajim, не могу понять, где он это делает.
полезно иногда выяснять ответы на вопросы самостоятельно. По вопросу думаю, что всё зависит от сервера.
онлайн-сообщения нормально доходят, а вот для тех, которые на серваке лежат, видимо нужно какое-то iq сообщение послать
вот это почитал, но там ничего не нашёл. (возможно плохо читал)
http://www.xmpp.org/rfcs/rfc3920.html
http://www.xmpp.org/rfcs/rfc3921.html
просто я очень быстро отконнекчивался и не успевал прочитать сообщение.
Оставить комментарий
Phoenix
см. ниже=========
субж.
чтобы можно было зарегаться и отослать сообщение
в обычной xmpp я что-то не нашёл ни доки, ни как регаться в примерах