coding.xa0c.net: xJuick

coding.xa0c.net: xJuick

0.0.5a
Дата: 06.03.2010, 23:28:22
Господа. Время для небольшой рекламки. Быть может, вам будет интересен ещё один мой проект (бесплатный), который находится тут: http://notify.su. Тыкните, поглядите. :)
1. Введение

  Здрасьте...
  Не так давно наткнулся на оригинальный сервис микроблогинга: juick.com, отличительная черта которого — чтение/постинг через xmpp (jabber). Зарегистрировался, потыкал туда-сюда, почитал парочку постов, оставил парочку комментов. Прелестно, думаю, но слегка неудобно: офигеешь шестизначные номера постов вбивать. Задумался: наверняка на ресурсе имеется достаточное количество miranda-юзеров, следовательно, должен быть плагин. Отфильтровал записи по тегу "miranda", увидал пост #471563 (mjplugin), обрадовался. Поставил этот плагин и как-то сразу стало грустно: нет, дополнительный функционал появился, да только у меня нормально работать не захотел: assocmg перехватывал xmpp-ссылки, открывал окно контакта, но текст почему-то не вставлял, хистори превратилась в кашу из bb-тегов (в последующих версиях пофиксено). В общем, плагин меня не устроил.
  Собственно, настроение было хорошее, руки чесались чего-нибудь быстренько накодить и решил я попробовать себя в новой области, претворить в жизнь одно из своих древних и тайних желаний: забацать плагин для миранды, да не простой, а... дотнетовый. :)
Итак...

Скриншоты версии 0.0.4a/0.0.5a:
Скриншоты версии 0.0.3a:
Скриншоты версии 0.0.1a:
Написано на C#, Framework 2.0.

2. Особенности

2.1 Требования
0. .NET Framework 2.0
1. Miranda 0.7.x+
2. TabSRMM 2.x+/Sciver 0.1+/Srmm 0.1+

2.2 Плагин умеет:
  1. То же самое, что и упомянутый выше mjplugin: выделение и оборачивание в активные элементы ("кнопачьке") в тексте сообщения имён пользователей, номеров постов/комментариев, только не требует для этого наличия assocmg, последней миранды (0.9a), и кастомно скомпилированной jabber.dll (по правде говоря, не знаю к чему у mjplugin последние 2 требования указаны, ибо у меня и на 0.8 с каким-то старым jabber.dll всё работало)
  2. Добавление на тулбар TabSRMM кастомных (определяемых в конфиге) кнопок для быстрой отправки определённых команд. По-дефолту там находятся "#, #+, @, S, *, LOGIN".
  3. Возможность отключить целиком пункт #1 нафиг (это если, скажем, вы предпочитаете оригинальный mjplugin, и хотите только кнопки на тулбаре иметь)
  4. Возможность автоматической отправки команды по клику на активном элементе в IEView/Sciver/Srmm: например "@nick+" или "#123+" удобно отправить сразу, а по клику чисто на номере сообщения более логично вставить оный в поле ввода сообщения для формирования ответа.
  5. Оботражение аватар пользователей.
  6. Отображение превью ссылок через настраиваемый сервис превью. (Отсутствует в IEView)
  7. Построение "дерева" комментариев/сообщений (работает только в IEView).
  8. Возможность указания дополнительных контактов (ex: Jubo) и возможность отправлять команды/комментировать посты в juick прямо из окна этих контактов.
  9. Разделение основного чата на треды. Т.е. если вам, например, хочется выделить лог по какому-то посту в отдельное окно

2.3 То, что я отношу к плюсам
  1. Минимальные изменения в шаблонах IEView — адаптировать под другую тему дело 1 (одной) минуты.
  2. Работа во всех (извесных мне) отображателях логов для миранды. Автоматическое распознавание текущего лога.

2.4 То, что я отношу к минусам
  1. .NET: Да, я люблю дотнет, люблю C#, но писАть на managed фреймворке плагин для unmanaged программы — это как шуруп молотком забивать. Собсно, это причина следущего недостатка. :)

3. Установка/Запуск

3.1 Содержимое архива
  В принципе, вся установка сводится к копированию dll в папку плагинов миранды и выборе шаблона IEView. На дефолт-настройках вполне можно жить. :)

4. Настройки

4.1 Конфиг/Опции
  Начиная с версии 0.0.5a xml-конфиг плагином более не используется. Все настройки хранятся в базе миранды, скриншотег можно посмотреть справа. Посему, описание конфига я со страницы убрал.
  Однако, существует некая возможность импорта/экспорта настроек в "старый" xml:
Если при запуске миранды файл \plugins\xJuick\config.xml существует, то плагин попытается прочитать и использовать настройки из него.
Если после открытия окна настроек создать файл \plugins\xJuick\config.xml и нажать "OK", то настройки запишутся в этот xml-файл.


Некоторая дополнительная информация по тому, как описывать команды доступна по клику на кнопке "?" в окне опций.

