JRuDevels

Jabber Russian Developers Forum.
Log in Register FAQ Memberlist Search JRuDevels Forum Index

JRuDevels Forum Index » Разработка и проектирование [Devel] » Отправка сообщение на форум phpBB из jabber-клиента Goto page 1, 2  Next
Post new topic  Reply to topic View previous topic :: View next topic 
Отправка сообщение на форум phpBB из jabber-клиента
PostPosted: Tue Apr 19, 2005 5:00 pm Reply with quote
leksey
Графоман
Графоман
Joined: 17 Dec 2004
Posts: 1909
Location: Москва, Тушино




Думаю. Лучше тут продолжить разговор.
Дима спрашивает:
Quote:
надо будет решить как будет происходит добавление сообщений, я так и не понял к чему вы пришли...
если это нужно только для того что бы давать ответ на месагу которая говорит о том что "в теме, в которой Вы следите за ответами" был дан ответ, то это впринципе уже есть осталось доделать такие вещи как нарисовать кнопку в форме, и устроить отправку сообщения.

Да. Первая очередь работ по жабберизации форума это возможность отвечать на сообщения что присылаются ботом JRD_Forum@heavy-online.ru
Только не понял причем тут кнопка в форме? Ты, видимо, думаю, что тут HTML с какого-то бока должен быть задейстовован. :-)

Я же вижу это иначе.
1. Бот xmpp://JRD_Forum@heavy-online.ru прислал мне, например, новое сообщение из темы "Запросы плагинов и идеи..".
Quote:
Здравствуйте!

В теме "Запросы новых плагинов, просто идеи новых плагинов" появилось новое сообщение. Новые уведомления не будут приходить, пока Вы не посетите http://forum.JRuDevels.org/viewtopic.php?p=728#728

Далее приведёно сообщение от Anonymous:
---------------------------------------------
[b:a2767528f9]Binary,[/b:a2767528f9] Правда ты ничего не забыл? :) Я уже заждалси совсем...
---------------------------------------------
Если вы больше не хотите следить за темой, перейдите по следующей ссылке: http://forum.JRuDevels.org/viewtopic.php?t=55&unwatch=topic

Спасибо за пользование нашим Форумом, JRuDevels Forum Robot.


2. Я хочу ответить на это сообщение. При этом пофигу какой у меня Jabber-клиент. Мне достаточно сказать "Reply" и написать ответ.

Этот ответ попадает тому же самому боту с JID-ом JRD_Forum@heavy-online.ru. Который и должен запостить его в форум в ту самую тему.

Это я описал как должно все работать на уровне пользователя.
Но самое интересное дальше. Как же научить этого самого бота отправлять сообщения на форум phpBB. Бот пока только умеет получать сообщения от форума и отсылать на некий JID.
Кроме того, когда мы пишем боту ответ, который он должен запостить, бот должен как-то "связать" то сообщение, что он нам прислал и наш ответ. Иначе бот просто не будет знать в какую тему постить сообщение.

Вот мое вИдение задачи. Как ее решить не мне думать. Чукча не писатель :-).
Но ясно, что проблема ассоциации уведомления и ответа должна осуществляться на основе некого ID, который должен включаться в тело письма и при ответе на него тоже в нем оставаться.
Ровно этот способ использован в Beeline. Где так отвечают на SMS, который приходит на почту. И там достаточно сказать reply, потом пустую строку (как разделитель) и текст ответа.

Еще проблема в том, что reply в разных клиентах может быть реализован по-разному, а может и вовсе отсутствовать.
В том же яйке в принципе есть кнопка "Cit.reply", которая работает идентично кнопкам Reply в почтовых клиентах.

Чтобы гибче было предлагаю сделать так. Ответ должен формировать так.
Новый текст
пустая строка
Старый текст, внутри которого живет ID или просто только ID.

например, как может выглядеть уведомление и ответ с помощью jabber-клиента.

