Очень понравилась фишка из Choqok - автоматическая сокращалка URL. Так как иногда приходится отсылать длинные URL (привет Sharepoint!), то похожее понадобилось и в Kopete.
Выяснилось, что у Kopete есть удобный плагин - Pipes, который позволяет внешним программам обрабатывать сообщения.
От слов - к делу.
Основа - скрипт на bash для замены в тексте сообщения длинных URL на короткие. Для этого скрипта нужен curl (можно сделать вариант на wget и т.д.). Сервис сокращения - "классический" TinyURL.
Создаем скрипт link_shorten.sh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#!/bin/bash
# Получаем сообщение из stdin
read messageText
# Ловим все URL
URLs=`echo $messageText | grep -o 'http://<^ >*'`
for url in ${URLs}; do
# Получаем новую URL от TinyURL.com
newURL=`curl -s http://tinyurl.com/api-create.php?url=${url}`
# Заменяем в тексте все такие URL на новые
messageText=`echo $messageText | sed "s!${url}!${newURL}!g"`
done
# Передаем сообщение в stdout
echo $messageText
|
Теперь пора настроить Kopete.
Для этого идём в настройки -> модули -> Pipes (включаем). В настройках модуля нажимаем "Добавить", указываем путь к скрипту. Теперь у пайпа можно настроить следующие параметры:
Ввод/Вывод - указывается какие сообщения обрабатывать. В данном случае - только исходящие. Впрочем, если вам часто шлют нечитабельные ссылки - то можно включить обе настройки.
Содержимое канала - какую инфу передовать в скрипт - Plain, HTML или весь XML. Обычно достаточно Plain, но если требуется обрабатывать внутреннюю инфу сообщения - то стоит изучить формат сообщений. К примеру, можно написать скрипт, который будет обрабатывать имя собеседника.
Скрипт, соответственно, можно использовать как отдельно, так и для других клиентов (или целей).
Код скрипта, очевидно, не идеален - надеюсь, кто-нибудь в комментариях сделает попроще и покороче.
Идеи по улучшению скрипта:
Использовать wget вместо curl (в дефолтной Убунте, например, нет curl)
Использовать другие сервисы сокращения
Сокращать только ссылки длиннее n символов