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

Здесь обсуждаются еще нереализованные дополнения.
saint739
Сообщения: 7
Зарегистрирован: 10:30, 27.12.2011

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

Сообщение saint739 »

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

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

Может уже есть плагин такой?
Если нет давайте перейдем к обсуждению как сделать.
wizard50
Сообщения: 1691
Зарегистрирован: 17:18, 31.10.2006
Откуда: Комсмомольск-на-Амуре

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

Сообщение wizard50 »

такой плагин уже делали и вроде как даже не один.
•NormaBot•
Сообщения: 1428
Зарегистрирован: 20:57, 21.10.2008
Откуда: Украина.Херсон
Контактная информация:

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

Сообщение •NormaBot• »

wizard50 писал(а):такой плагин уже делали и вроде как даже не один.
Такой..но совсем не такой.
На сколько я помню.
:)
saint739
Сообщения: 7
Зарегистрирован: 10:30, 27.12.2011

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

Сообщение saint739 »

вижу лишь плагин для отображения активности DC хабов.
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

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

Сообщение SV »

Хотел я делать сделать и переписку из DC в своём плагине в итоге вообще на плагин забил, т.к вобще в сети отказались от хабов и поставили торент трекер. Правил ошибки в плагине но так на быструю руку, в итоге ошибки остались. Да и самая тяжесть в том что нужно найти уметь писать плагины под DC, или написать что то типа клиента.
saint739
Сообщения: 7
Зарегистрирован: 10:30, 27.12.2011

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

Сообщение saint739 »

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

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

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

По идее потом можно будет в разные каналы все хабы города слить. Думаю идейка хорошая.
ZigZagkms
Сообщения: 109
Зарегистрирован: 08:23, 11.12.2008
Откуда: Комсомольск-на-Амуре
Контактная информация:

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

Сообщение 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 хабу, тут мы выигрываем во всем, лично я этот вариант вижу как единственно возможный.
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

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

Сообщение SV »

Если так то проще писать клиент, и не чего по протоколам передавать не нужно.
ZigZagkms
Сообщения: 109
Зарегистрирован: 08:23, 11.12.2008
Откуда: Комсомольск-на-Амуре
Контактная информация:

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

Сообщение ZigZagkms »

SV писал(а):Если так то проще писать клиент, и не чего по протоколам передавать не нужно.
Как раз таки чтобы написать клиент для DC нужно соблюдать протокол DC.
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
Аватара пользователя
Hellios
Сообщения: 324
Зарегистрирован: 22:31, 06.05.2008
Откуда: Мирный (Саха)
Контактная информация:

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

Сообщение Hellios »

На мой взгляд нужно написать плагин мост который конектился бы к серверу DC++ как обычный пользователь и передавал переписку с общего канала в определённый канал в CommFort и наоборот но вот личные сообщения я не представляю как реализовать по такой технологии.
saint739
Сообщения: 7
Зарегистрирован: 10:30, 27.12.2011

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

Сообщение saint739 »

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

Вот нашел человек сделал почти то что нужно, но в одностороннем порядке DC->MYSQL->IRC
Аватара пользователя
Hellios
Сообщения: 324
Зарегистрирован: 22:31, 06.05.2008
Откуда: Мирный (Саха)
Контактная информация:

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

Сообщение Hellios »

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

Вот нашел человек сделал почти то что нужно, но в одностороннем порядке DC->MYSQL->IRC
Могу конечно ошибаться но плагин клиент было бы стабильнее и надёжнее.
saint739
Сообщения: 7
Зарегистрирован: 10:30, 27.12.2011

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

Сообщение saint739 »

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

Я вебмастер, linux, cisco админ. Но не программер, поэтому готов вложиться в этот проект только в силу своих возможностей
ZigZagkms
Сообщения: 109
Зарегистрирован: 08:23, 11.12.2008
Откуда: Комсомольск-на-Амуре
Контактная информация:

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

Сообщение 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 не надо..
Забросил, всем спасибо, исходники раздаю кому надо https://github.com/ZigZagkms
Аватара пользователя
SV
Сообщения: 797
Зарегистрирован: 00:11, 06.09.2010
Откуда: Киров

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

Сообщение SV »

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