coding.xa0c.net: xJuick
Здрасьте...
Не так давно наткнулся на оригинальный сервис микроблогинга: juick.com, отличительная черта которого — чтение/постинг через xmpp (jabber). Зарегистрировался, потыкал туда-сюда, почитал парочку постов, оставил парочку комментов. Прелестно, думаю, но слегка неудобно: офигеешь шестизначные номера постов вбивать. Задумался: наверняка на ресурсе имеется достаточное количество miranda-юзеров, следовательно, должен быть плагин. Отфильтровал записи по тегу "miranda", увидал пост #471563 (mjplugin), обрадовался. Поставил этот плагин и как-то сразу стало грустно: нет, дополнительный функционал появился, да только у меня нормально работать не захотел: assocmg перехватывал xmpp-ссылки, открывал окно контакта, но текст почему-то не вставлял, хистори превратилась в кашу из bb-тегов (в последующих версиях пофиксено). В общем, плагин меня не устроил.
Собственно, настроение было хорошее, руки чесались чего-нибудь быстренько накодить и решил я попробовать себя в новой области, претворить в жизнь одно из своих древних и тайних желаний: забацать плагин для миранды, да не простой, а... дотнетовый. :)
Итак...
Скриншоты версии 0.0.3a:
Скриншоты версии 0.0.1a:
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.1 Содержимое архива
В принципе, вся установка сводится к копированию dll в папку плагинов миранды и выборе шаблона IEView. На дефолт-настройках вполне можно жить. :)
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
Комментарии (34)
Оставить комментарий
© 2008-2012 xa0c
Ну или если совсем никак не получается — пришлите мне шаблон, посмотрю. (Мыло, думаю, найдёте :))
http://wiki.github.com/mad/pidgin-juick-plugin/
Второй вопрос - можно ли подружить немецкие сприпты для отображения js, видео, тамбов и прочего со скриптом для жуйки?
Это там в настройках контейнера, "forced hpp": т.е. только у одного контакта. В данный момент такую ситуацию я никак не обрабатываю.
Насчёт js: можно. Всё в ваших руках. ©
скачал xJuick Plugin v0.0.4a
разложили плагины и скин, куда надо
куда девать miranda32.exe.config?
и еще - у меня стоит свой скин для всех бесед
как мне отдельно для беседы с ботом жуйка поставить прилагающийся скин? это вообще возможно, или надо для всех бесед ставить этот скин?
это он поработал с tabsrmm, по ходу
вот очень интересует вопрос, заданный мной выше, по поводу скина, очень вкусно было бы
Пути определяются тут, можно изменить и перекомпилить: http://code.xa0c.net/browser/xJuick/xJuick/Core/Settings.cs#L45
Мне (как и большинству, пока что) удобнее, когда весь рабочий мусор рядом с exe.
Это я там думал хитрую автоперекодировку команд встроить, ибо задолбало одно время "В #123456" посылать :)
Если кто-нибудь вылечит - попиарьтесь в жуйке :)
Мне заниматься им некогда.
P.S. Впрочем, его же "переписывают" на C . Нужно только подождать.
here: http://juick.com/sss/
Короче, http://privatepaste.com/a0d8ee54bb
Пытался добавить в миранде "bnw.blasux.ru", а она мне её в bnw.blasux.ru@xa0c.net превратила %)
Разбираться чтобы зарегиться лень.
На первый взгляд вроде не сложно переделать, но много и всё по мелочи. Там не только регэкспы. :)
Ненавижу такие задачи.
Впрочем, будет время — посмотрю.
=== 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)
Исправь пожалуйста).
Из них два с половиной как у меня нет миранды на компе. :)