Страница 1 из 1

Объединение чата DC++ и CommFort

Добавлено: 11:40, 27.12.2011
saint739
А никто не пытался слить чат DC++ и комфорта?
Есть идея вывесить коммфорт наружу, пока он используется только в локальной сети провайдера у которого я работаю. Коммфорт особо не востребован, зато очень восстребован чат DC++, около 400 человек в нём.

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

Может уже есть плагин такой?
Если нет давайте перейдем к обсуждению как сделать.

Re: Объединение чата DC++ и CommFort

Добавлено: 13:18, 27.12.2011
wizard50
такой плагин уже делали и вроде как даже не один.

Re: Объединение чата DC++ и CommFort

Добавлено: 16:10, 27.12.2011
•NormaBot•
wizard50 писал(а):такой плагин уже делали и вроде как даже не один.
Такой..но совсем не такой.
На сколько я помню.
:)

Re: Объединение чата DC++ и CommFort

Добавлено: 03:10, 28.12.2011
saint739
вижу лишь плагин для отображения активности DC хабов.

Re: Объединение чата DC++ и CommFort

Добавлено: 04:29, 28.12.2011
SV
Хотел я делать сделать и переписку из DC в своём плагине в итоге вообще на плагин забил, т.к вобще в сети отказались от хабов и поставили торент трекер. Правил ошибки в плагине но так на быструю руку, в итоге ошибки остались. Да и самая тяжесть в том что нужно найти уметь писать плагины под DC, или написать что то типа клиента.

Re: Объединение чата DC++ и CommFort

Добавлено: 06:25, 29.12.2011
saint739
Ну если есть наработки - выложи. Клиент под DC я думаю можно будет осилить. Там не всё так сложно. Пишется на LUA скриптах. У меня их куча примеров. Есть функции в антимате например, которые анализируют каждое сообщение, можно это сообщение вставлять от имени бота в канал коммфорта. Ну и в обратную сторону желательно тоже было бы сделать.
Формат такой
_: User - message
_ подчёркивание это имя бота, далее строка собирается из имени юзера в DC и его мессаги.

Для коммфорта я видел плагин для web думаю часть функци можно взять оттуда.

Идеи ? код ? делимся. Буду собирать

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

Re: Объединение чата DC++ и CommFort

Добавлено: 08:32, 29.12.2011
ZigZagkms
saint739 писал(а):Ну если есть наработки - выложи. Клиент под DC я думаю можно будет осилить. Там не всё так сложно. Пишется на LUA скриптах. У меня их куча примеров. Есть функции в антимате например, которые анализируют каждое сообщение, можно это сообщение вставлять от имени бота в канал коммфорта. Ну и в обратную сторону желательно тоже было бы сделать.
Формат такой
_: User - message
_ подчёркивание это имя бота, далее строка собирается из имени юзера в DC и его мессаги.

Для коммфорта я видел плагин для web думаю часть функци можно взять оттуда.

Идеи ? код ? делимся. Буду собирать

По идее потом можно будет в разные каналы все хабы города слить. Думаю идейка хорошая.
На самом деле все намного сложнее.
Во первых, для того чтобы отправлять сообщения с DC через скрипты LUA есть только три пути:
1) Куда нибудь писать (БД, файл и т.п.) и плагином читать оттуда, задержка, куча подводных камней и т.д. и т.п., самый не
рациональный вариант.
2) Отправлять UDP пакетами на плагин, не все могут дойти.
3) Создавать поток, в котором будет крутиться соединение с плагином по протоколу TCP... Очень сложная задача, на LUA,
сложней чем написать отдельный клиент для DC, протокол там не сложный.

Первые два варианта плохи еще и тем, что ответные сообщения от плагина также очень сложно будет получать. DC хабы крутятся с скриптами LUA в одном потоке, соответственно там не должно быть никаких задержек.
Третий действительно сложно сделать, лучше за это дело и не браться, а писать свой клиент для DC. Вот тут подробнейшее описание протокола: http://mydc.ru/topic915.html

Самое правильное тут будет если сам плагин будет создавать поток и в нем создавать подключение к DC хабу, тут мы выигрываем во всем, лично я этот вариант вижу как единственно возможный.

Re: Объединение чата DC++ и CommFort

Добавлено: 11:23, 29.12.2011
SV
Если так то проще писать клиент, и не чего по протоколам передавать не нужно.

Re: Объединение чата DC++ и CommFort

