↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.0 пользователей не могут ошибаться!
?6942
прекрасное6443
говно5905
говнорашка5512
хуита4713
anime3066
linux2652
music2634
bnw2601
рашка2565
log2354
ололо2171
дунч1823
pic1815
сталирасты1491
украина1439
быдло1437
bnw_ppl1418
дыбр1238
гімно1158

заворкэраундил это ваше окружение ссылок скобками в маркдауне: https://github.com/hirthwork/home/commit/651117dd2d5e482c033c3448292df2d7905f6d16

#68H0AN (4) / @hirthwork / 3632 дня назад

Спустя почти два года разработки представлена новая версия плагина облегчающего запуск внешних программ из XMPP-мессенджера mcabber под названием mcabber-commands-0.7. В новый релиз вошли следующие изменения:
* Исправлено падение модуля в случае ошибок при компиляции регулярных выражений. Вместо этого будет выведено диагностическое сообщение, а сама команда с проблемным регулярным выражением не будет добавлена.
* Включено подавление вывода от запускаемых программ.
* Улучшен разбор команд для выполнения. Теперь аргумент передаваемый в программу может содержать двойные кавычки, которые не будут вырезаны.

Похоже, пришло время пояснить по хардкору, что же такое mcabber-commands и нахуя мы с лайколом его юзаем.

mcabber-commands перехватывает все входящие сообщения, ищет в них заданные регулярки и добавляет сматченное в комплишен-листы мкаббера. Таким образом, можно быстро достать кусок недавнего сообщения из нужного комплишен-листа и передать внешней команде.

Юзкейз первый: ссылки.

Мне по сто ссылок на дню приходит (в основном от bnw и point). Я заебусь мышкой по каждой из них кликать, чтобы посмотреть свежие новости и смехуёчки. Поэтому я пишу в mcabberrc следующее:

add_custom_command ff .* https?://(?!(([a-zA-Z0-9_-]+[.])?((point|bnw)[.]im)))\S+ firefox %s

После этого, чтобы открыть недавно пришедшую ссылку, я набираю /ff и жамкаю Tab, чтобы подставилась последняя ссылка, а затем жму Ret, чтобы ссылка открылась в браузере. Да, если жамкнуть Tab дважды, то ссылка подставится предпоследняя.
Разберём подробнее мною тут написанное. Команда add_custom_command принимает четыре аргумента:
1. ff — имя комплишен листа. Комплишены будут доступны после того как в мкаббере будет набран слэш, имя комплишен листа и пробел.
2. .* — регулярка для матчинга имени собеседника. Ссылки я открываю от всех существ из ростера, так что тут .*. Для комплишена для bnw можно тут написать например bnw.im.
3. https?://(?!(([a-zA-Z0-9_-]+[.])?((point|bnw)[.]im)))\S+ — регулярка, которую нужно извлекать из входящих сообщений. Чтобы не замусоривать комплишен-лист, ссылки на посты на бнв и пойнте этой же регуляркой отфильтрованы. Из каждого входящего сообщения извлекаются все подстроки удовлетворяющие регулярке. Все эти подстроки будут добавлены в комплишен лист в порядке получения. Если в комплишен-листе уже есть такая подстрока, то она переместится наверх списка.
4. firefox %s — команда, которую нужно выполнить после нажатия Ret. Вместо %s будет подставлено всё что было написано после /ff.

Юзкейз второй: успешный микроблоггинг.

В интернете зачастую кто-то неправ, поэтому приходится многое вам объяснять. Чтобы не набирать мучительно долго номера постов и комментариев, у меня в mcabberrc есть такая вот запись:

add_custom_command bc bnw.im \b[A-Z0-9]{6}(/[A-Z0-9]{3})?\b sh .mcabber/sayto bnw.im "c -m %s" rcode

Итак, мы видим, что создаётся комплишен лист /bc, в который попадают все подстроки типа IQ3OP2 или S7PIEF/H6W, поэтому набрав /bc и нажав единожды Tab я получаю в строке ввода мкаббера, например, вот это: /bc IQ3OP2 после этого остаётся только дописать осмысленный текст: /bc IQ3OP2 ты — хуй, нажать Ret и при помощи нехитрого скрипта новый комментарий будет добавлен к посту штилетты.

Прочее

Сырцы лежат здесь: https://github.com/hirthwork/mcabber-commands/
Ебилд здесь: https://github.com/hirthwork/ncursed-desktop/blob/master/net-im/mcabber-commands/mcabber-commands-0.7.ebuild

Подробнее про выполняемые команды.
Можно писать так: firefox %s, можно так: firefox "%s", и даже так: firefox "http://ya.ru %s" %s (нахуя?).
Нельзя писать так: firefox "%s %s", так: firefox "%s"test и так: firefox test"http://ya.ru %s". Падать не должно, но работать будет не так как хотелось бы.
Количество слов в команде ограничено 32мя, остальное будет отброшено.

#JS7IQU (16+1) / @hirthwork / 3672 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.