Бабушка, смотри, я сделал двач! Войти !bnw Сегодня Клубы

Спустя почти два года разработки представлена новая версия плагина облегчающего запуск внешних программ из 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мя, остальное будет отброшено.

Рекомендовали: @like-all
#JS7IQU / @hirthwork / 3666 дней назад

@zerg зачем мне жизнь, если у меня уже есть гента?

#JS7IQU/IV6 / @hirthwork --> #JS7IQU/CTW / 3666 дней назад

к жаббер-серверу с самоподписанным сертификатом можно подключиться уже или ещё нет?

#JS7IQU/U8L / @anonymous / 3666 дней назад
это просто прыщепраздник какой-то
#JS7IQU/L65 / @anonymous / 3666 дней назад

@ccahnha я подключался вроде. в версии 0.10.3 что-то исправили касательно ssl

#JS7IQU/EI6 / @hirthwork --> #JS7IQU/U8L / 3666 дней назад

@hirthwork ```

Moreover, it's possible to check whether the fingerprint of the

ssl certificate matches ssl_fingerprint.

You can get the fingerprint of your server either with gnutls or openssl:

1. gnutls-cli -p 5223 $your_server

2. openssl s_client -connect $your_server:5223 | \

openssl x509 -fingerprint -md5 -noout

set ssl_fingerprint = 97:5C:00:3F:1D:77:45:25:E2:C5:70:EC:83:C8:87:EE

Set ssl_ignore_checks to 1 to disable all certificate checks except the

fingerprint check.

set ssl_ignore_checks = 0


Уоу, то что надо. Перекатываюсь с гажима, спасибо.
#JS7IQU/10P / @anonymous --> #JS7IQU/EI6 / 3666 дней назад

@ccahnha ебаный маркдаун

#JS7IQU/Q6K / @anonymous --> #JS7IQU/10P / 3665 дней назад

YAY, апофеоз ненужности

#JS7IQU/QTW / @ninesigns / 3665 дней назад

@4da СПЕРВА ДОБЕЙСЯ

#JS7IQU/UZ2 / @hirthwork --> #JS7IQU/QTW / 3665 дней назад

@hirthwork добился что пацаны на районе уважают

#JS7IQU/50S / @ninesigns --> #JS7IQU/UZ2 / 3665 дней назад

@4da

токсит
педалит в емаксе
вещает о нужности

топ чух

#JS7IQU/TSY / @like-all --> #JS7IQU/QTW / 3665 дней назад

@like-all > достаточно продвинутый чтобы понимать всю уебищность консольных решений

#JS7IQU/H26 / @ninesigns --> #JS7IQU/TSY / 3665 дней назад

@4da пук

#JS7IQU/MN1 / @like-all --> #JS7IQU/H26 / 3665 дней назад

Эээээ, я тупой или какого хуя у меня в DESTDIR оказывается / ?

#JS7IQU/ZLY / @like-all / 3663 дня назад

@like-all при сборке из ебилда?

#JS7IQU/QCZ / @hirthwork --> #JS7IQU/ZLY / 3663 дня назад

@hirthwork не, debuild

#JS7IQU/UJM / @like-all --> #JS7IQU/QCZ / 3663 дня назад

@like-all проблемы гентоёбов шерифа не ебут

#JS7IQU/1JJ / @hirthwork --> #JS7IQU/UJM / 3663 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

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