4.2 Настройка кнопок тулбара
После загрузки плагина и создания им кнопок, последние можно обнаружить в окне настроек TabSRMM (скриншотег слева), где им можно задать определённый порядок, а так же, возможно, скрыть какие-то из них.



















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



4.3 Редактирование шаблона
  Редактирование шаблона IEVIew я старался сделать максимально простым. Получилось или нет — не знаю. Тем не менее...

  * Первое, что нужно сделать: положить файлы juick.css и juickonizer.js, (что идут в комплекте с плагином, в примере темплейта) рядом с вашим *.ivt файлом.
  * Второе: в шапку темплейта (это внутри блока <head></head>, если что) вставить две строчки: То есть, подключить эти файлы к шаблону. Если дерево постов вам не нужно, то для повышения скорости работы, последний файл (третий, scroll.js) можно не добавлять.
  * Третье и последнее: найти в шаблоне упоминания переменной %text%, посмотреть в каком блоке она находится и назначит этому блоку ID jText.
  Кусок кода из немодифицированной темы, что в архиве с плагином: Видим, что %text% находится внутри блока <div class="text">...</div>, добавляем этому блоку id, код трансформируется в это: Всё. :)

4.4 Custom javascript Juick-элементы (IEView)
  Ох...
  Я этот раздел заполню когда-нибудь попозже, когда будет не так влом (ужос сколько текста-то написАл уже!).
  Вкраце: простейший яваскрипт, всё практически идентично тому, как можно редактировать (как редактируют) mjplugin.
  UPD: Нифига. Не буду я этот раздел заполнять. Я больше не использую IEView. Мне лень. :)

5. Скачать?

xJuick Plugin v0.0.1a
xJuick Plugin v0.0.2a
xJuick Plugin v0.0.3a
xJuick Plugin v0.0.4a
xJuick Plugin v0.0.5a

sources

6. Future...

РАЗРАБОТКА ПЛАГИНА ЗАВЕРШЕНА :)

Господа. Время для небольшой рекламки. Быть может, вам будет интересен ещё один мой проект (бесплатный), который находится тут: http://notify.su. Тыкните, поглядите. :)

Комментарии (33)

 NOT xa0c 22.01.2010, 16:57:47 крутой плагин, респект!
 @PPV 22.01.2010, 20:28:29 спасибо!
 striveman 25.01.2010, 20:26:34 А у меня что-то не заработал. Похоже, с редактированием шаблона что-то не получилось, хотя, голову ломал долго-долго..
 xa0c 27.01.2010, 01:03:02 Он автоматически отключается, если обнаружит ошибку (в шаблоне, либо при открытии окна чата не найдёт IEView). Т.е., после редактирования шаблона и исправления всех ошибок нужно проверить конфиг, чтобы там EnableIEView было true.

Ну или если совсем никак не получается — пришлите мне шаблон, посмотрю. (Мыло, думаю, найдёте :))
 Имя 12.02.2010, 22:09:09 А слабо сделать такое для Pidgin?
 xa0c 13.02.2010, 13:41:04 А для него уже есть. Справку читать нужно.
http://wiki.github.com/mad/pidgin-juick-plugin/
 Креол 26.02.2010, 03:19:00 Вопрос такой, если стоит глобальный лог IEView, а для контакта Juick стоит h , то при установке плагина и открытие контакта жуйка тот ругается на то что лог не подходит.

Второй вопрос - можно ли подружить немецкие сприпты для отображения js, видео, тамбов и прочего со скриптом для жуйки?
 xa0c 26.02.2010, 17:03:02 Я так понимаю, разговор про 0.0.5?
Это там в настройках контейнера, "forced hpp": т.е. только у одного контакта. В данный момент такую ситуацию я никак не обрабатываю.

