Итак о ЖЖ-боте.
Originally published at Православный Газенваген™. You can comment here or there.
Вам понадобятся:
- http://4lj.mivlad.net
- The Bat!, настроенный для периодической проверки почты.
- Немного ума и сообразительности.
Итак, вы прошли регистрацию, http://4lj.mivlad.net выдал вам хитрого вида адрес, вы сунули его в настройки своего LJ и на почту начали приходить комментарии к вашим записям в виде plain text сообщений. Главное достоинство http://4lj.mivlad.net в том, что не нужно переходить по ссылкам в сообщении или использовать почтовый клиент, умеющий обрабатывать POST-запросы. Вы просто отвечаете на сообщение так же, как отвечаете на обычные письма и отправляете их обычным порядком. Сделано это следующим образом: в каждом письме, посылаемом движком LJ своему подписчику, содержится уникальная строка-токен, по которой движок LJ опознаёт ответную реплику пришедшую именно от того, кому ушло оповещение и знает, куда именно эту реплику сунуть. Гейт запоминает этот токен и сам суёт вашу реплику куда нужно, не запрашивая паролей и подтверждений. Таким образом вы получаете дополнительные удобства совершенно не рискуя своей безопасностью. Кроме того, я так отвечаю на реплики ЖЖ, когда нахожусь вне дома, со смартфона. Это сильно экономит дорогой GPRS трафик.
Когда я впервые столкнулся с гейтом mail2lj в 2003 году, одной из первых мыслей было “из этого можно сделать робот для назойливых кретинов!”. Так я и поступил, потратив на это около часа времени и получив взамен огромное количество удовольствия.
Итак, приступим.
Первым делом нам нужно идентифицировать юзера, который будет общаться с механической мышью. Поле “отправитель” (”from”) сообщения, приходящего от гейта имеет примерно такой вид:
mcparker in mcparker <1leq6b9.v3qp@4lj.mivlad.net>
Догадаться, что делать дальше, несложно:

Добавлять in к каждому никнейму нужно, чтобы вы беспрепятственно могли переписываться в журналах жертв с нормальными людьми. Иначе бот будет срабатывать на любое сообщение, пришедшее из этих журналов. Собственно, условия могут быть любыми. Я, например, некоторое время отлавливал таким же фильтром у себя в комментариях письма со словом “баян!” и отправлял в ответ реплику “а почему не аккардеон?”. Другой фильтр работал у меня вместо банилки, просто удаляя с сервера сообщения от различных буратин, дабы не мозолили глаза. В итоге все были довольны — буратины могли высказываться сколько угодно, раскрывая себя во всей красе, нормальные читатели радостно рассматривали очередной экземпляр зверинца, а я сохранял хорошее настроение и шелковистые волосы на ладонях без малейшего напряжения мозга.
Но я отвлёкся. Расскажем-ка нашему боту, что делать, когда приходят сообщения, удовлетворяющие правилам:

В принципе, автоответ может быть всегда одним и тем же. Например “не пиши сюда больше, сука!”. Но это скучно и неконцептуально. Потому мы садимся и набиваем словарь фраз и выражений, которые бот будет случайным образом вставлять в тело письма.
файл1:
(с ехидной усмешечкой)
(рыдая в голос)
(попукивая от натуги)
(злобно взвизгивая)
(стервозно хмурясь)
файл2:
Вы у своей мамы первый или она ещё аборты делала?
Ты бы не пиздел помногу, тупица.
Да что вы говорите?
Правда?
Когда вы говорите, такое чувство, будто вы бредите…
Строки могут включать в себя любой html код, который разрешён в LJ. Главное:
- каждое собщение должно быть одной строкой. Пустых строк в файлах не оставляйте.
- кодировка файлов должна соответствовать кодировке, в которой вам шлёт письма гейт. А гейт шлёт их в той кодировке, которую вы выбрали в настройках LJ. У меня это win1251.
Помните, чем больше фраз вы набьёте в словари, тем меньше вероятность повторов, а значит тем дольше оппонент бота будет соревноваться в острословии с несколькими килобайтами кода, забавляя тех, кто в курсе событий. Можно для пущей радости сделать специальный юзерпик для ответов бота, но об этом ниже.
Тыцкаем по пункту “создать автоответ” и правим темплейт ответчика.

Выглядит он в итоге примерно вот так:
%SUBJECT="=точка бегающая=Reply to your post..."
%COOKIE=”C:\bot\файл1″ %COOKIE=”C:\bot\файл2″
Разберёмся, что к чему.
Строка
%SUBJECT="=точка бегающая=
вставит в субект сообщения соответствующую строку, которая заставит гейт http://4lj.mivlad.net при размещении сообщения выбрать юзерпик с соответствующим названием.
Строка
%COOKIE="C:\bot\файл1"
вставляет в письмо случайную строку из указанного файла.
Теперь во вкладке “опции” временно переключите “Сохранять в Исходящих” и дождитесь пары писем от первой из предполагаемых жертв. Когда фильтр сработает, зайдите в папку “Исходящие” и проверьте, всё ли правильно и чётко работает. Неприятно будет спалиться на первом же сообщении, а?
Когда вы убедитесь в том, что всё нормально, переключите ту же радиокнопку в “Отправлять немедленно” и наслаждайтесь.

Кстати. Особо пытливые умы могут попробовать присобачить к своему The Bat Black Jack`s Plug-in, одной из функций которого является сочинение бессмысленных стихов.
Что-то непонятно? Задавайте вопросы.
Понравилось? Дайте на этот текст ссылку.
Вы делаете иначе? Расскажите мне, как.
upd: [одно из первых неподзамочных упоминаний о автоответчике в моём ныне покойном журнале]