| | |
Posted: Thu Oct 18, 2007 10:51 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Code: | 247 print $presence->GetXML(),"\n";
248
249 my $perezens = $presence->GetXML();
250 my $x = $presence->GetX('http://jabber.org/protocol/muc#user');
251 print $x,"\n"; |
Quote: | <presence from='perk11@perk11.info/SieJC' to='jabberwocky@kanet.ru/nokia 3320' xml:lang='en'><priority>0</priority><show>xa</show><status>Вот, к примеру, одна подружка Завела себе собачку. Или, скажем, не собачку, А ублюдошного тролля. Через месяц он ей наскучил, Она его послала в жопу. Но тролль персонаж брутальный, Он понимает все буквально...</status><c node='Siemens Native Jabber Client 2.9.C-Z-r1693' ver='Mi45LkMtWjoxNjkzOjE=' xmlns='http://jabber.org/protocol/caps'/></presence>
Use of uninitialized value in print at ./bot.pl line 251 (#1) |
Кароч вобще ничего из вышеприведенного не хочет работать. |
|
|
|
|
| | |
Posted: Fri Oct 19, 2007 9:54 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
ipse wrote: | Code: | 247 print $presence->GetXML(),"\n";
248
249 my $perezens = $presence->GetXML();
250 my $x = $presence->GetX('http://jabber.org/protocol/muc#user');
251 print $x,"\n"; |
Quote: | <presence from='perk11@perk11.info/SieJC' to='jabberwocky@kanet.ru/nokia 3320' xml:lang='en'><priority>0</priority><show>xa</show><status>Вот, к примеру, одна подружка Завела себе собачку. Или, скажем, не собачку, А ублюдошного тролля. Через месяц он ей наскучил, Она его послала в жопу. Но тролль персонаж брутальный, Он понимает все буквально...</status><c node='Siemens Native Jabber Client 2.9.C-Z-r1693' ver='Mi45LkMtWjoxNjkzOjE=' xmlns='http://jabber.org/protocol/caps'/></presence>
Use of uninitialized value in print at ./bot.pl line 251 (#1) |
Кароч вобще ничего из вышеприведенного не хочет работать. |
А тебя не смутило упоминание http://jabber.org/protocol/muc#user
в методе GetX? Изначальный вопрос у человека был по обработке MUC-презенсов... |
|
|
|
|
| | |
Posted: Fri Oct 19, 2007 9:56 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
ipse wrote: | Что-то не работает..
Code: | Undefined function GetItem in package Net::Jabber::Presence |
Кстати почитал цпан, про Net::Jabber, там тоже ни слова про такую функцию.. |
не там смотрите, уважаемый
Отличная документация содержится в самом дистрибутиве... Вот выдержка из
man Net::Jabber::Stanza:
Code: | http://jabber.org/protocol/muc#user
Name Type Get Set Remove Defined Add
========================== ========= === === ====== ======= ===
Alt scalar X X X X
Password scalar X X X X
StatusCode scalar X X X X
Invite child X X X X
Item child X X X X
User master X X
http://jabber.org/protocol/muc#user - invite objects
Name Type Get Set Remove Defined Add
========================== ========= === === ====== ======= ===
From jid X X X X
Reason scalar X X X X
To jid X X X X
Invite master X X
http://jabber.org/protocol/muc#user - item objects
Name Type Get Set Remove Defined Add
========================== ========= === === ====== ======= ===
ActorJID jid X X X X
Affiliation scalar X X X X
JID jid X X X X
Nick scalar X X X X
Reason scalar X X X X
Role scalar X X X X
Item master X X
|
|
|
|
|
|
| | |
Posted: Fri Oct 19, 2007 8:43 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
InPresence обрабатывает не только MUC презенсы. Твой код не работоспособен к сожалению. |
|
|
|
|
Posted: Fri Oct 19, 2007 8:45 pm |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
Ты хотел чтобы я за тебя бота написал? ))
я тебе показал рабочий код в отдельно взятом вопросе... и ничего более |
|
|
|
|
| | |
Posted: Fri Oct 19, 2007 11:55 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Бота писать не надо, он уже давно написан.
Код не рабочий. Исправь InPresence чтоб он обрабатывал любые презенсы, тогда это будет рабочий код. Эталонный InPresence из JPB выглядит так.
Code: | sub InPresence {
shift;
$Debug->Log2("InPresence .. got: ", @_);
my $presence = shift; #new Net::Jabber::Presence(@_);
return unless defined $presence;
return unless $presence->GetFrom("jid");
$Con->PresenceDBParse($presence);
my $from = $presence->GetFrom() || "";
my $type = $presence->GetType() || "";
my $status = $presence->GetStatus() || "";
my $show = $presence->GetShow() || "";
my $resource;
($from,$resource) = split('/',$from);
$modules->got_msg( type => $type,
body => "",
from => $from,
resource => $resource,
tag => 'presence',
other => {
show => $show,
status => $status
}
);
print "===\n";
print "Presence\n";
print " From $from\n";
print " Type: $type\n";
print " Status: $status ($show)\n";
print "===\n";
} |
Я ведь писал уже, я читал документацию по модулям на цпане, прежде чем изобретать костыли. |
|
|
|
|
| | |
Posted: Sat Oct 20, 2007 12:48 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
Угу, щас |
|
|
|
|
Posted: Sat Oct 20, 2007 1:35 am |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Тогда и не надо кричать, типа "ужос", знаешь как лучше - сделай сам. Я предложил архарусу рабочий вариант, а не теорию. |
|
|
|
|
Posted: Sat Oct 20, 2007 9:42 am |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
ipse wrote: | Тогда и не надо кричать, типа "ужос", знаешь как лучше - сделай сам. Я предложил архарусу рабочий вариант, а не теорию. |
нинада называть рабочим вариантом то, что свалится при перестановке местами аттрибутов тега. |
|
_________________ And I'm feeling good! |
|
|
|
| | |
Posted: Sat Oct 20, 2007 2:48 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
уже исправил
Code: | print $presence->GetXML(),"\n";
my $perezens = $presence->GetXML();
my $x = $presence->GetX('http://jabber.org/protocol/muc#user');
my $item;
my $affil_;
if ($x) {
$item = $x->GetItem();
$jid = $item->GetJID();
$affil_ = $item->GetAffiliation();
}
my @pere_arr = split(/\'/, $perezens);
$from_ = $pere_arr[1];
my $stroka;
my $kluch;
my $konfa_na_udalenie;
my $znachenie;
my $saveto;
if ($type eq "unavailable") {
if ($from_ =~ /(.*)\/$nickname/) {
$konfa_na_udalenie = $1;
while ( ($kluch,$znachenie) = each(%spisokjidov) ) {
if ($kluch =~ /($konfa_na_udalenie\/.*)/) {
delete $spisokjidov{$1};
delete $spisokkonf{$from};
}
}
}
delete $spisokjidov{$from_};
$jid = '';
@pere_arr = '';
}
if ($from_ =~ /conference/ && $jid !~ /3320/ && $jid ne '') {
$spisokjidov{$from_} = "$jid/$affil_";
$saveto .= "$jid\n";
$spisokkonf{$from} = $saveto;
}
$jid = ''; |
|
|
|
|
|
| | |
Posted: Sat Oct 20, 2007 3:05 pm |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
Не пойму: зачем ты используешь Net::Jabber? Таким макаром надо было полностью самому реализовывать XMPP |
|
|
|
|
Posted: Sat Oct 20, 2007 3:51 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
om wrote: | Не пойму: зачем ты используешь Net::Jabber? Таким макаром надо было полностью самому реализовывать XMPP |
авторизация! и шифрование вот самый геморрой ну а вообще, вроде больше напрямую хмл не трогает, так что нормально
но... я, блин, теперь понимаю, зачем в py3k собираются разрешать юникодовые идентификаторы... лучше уж они, чем транслит... интернационализации хоть так, хоть так никакой, но хоть смотреться будет по-человечески... |
|
_________________ And I'm feeling good! |
|
|
|
| | |
Posted: Sat Oct 20, 2007 5:13 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
om wrote: | Не пойму: зачем ты используешь Net::Jabber? Таким макаром надо было полностью самому реализовывать XMPP |
кстати Net::Jabber::Stanza я немного поправил, мне не понравилось как он определяет версию ОС Не все в этих модулях так как хотелось бы, например модуль XML::Parser валится с руганью когда нарывается на символ © в xml файле |
|
|
|
|
Posted: Sat Oct 20, 2007 5:44 pm |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
Ничего не имею против исправления модулей для достижения необходимых целей, но вот использование модуля + собственных костылей (притом что в модуле всё необходимое есть) это не есть тру... |
|
|
|
|
Posted: Sun Oct 21, 2007 6:43 pm |
|
|
apxah |
Отметившийся |
|
|
Joined: 05 Sep 2007 |
Posts: 19 |
Location: 48@conference.jabber.ru |
|
|
|
|
|
|
|
_________________ Уважай чужое мнение,
Но, достойный мудреца,
Сам высказывай суждение
Лишь от первого лица
© Гамзатов |
|
|
|
|