Насчёт js: можно. Всё в ваших руках. ©
 Креол 26.02.2010, 19:27:05 Да, forced hpp. Будет ли в следующей версии обработка?
 xa0c 28.02.2010, 09:37:29 Уже.
 shwed 02.03.2010, 20:07:01 что то недопонял =(
скачал xJuick Plugin v0.0.4a
разложили плагины и скин, куда надо
куда девать miranda32.exe.config?

и еще - у меня стоит свой скин для всех бесед
как мне отдельно для беседы с ботом жуйка поставить прилагающийся скин? это вообще возможно, или надо для всех бесед ставить этот скин?
 shwed 02.03.2010, 20:32:36 хм, после перезапуска спросил меня и добавил 4 (четыре) кнопки в окне чата с жуйк-ботом (отдельное окно для комментариев, удалить контакты комментариев, 10 последних сообщений, ссылка для логина).
это он поработал с tabsrmm, по ходу
вот очень интересует вопрос, заданный мной выше, по поводу скина, очень вкусно было бы
 Креол 03.03.2010, 00:37:11 shwed, можно пойти окольным путем. Создать отдельную учетку жабы, на нее повесить один жуйк контакт, и для этой учетки назначить в настройках ieview нужный скин.
 z0rc 08.03.2010, 19:37:54 0.0.5a пишет конфиг и кеш аваторов в папку, где лежит сам. При работающем UAC под вистой/7 получаются вилы при запуске. Можно ли заставить его хранить свои рабочие файлы в папке пользователя, где хранится и сам профиль?
 xa0c 08.03.2010, 19:42:12 xml-конфиг сейчас можно вообще не использовать, с аватарами сложнее.
Пути определяются тут, можно изменить и перекомпилить: http://code.xa0c.net/browser/xJuick/xJuick/Core/Settings.cs#L45
Мне (как и большинству, пока что) удобнее, когда весь рабочий мусор рядом с exe.
 ъыь 26.03.2010, 00:25:31 надо просто внедрить поддержку плагина folders.dll и тогда проблем не будет. а те кто его не юзают, будут по прежнему с граблями :)
 pLuto 04.05.2010, 23:57:08 Наткнулся на странный глюк - при включенном плагине сообщение, начинающееся с "В " уходит в сторону сервера начинающимся с "D ". Отключение плагина проблему снимает. miranda 0.8.22 unicode, scriver 2.8.1.1, ieview нет. Лечится, не?
 xa0c 05.05.2010, 05:07:31 Исходники открыты, так что — лечится. Лечите. :)

Это я там думал хитрую автоперекодировку команд встроить, ибо задолбало одно время "В #123456" посылать :)
 pLuto 05.05.2010, 12:45:26 Ну я не дизайнер, а совсем даже Иванов. Значит, не судьба.
Если кто-нибудь вылечит - попиарьтесь в жуйке :)
 Mikel 12.07.2010, 06:01:44 Всё-таки необходима поддержка folders, ибо с UAC проблемы
 xa0c 14.07.2010, 05:20:02 Ну так доделайте. Опенсорс же.
Мне заниматься им некогда.

P.S. Впрочем, его же "переписывают" на C . Нужно только подождать.
here: http://juick.com/sss/
 z0rc 20.07.2010, 11:33:40 c:\Users\
 z0rc 20.07.2010, 11:36:04 Гм, и баг в CMS впридачу. :3
Короче, http://privatepaste.com/a0d8ee54bb
 Johan 24.11.2010, 01:43:53 Камраде! А несмотря на нехватку времени, не мог бы ты выложить версию, где просто поправлены регекспы для номеров сообщений, дабы оно работало с буквенно-цифровыми на http://bnw.blasux.ru ? Команды-то там ровно те же :-)
 xa0c 24.11.2010, 09:45:30 Я даже посмотреть его не смог.
Пытался добавить в миранде "bnw.blasux.ru", а она мне её в bnw.blasux.ru@xa0c.net превратила %)

Разбираться чтобы зарегиться лень.
 xa0c 24.11.2010, 10:10:38 upd: таки зарегился.
На первый взгляд вроде не сложно переделать, но много и всё по мелочи. Там не только регэкспы. :)
Ненавижу такие задачи.

Впрочем, будет время — посмотрю.
 Johan 24.11.2010, 20:57:50 Так надо было добавлять не из Add contact, а в Service discovery в меню ПКМ Add to roster :-)
 xa0c 29.11.2010, 12:43:28 done: http://juick.com/xa0c/1078706
 Marvin 15.01.2011, 23:07:42 Плагин отличный, спасибо! Но есть маленький баг. Когда открываешь любую конфу выскакивает окошко вот с этим вот:

=== Exception dump ===
System.NullReferenceException: Object reference not set to an instance of an object.
at xJuick.Fork.ContactManager.OpenChat(IntPtr hContact, IntPtr hWnd)
at xJuick.Plugin.ChatWindow(UIntPtr wParam, IntPtr lParam)
at Virtuoso.Miranda.Plugins.Infrastructure.HookDescriptor.SafeCallbackStub(UIntPtr wParam, IntPtr lParam)

Исправь пожалуйста).

 Asp 04.06.2013, 18:28:36 А как его заюзать с miranda 0.10.13? tabSRMM 2.2.1.21 не может запуститься, ругается на новую версию Миранды. Есть какие нибудь рабочие аналоги tabSRMM?
 xa0c 04.06.2013, 18:36:50 Три года уже прошло :)
Из них два с половиной как у меня нет миранды на компе. :)
 Виталий 29.08.2013, 12:33:40 Хаос доделай бота для игруна (Сапера) Пожалуйста!) Помню в 2010 юзал его так он за пару мин разгадывал все но банили вроде.. Если бы интервал сделать и тд.. Если сможешь сделать отпиши сюда
 xa0c 29.08.2013, 17:40:57 Не, мне лень. Я ж его 5 лет назад написАл. :)

Оставить комментарий

Имя:
Код на картинке:

Господа. Время для небольшой рекламки. Быть может, вам будет интересен ещё один мой проект (бесплатный), который находится тут: http://notify.su. Тыкните, поглядите. :)