Plugin-provided smileys support.

Issue #86 new
Former user created an issue

[Original issue 86](https://code.google.com/p/mrim-prpl/issues/detail?id=86) created by kwaxer@mail.ru on 2011-11-08T06:44:16.000Z:

Mail.ru Agent вставляет улыбочки в виде <SMILE>id=314 alt=':Лопну от смеха:'</SMILE> <SMILE>id=400 alt=':Ангелочек:'</SMILE> <SMILE>id=426 alt=':Улыбаюсь:'</SMILE> <SMILE>id=429 alt=':Подмигиваю:'</SMILE> и т.д. Хотелось бы вместо этого кода видеть соответсвующие иконки в сообщениях.

Версии: mrim-prpl-0.1.28-rc.exe, pidgin 2.10.0.

Попытка добавить соответствующий раздел в темы улыбочек до конца не заработала - теги <SMILE>...</SMILE> заменяются не целиком, а частично. Возможно это баг в самом pidgin, но хотелось бы, чтобы плагин изначально включал данную функциональность, и не приходилось бы что-то дорабатывать "руками".

Comments (9)

  1. Janus Kobain

    Comment 1 originally posted by plaque_fcc on 2011-11-08T08:57:11.000Z:

    Мне пока не удалось выяснить, как обеспечивается поддержка смайлов протоколом; а ещё необходимо составить относительно полную таблицу картинок, и использовать проприетарные картинки для этого не круто. Не так ли?

  2. Former user Account Deleted

    Comment 3 originally posted by alexk@eiffel.com on 2011-11-08T15:45:42.000Z:

    Не могу ничего сказать о полноте и откуда народ берёт списки улыбочек, но вот что нарыл: 1. В jimm ("mrim-replaces.txt"), и каким-то боком упоминается в qip-форуме: http://www.nigma.ru/index.php?s=mrim-replaces.txt 2. Mail.RU.rar: http://rghost.ru/1950520 3. Для qip ("qip+Mail.ru_Agent.7z"): http://forum.qip.ru/attachment.php?attachmentid=20660

    Что касается поддержки, протокол, по-моему, тут особо не играет роли и теоретически можно было бы использовать стандартные возможности pidgin, но у меня не получилось. Просто добавлял в pixmaps\pidgin\emotes\default\theme раздел [Mail.Ru Agent] angel.png <SMILE>id=400\ alt=':Ангелочек:'</SMILE> wink.png <SMILE>id=429\ alt=':Подмигиваю:'</SMILE> (т.е. как раз с использованием стандартных картинок). Замена происходит, но не полностью - часть текста из тега остаётся в тексте.

  3. Николай Антонов

    Comment 4 originally posted by ostinru on 2011-11-08T16:10:08.000Z:

    Список смайлов можно выдрать из оффициального клиента - в этом нет большой проблемы.

    А, вот руками парсить сообщения и подменять "<SMILE>id=num at='something'</SMILE>" на "something else" - совсем не весело =( Такое можно разумно мутить, только вместе с конвертером RTF <-> HTML

  4. Former user Account Deleted

    Comment 5 originally posted by alexk@eiffel.com on 2011-11-08T16:39:39.000Z:

    Тут 2 момента: 1. pidgin вроде как сам умеет производить такие замены. Только что-то там недоделано. Более конкретно, в pidgin_gtkimhtml.c поиск образца делается в gtk_smiley_tree_lookup. Но развёртывать и компилировать всё для отладки, чтоб посмотреть, где там что не так, пока нет времени. 2. Если бы всё работало как надо, было бы достаточно добавлять тему смайликов для протокола mrim. Т.е. включить в состав пакета плагина файлик с темой со смайликами со всеми подстановками уже было бы очень кстати.

  5. Janus Kobain

    Comment 6 originally posted by plaque_fcc on 2011-11-08T19:19:22.000Z:

    Я к чему выше говорю про это: вы заметили, что набор предустановленных смайлов меняется в зависимости от испольуемого протокола, да?

    Вот, я и хочу понять, каким заездом в libpurple/pidgin это реализовано. Именно это хочу понять.

  6. Николай Антонов

    Comment 7 originally posted by ostinru on 2011-11-08T19:25:29.000Z:

    gtkimhtml ковырять не резонно - в следующей версии пиджина 3.0 - gtkimhtml будет заменён на webkit. Как дойду до портирования на 3.0 - постараюсь смайлы воткнуть.

  7. Janus Kobain

    Comment 8 originally posted by plaque_fcc on 2011-11-08T22:45:32.000Z:

    Едрижмать… Наконец-то! Ура!

  8. Former user Account Deleted

    Comment 9 originally posted by alexk@eiffel.com on 2011-11-09T05:11:19.000Z:

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

    Улыбочки ещё привязаны к теме. Если говорить о теме "по умолчанию", то список соответствия улыбочек и протоколов лежит в файле pixmaps\pidgin\emotes\default\theme. Для темы не по умолчанию вместо "default" в пути будет что-то другое. Аналогичный файл может лежать у юзера в домашнем каталоге. Вот тут описаны подробности: http://developer.pidgin.im/wiki/SmileyThemes Другое дело, что улыбочки из агента кодируются с кучей всяких ловких символов, которые, возможно, не до конца обрабатываются при подстановке.

  9. Janus Kobain

    Comment 10 originally posted by plaque_fcc on 2011-11-09T09:38:17.000Z:

    Хм. Теперь стало яснее. Благодарим.

  10. Log in to comment