СООБЩЕНИЕ от бота
{
Здравствуйте!

В теме "Запросы новых плагинов, просто идеи новых плагинов" появилось новое сообщение (ID:T55). Новые уведомления не будут приходить, пока Вы не посетите http://forum.JRuDevels.org/viewtopic.php?p=728#728

Далее приведёно сообщение от Anonymous:
---------------------------------------------
[b:a2767528f9]Binary,[/b:a2767528f9] Правда ты ничего не забыл? :) Я уже заждалси совсем...
---------------------------------------------
Если вы больше не хотите следить за темой, перейдите по следующей ссылке: http://forum.JRuDevels.org/viewtopic.php?t=55&unwatch=topic

Спасибо за пользование нашим Форумом, JRuDevels Forum Robot.
}

ОТВЕТ боту
{
Ну подожди еще маленько. Будет и белка и свисток.

Здравствуйте!

В теме "Запросы новых плагинов, просто идеи новых плагинов" появилось новое сообщение (ID:T55). Новые уведомления не будут приходить, пока Вы не посетите http://forum.JRuDevels.org/viewtopic.php?p=728#728

Далее приведёно сообщение от Anonymous:
---------------------------------------------
[b:a2767528f9]Binary,[/b:a2767528f9] Правда ты ничего не забыл? :) Я уже заждалси совсем...
---------------------------------------------
Если вы больше не хотите следить за темой, перейдите по следующей ссылке: http://forum.JRuDevels.org/viewtopic.php?t=55&unwatch=topic

Спасибо за пользование нашим Форумом, JRuDevels Forum Robot.[/quote]
}

P.S.
Даже полноценного ID не надо. Достаточно передавать ID темы!
Как в примере ID:T55
Потому что URL темы из примера:
http://forum.jrudevels.org/viewtopic.php?t=55
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 5:09 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Поправка. Сейчас бота JRD_Forum, можно сказать, не существует. Форум сам логинится под своим аккаунтом и передает нужные уведомления. Надо будет поднять параллельного бота, который будет получать ответ и отсылать http запрос скрипту форума, который добавит сообщение и в теле ответа вернет результат, который бот вернет клиенту или вернет тайм-аут.

Насчет ID, его можно писать в сабже сообщения. Тогда, при нажатии Reply клиент просто добавит в начало Re: так, что ID вытащить будет не сложно.

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 5:14 pm Reply with quote
Dimarik
Разработчик
Разработчик
Joined: 14 Apr 2005
Posts: 66
Location: Tushino




написать reply пробел ответ это гуд, только одно для меня не понятно, я уже говорил, что я не знаю как осуществляеться передача мессаджев внутри jabber - клиента, могу сказать только за web форму - надо что бы данные приходили на форум методом POST.
Всё что потребуется сделать с форумом небольшой апдейт одного скрипта, а данные которые нужны для ответа... id темы непроблемма вытащить, сам текст сообщения и самое главное jid от кого сообщение.

не знаю только как осуществить отправку на форум данных методом POST, это наверно вопрос к Binary, можно ли будет сделать такое через бота?

_________________
Тушинский хомяк
View user's profile Send private message Send Jabber-message Visit poster's website
PostPosted: Tue Apr 19, 2005 5:19 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Dimarik wrote:
не знаю только как осуществить отправку на форум данных методом POST, это наверно вопрос к Binary, можно ли будет сделать такое через бота?

я поговорю с Heavy насчет поднять второго бота, поднимем бота, такого же, как Ревер, но просто отсылающего запросы по http. Нет проблем. Тем более, бот будет работать на том же хосте, что и форум, так что в скрипте можно проверять, чтоб IP был 127.0.0.1, для лишней секурности (бывает ли секурность лишней? Wink )

P.S. Dimarik, sorry насчет либы, что-то я совсем уже не знаю, за что браться, постараюсь тебе выслать как можно быстрее...

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 5:23 pm Reply with quote
Dimarik
Разработчик
Разработчик
Joined: 14 Apr 2005
Posts: 66
Location: Tushino




