Всё лежит на github:

Оркестровка

Оркестровкой занялся потому что перестало хватать бесплатных часов в Heroku. Она позволяет наклепать бота вообще без кода, достаточно указать в конфигурации:

  1. Id базы в redis.
  2. Шаблон фразы для твитов бота.
  3. Морфологический фильтр слов, пригодных для подстановки.

Есть два вида ботов:

  • Reader пишет всю свою ленту в базу Redis. Reader был один - мой личный аккаунт.
  • Writer’ы из неё читают и делают у себя пометку до куда дочитали.

Reader подчищает свою базу, удаляя прочитанные всеми Writer’ами твиты. Ферма живёт автономно, поскольку источник слов - самовосстанавливающийся (лента твиттера вечно какую-то дичь несёт). Чем-то мне это напоминает автоматизированные текстовые рисовач-треды с 0chan.

Технологии: python 2.7, Redis, OpenVZ, Dictator

Не представляю сколько места и памяти все эти боты жрали, если бы я пытался запихать их в docker. Сейчас: ≈2гб, все базы - 11мб.

Боты

Ныне все не работают.

  • Первый бот. Я беспокоился, что он кого-нибудь обидит.
  • Это когда в жопу …. Автор идеи - @hpstrsx.
  • Программировать надо. Сделан на другом движке на Golang, больше клиент твиттера, чем бот. У него есть бэкенд и фронтенд. У него есть чёрный список паттернов, потому что люди годами пишут одно и то же в твиттер, но этого недостаточно, требуется ручная модерация. Если постить абсолютно всё - выйдет Coding Tips System.
  • Гарри Поттер и Случайные Твиты выискивает в твитах паттерн из двух слов. На выходе получается что-то похожее на названия книг про Гарри Поттера.
  • Скучный секизм - получилось однообразно и не смешно.
  • Бот, отслеживающий воровство твитов - я его натравил на лепразориум, они быстро забанили и бота и мой основной аккаунт до кучи.
  • Скрипт для удаления всех своих твитов. С помощью API Вы можете скачать только последние 3200 твитов, поэтому удалить все свои твиты не получится. С помощью сторонних сервисов вы раздадите им доступы к вашему аккаунту, что тоже не очень хорошо. В настройках учётной записи можно скачать архив со всеми данными по ней, а этот скрипт, использует этот архив для удаления твитов. Занимает обычно пару дней.
  • Названия для твиттера - Генерация и Слабоумие. В словаре, используемом этим ботом было много ГлавПромСнабРыбы.

Морфология

  • Всё началось с того, что я кормил цепям маркова различные куски текста, перемешивая их с твиттером. Саша Лавкрафт Конь, Феминистки и Погром. Но боты, использующие цепи Маркова создают ≈5% забавных текстов, поэтому никому не интересны.
  • Я стесняюсь написать NLP в резюме, хотя это интересная для меня тема.
  • Для работы с склонением слов я использую pymorphy2. Лучшая библиотека для русского языка.
  • Датасеты NLTK много весят, поэтому я его не использовал.

Твиттер

  • У твиттера удобный API.
  • У твиттера удобная регистрация аккаунтов. Она позволяет обойтись пин-кодом из браузера для подписывания пользователя на приложение, можно не разворачивать сервис для авторизации пользователей.
  • В документации твиттера было сказано, что они приветствуют ботов, если это полезно или нравится людям. А теперь они не дают зарегистрировать аккаунт разработчика.

Сборище фактов

  • Монетизация everyword-ботов маловероятна, аудитория растёт медленно. Пустому аккаунту нечем зацепить читателя, поэтому перед тем публикацией нужно нагенерить хотя бы 100-200 твитов. 5-6 ретвитов тысячников в первую неделю существования бота решают его дальнейшую судьбу. Если за первую неделю бот не набрал сотню читателей, то так в её пределах крутиться и будет.
  • Как-то раз я изменил источник на слова песен гражданской обороны, но это всем быстро надоело.
  • Вообще интерес к ботам возник из-за работы, где некоторые действия я автоматизировал с помощью xdotool и из World of Warcraft на пиратском сервере, где я сделал себе кликер.
  • Периодически люди думают, что бот - реальный человек который сутками написывает и написывает.
  • Лебедев начал постить однообразную шаблонную херню без смысла раньше.
  • Каждый ≈700й твит написан ручками под настроение.
  • Один из самых важных твитов