Posted: Wed Oct 17, 2007 7:24 am |
|
|
feez |
Разработчик |
|
|
Joined: 01 Jan 1970 |
Posts: 146 |
|
|
|
|
|
|
|
|
|
|
|
Posted: Wed Oct 17, 2007 7:27 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
Как можно?! Там чистый text/xml |
|
|
|
|
Posted: Wed Oct 17, 2007 8:36 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
feez Бот работает на Net-Jabber-2.0
om Сделай лучше. Да, и это.. Где там парсинг XML в цитированном тобою коде? |
|
|
|
|
| | |
Posted: Wed Oct 17, 2007 8:39 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
om wrote: | ipse wrote: | Тут кстати не только JID'ы но и некоторая другая инфа
Вот как я например сделал чтоб некоторые команды в викторине были доступны только админам и овнерам.
Code: | my $kluch = "$args{from}/$args{resource}";
@infaonike = split(/\//,$::spisokjidov{$kluch});
if ($infaonike[2] eq 'owner' || $infaonike[2] eq 'admin') {
if ($words_vi[0] eq "сл") { $nomer_igry=1;}
if ($words_vi[0] eq "ожидание") { $ctl_ozh=$words_vi[1];}
if ($words_vi[0] eq "старт") { $ctl_igry=1;}
if ($words_vi[0] eq "стоп") { $ctl_igry=0;}
} |
|
Ужос!
Нет слов, уважаемые... Если бы я реально думал что так разбирается XML, то я однозначно придерживался мнения что XML полное гавно Какая-же это структура, если парсить приходится ручками в самой что ни на есть прикладной части... |
я так понимаю, просто аттрибуты у тега местами поменять - и каюк? |
|
_________________ And I'm feeling good! |
|
|
|
| | |
Posted: Wed Oct 17, 2007 8:57 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
|
|
|
|
| | |
Posted: Wed Oct 17, 2007 9:00 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
ipse wrote: | Да где вы тут теги видите? Где XML? |
Code: | if ($stroka eq "><item affiliation=") {$affil_ = $pere_arr[$cotl];} |
я вот про такие вещи. |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Wed Oct 17, 2007 9:11 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Ну это пока никто не поменял, работает пока безотказно. Я знаю что коряво, знаю что костыляво. А вы предложите как лучше сделать, а? |
|
|
|
|
Posted: Wed Oct 17, 2007 9:13 pm |
|
|
Binary |
Разработчик |
|
|
Joined: 17 Dec 2004 |
Posts: 1712 |
Location: Омск |
|
|
|
|
|
|
ipse wrote: | Ну это пока никто не поменял, работает пока безотказно. Я знаю что коряво, знаю что костыляво. А вы предложите как лучше сделать, а? |
это в корне неверно. я могу написать MUC компонент, на котором такой бот не будет работать.
я посоветую не изобретать велосипеды, а использовать XML-парсеры, для чего-то же их придумали? |
|
_________________ And I'm feeling good! |
|
|
|
Posted: Wed Oct 17, 2007 11:16 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Да конечно, очень хотелось бы. А еще лучше средствами Net::Jabber вести разбор. Да вот не выходит никак.. |
|
|
|
|
Posted: Thu Oct 18, 2007 9:12 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
ipse wrote: | feez Бот работает на Net-Jabber-2.0
om Сделай лучше. Да, и это.. Где там парсинг XML в цитированном тобою коде? |
Просто не то процитировал. Имелось ввиду твой предыдущий пост, а там ужос в чистом виде... могу написать лучше, вон спроси у архивариуса - я ему уже сделал... |
|
|
|
|
Posted: Thu Oct 18, 2007 9:54 am |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Так зачем спрашивать, выкладывай сюда. |
|
|
|
|
Posted: Thu Oct 18, 2007 11:37 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
ipse wrote: | Так зачем спрашивать, выкладывай сюда. |
Ну вот, например, процедурка обработчика презенса:
Code: | sub InPresence
{
my $sid = shift;
my $presence = shift;
my $from = $presence->GetFrom('jid');
my $type = $presence->GetType();
my $status;
print "===\n";
print "Presence\n";
print " From $from\n";
print " Type: $type\n";
print " Status: $status\n";
print "===\n";
print $presence->GetXML(),"\n";
print "===\n";
my $x = $presence->GetX('http://jabber.org/protocol/muc#user');
my $item = $x->GetItem();
my $jid = $item->GetJID();
print "=\n";
print $jid, "\n";
}
|
|
|
|
|
|
Posted: Thu Oct 18, 2007 11:46 am |
|
|
om |
Бывалый Жабовод |
|
|
Joined: 26 Sep 2006 |
Posts: 76 |
Location: Россия,Тольятти |
|
|
|
|
|
|
Кстати говоря, Net::Jabber это модуль расширяющий возможности Net::XMPP, а Net::XMPP юзает XML::Stream это так, в качестве ликбеза. |
|
|
|
|
Posted: Thu Oct 18, 2007 8:19 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
om wrote: | Кстати говоря, Net::Jabber это модуль расширяющий возможности Net::XMPP, а Net::XMPP юзает XML::Stream это так, в качестве ликбеза. |
Я в курсе. За код спасибо, будем окультуривать |
|
|
|
|
Posted: Thu Oct 18, 2007 10:32 pm |
|
|
ipse |
Начинающий тестер |
|
|
Joined: 11 Nov 2006 |
Posts: 29 |
|
|
|
|
|
|
|
Что-то не работает..
Code: | Undefined function GetItem in package Net::Jabber::Presence |
Кстати почитал цпан, про Net::Jabber, там тоже ни слова про такую функцию.. |
|
|
|
|
|