Binary wrote:
..так что в скрипте можно проверять, чтоб IP был 127.0.0.1, для лишней секурности (бывает ли секурность лишней? Wink )

ну это как хочешь, по большому счёту это будет не к чему.

Binary wrote:
P.S. Dimarik, sorry насчет либы, что-то я совсем уже не знаю, за что браться, постараюсь тебе выслать как можно быстрее...

окей, не торопись, будет время высылай.

_________________
Тушинский хомяк
View user's profile Send private message Send Jabber-message Visit poster's website
PostPosted: Tue Apr 19, 2005 5:26 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Dimarik wrote:
Binary wrote:
..так что в скрипте можно проверять, чтоб IP был 127.0.0.1, для лишней секурности (бывает ли секурность лишней? Wink )

ну это как хочешь, по большому счёту это будет не к чему.

да как сказать... я так понимаю, скрипту передаем JID, ID темы, само сообщение. Получается, что, зная это, можно будет запостить сообщение от любого лица? А если 127.0.0.1, то нет, не получится.

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 5:33 pm Reply with quote
leksey
Графоман
Графоман
Joined: 17 Dec 2004
Posts: 1909
Location: Москва, Тушино




Все хорошо. Но есть Но.
Subject. В том же яйке он вобще так далеко убран, что хрен отыщешь. Он оказался в меню Messages,
И второе. При Reply он не сохраняется.
Я потом мы же хотим сделать механиз не очень зависимым от того же яйка. А если в клиенте вобще нельзя сабжект заполнять? То как тогда.

И второе, что совсем забыл. Писать то бот должен от имени того человека, что отправляет сообщение. Значит бот должен сам логиниться на форум что-ли? Т.е. он должен знать пароль. Как тут то решили задачку?
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 5:34 pm Reply with quote
leksey
Графоман
Графоман
Joined: 17 Dec 2004
Posts: 1909
Location: Москва, Тушино




А у phpBB не ли API, который нам может помочь? Чтобы бот с форум по API общался, а не пытался эмулировать работу человека по HTTP?
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 5:38 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




leksey wrote:
Все хорошо. Но есть Но.
Subject. В том же яйке он вобще так далеко убран, что хрен отыщешь. Он оказался в меню Messages,
И второе. При Reply он не сохраняется.
Я потом мы же хотим сделать механиз не очень зависимым от того же яйка. А если в клиенте вобще нельзя сабжект заполнять? То как тогда.

И второе, что совсем забыл. Писать то бот должен от имени того человека, что отправляет сообщение. Значит бот должен сам логиниться на форум что-ли? Т.е. он должен знать пароль. Как тут то решили задачку?

Авториться будем по JID отправителя, бот его знает, Димарик вроде это сделал. А вот без сабжа плохо Sad очень плохо Sad очень затруднит процедуру. Как при ответе может пропадать сабж - тоже непонятно... Shocked

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 7:08 pm Reply with quote
Dimarik
Разработчик
Разработчик
Joined: 14 Apr 2005
Posts: 66
Location: Tushino




Авторизироваться будет довольно просто, так как авторизация на форуме происходит только если у пользователя есть jid, то jid станет индетификатором, на основание jid форум будет узнавать пользователя!
Бот должен отдать на определённый адресс, определённые переменные, всё остальное пускай делает скрипт самого форума. Для этого и замарачивался с поиском момента в котором можно было бы обойти авторизацию и сессию.

не понял проблемму с Subjeсt?!

2Binary Безопастность - ну по сути с тобой согласен, а вобще я подумаю ещё над этим, возможно получиться как - нить это ещё закрыть.

_________________
Тушинский хомяк
View user's profile Send private message Send Jabber-message Visit poster's website
Subjы
PostPosted: Tue Apr 19, 2005 7:58 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Дима, у каждого Jabber-сообщения, имеющего стандартный тип, есть поле <subject>, типа сабжа в е-мейле. Обычно клиент, при нажатии "Ответить" копирует это поле в новое сообщение, но подставляет "Re:", идея была в том, чтоб запихать id в subj, тогда пользователю вообще не надо заморачиваться с номерами. Все просто и прозрачно. Жажц, в который раз, все испортил... Sad

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
PostPosted: Tue Apr 19, 2005 8:04 pm Reply with quote
Dimarik
Разработчик
Разработчик
Joined: 14 Apr 2005
Posts: 66
Location: Tushino