Добавлено: 15:33, 29.12.2011
ZigZagkms
SV писал(а):Если так то проще писать клиент, и не чего по протоколам передавать не нужно.
Как раз таки чтобы написать клиент для DC нужно соблюдать протокол DC.

Re: Объединение чата DC++ и CommFort

Добавлено: 04:06, 30.12.2011
Hellios
На мой взгляд нужно написать плагин мост который конектился бы к серверу DC++ как обычный пользователь и передавал переписку с общего канала в определённый канал в CommFort и наоборот но вот личные сообщения я не представляю как реализовать по такой технологии.

Re: Объединение чата DC++ и CommFort

Добавлено: 04:14, 30.12.2011
saint739
Я думаю не стоит всё усложнять. 2 и 3-й вариант я точно не потяну, мозгов не хватит.
А вот первый, о нём я и думал. Есть события прихода сообщений DC в LUA, а также таймеры.
Делается промежуточная база для двустороннего обмена. Думаю если делать запросы в БД каждые 5 секунд это будет не особо критично ни по нагрузке, ни по длительности ожиданий сообщений в чате.

Вот нашел человек сделал почти то что нужно, но в одностороннем порядке DC->MYSQL->IRC

Re: Объединение чата DC++ и CommFort

Добавлено: 04:18, 30.12.2011
Hellios
saint739 писал(а):Я думаю не стоит всё усложнять. 2 и 3-й вариант я точно не потяну, мозгов не хватит.
А вот первый, о нём я и думал. Есть события прихода сообщений DC в LUA, а также таймеры.
Делается промежуточная база для двустороннего обмена. Думаю если делать запросы в БД каждые 5 секунд это будет не особо критично ни по нагрузке, ни по длительности ожиданий сообщений в чате.

Вот нашел человек сделал почти то что нужно, но в одностороннем порядке DC->MYSQL->IRC
Могу конечно ошибаться но плагин клиент было бы стабильнее и надёжнее.

Re: Объединение чата DC++ и CommFort

Добавлено: 04:27, 30.12.2011
saint739
Наверно стабильнее и быстрей, но мозга не хватит :). Я довольно хорошо шарю в базах и PHP, lua скрипты не пробовал, но читаемы вполне. Сделать слушающий сервер я не смогу. Чужие наработки смогу откомпилить немного поменять на C или дельфи, но не более того.

Я вебмастер, linux, cisco админ. Но не программер, поэтому готов вложиться в этот проект только в силу своих возможностей

Re: Объединение чата DC++ и CommFort

Добавлено: 06:47, 30.12.2011
ZigZagkms
saint739 писал(а):Наверно стабильнее и быстрей, но мозга не хватит :). Я довольно хорошо шарю в базах и PHP, lua скрипты не пробовал, но читаемы вполне. Сделать слушающий сервер я не смогу. Чужие наработки смогу откомпилить немного поменять на C или дельфи, но не более того.

Я вебмастер, linux, cisco админ. Но не программер, поэтому готов вложиться в этот проект только в силу своих возможностей
В таком случае тебе проще всего будет сделать так, отправка сообщений DC > commfort, способ 1 без задержек:
1) Берешь отсюда плагин http://commfort.com/ru/forum/viewtopic.php?f=35&t=7629 и пример на PHP
2) Добавляешь в тот пример сервер UDP, это не сложно сделать
3) В LUA делаешь отправку сообщений по UDP на этот сервер
способ 2, с задержкой:
1) Берешь отсюда плагин http://commfort.com/ru/forum/viewtopic.php?f=35&t=7629 и пример на PHP
2) Добавляешь в LUA сохранение сообщений куда нибудь
3) В примере на PHP в цикле проверяешь есть ли там сообщения
-- тут с отправкой в комфорт все, а вот отправка назад из коммфорта в DC попроще:
1) В примере на пхп делаешь сохранение сообщений куда нибудь
2) В LUA на DC делаешь таймер и проверяешь то место на наличие сообщений, если есть выводишь

ИМХО самый простой способ, и изучать ничего кроме PHP и чуть чуть LUA не надо..

Re: Объединение чата DC++ и CommFort

Добавлено: 00:21, 31.12.2011
SV
Hellios писал(а):На мой взгляд нужно написать плагин мост который конектился бы к серверу DC++ как обычный пользователь и передавал переписку с общего канала в определённый канал в CommFort и наоборот но вот личные сообщения я не представляю как реализовать по такой технологии.
Я вот это и имел виду. Вот только сохранение данных в файл это не выход. Проще по сокетам передавать данные.