как пример, возможно я не прав, Вы мя поправляйте -
допустим приходит сообщение, в конце которого -
Quote:
Если вы больше не хотите следить за темой, перейдите по следующей ссылке: http://forum.JRuDevels.org/viewtopic.php?t=68&unwatch=topic

то есть id темы у нас есть, мы можем перенести эту строчку в ответ
Quote:
<body>Вы собираетесь разместить ответ в теме: http://forum.JRuDevels.org/viewtopic.php?t=68&unwatch=topic</body>

если мы можем так сделать, то это решение проблеммы. Пишем простой парсер и дастаём занчение id, да придёться помарочиться что бы его потом вставить, но это моя проблемма я её решу.
это так для примера... наверняка есть и другие варианты!

_________________
Тушинский хомяк
View user's profile Send private message Send Jabber-message Visit poster's website
PostPosted: Tue Apr 19, 2005 8:09 pm Reply with quote
Lion
Разработчик
Разработчик
Joined: 10 Jan 2005
Posts: 699
Location: г. Волжский




Предлагаю следующий протокол

Сообщение от форума:
<ID> <Название темы>
сообщение от: <nickname>, <ссылка на тему>
<Текст сообщения>

Ответ:
<ID> <Текст ответа>

ID брать или как код темы или генерить произвольный и запоминать какой код какому JID и теме соответствует.

Первый вариан хорошь тем, что можно посылать посты в форум не только как ответ, но зато есть вероятность ошибки в коде при ответе. Второй вариант исключает возможность ошибки.

Можно одновременно реализовать второй и первый вариант.
View user's profile Send private message Send Jabber-message HabaHaba - Fast communicate ICQ Number
PostPosted: Tue Apr 19, 2005 8:20 pm Reply with quote
Dimarik
Разработчик
Разработчик
Joined: 14 Apr 2005
Posts: 66
Location: Tushino




можно сделать многое, только для того что-бы понять все возможности и оценить как и что будет лучше работать, надо сделать эскиз ИМХО.
Когда будет реальная возможность передать по jabber на определённую страничку переменные, тогда будет видно как и что будет работать.
Пока, я лично не могу понять как будет происходит обмен сообщениями. Вы все ясен перец "Исскустные Жабоводы", а я пока не особо разобрался как связать Jabber and HTTP.

2Lion в Ответе, наверно тогда -
<id><jid><message>

_________________
Тушинский хомяк
View user's profile Send private message Send Jabber-message Visit poster's website
снова сабжи
PostPosted: Tue Apr 19, 2005 8:21 pm Reply with quote
Binary
Разработчик
Разработчик
Joined: 17 Dec 2004
Posts: 1712
Location: Омск




Думаю, можно, если не нашли ID в теме, использовать ID из тела письма, брать его с самой первой строки, со второй строки - текст. Но второй идентификатор должен быть уникальным. Для сабжа, не должен Smile.
Quote:
Пишем простой парсер и дастаём занчение id, да придёться помарочиться что бы его потом вставить, но это моя проблемма я её решу.
это вроде проблема бота скорее[/quote]

_________________
And I'm feeling good!
View user's profile Send private message Send Jabber-message Visit poster's website HabaHaba - Fast communicate
Отправка сообщение на форум phpBB из jabber-клиента
JRuDevels Forum Index » Разработка и проектирование [Devel]
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
All times are GMT + 3 Hours  
Page 1 of 2  
Goto page 1, 2  Next
  
  
 Post new topic  Reply to topic  


Powered by phpBB © 2001-2004 phpBB Group
phpBB Style by Vjacheslav Trushkin