TTYtter – консольный Twitter-клиент на Perl
Я тут в свободное время решил провести небольшое исследование на предмет существования консольных клиентов для Twitter. К моему изумлению, их оказалось великое множество. Наиболее удачным мне показался клиент под названием TTYtter, о котором мне и хотелось бы поведать.
Установка TTYtter под FreeBSD:
portmaster -d net-im/ttytter
Установка под Debian:
sudo apt-get install ttytter
Самую свежую на момент написания этих строк версию можно поставить так:
sudo wget http://www.floodgap.com/software/ttytter/dist2/2.0.04.txt \
-O /usr/bin/ttytter
Говорим ttytter. При запуске программа выводит следующее приветствие:
Welcome to the most user-hostile, highly obfuscated, spaghetti code infested and obscenely obscure Twitter client that’s out there. You’ll love it.
О, да! Я в этом почти уверен.
Чтобы TTYtter получил доступ к вашему Twitter-аккаунту, нужно сделать следующее:
- Открываем в браузере ссылку, которую вывел TTYtter;
- Жмем кнопку «Авторизовать»;
- Копируем PIN-код в буфер обмена;
- Вводим PIN-код в TTYtter;
Если вы хотите использовать TTYtter на нескольких компьютерах, дважды проходить эту процедуру не нужно. Достаточно скопировать файл ~/.ttytterkey.
Теперь можно читать твиты из консоли:

Здесь я был вынужден уменьшить окно терминала так, чтобы оно уместилось по ширине поста. В обычных условиях все это хозяйство выглядит чуть более читаемо. Что непривычно – более новые твиты выводятся внизу, а не вверху. Обратите внимание, что все твиты и личные сообщения имеют коды, например e7 или f5. Это важно.
Работа с TTYtter производится с помощью следующих команд:
| Команда | Описание |
|---|---|
| Все, что не начинающееся с символа / | Написать новый твит |
| /help или /? | Краткая справка по командам |
| /refresh или /r или пустая строка |
Показать новые твиты |
| /again или /a [+N] [uname|lname] |
Показать последние [N] твитов [заданного пользователя или из заданного списка] |
| /dm | Показать новые личные сообщения |
| /dm username message | Написать личное сообщение |
| /dmagain или /dma [+N] | Показать последние [N] личных сообщений |
| /dmsent [+N] | Показать последние [N] отправленных сообщений |
| /friends или /frs [+N] [uname|lname] |
Список тех, кого фоловишь ты или заданный пользователь |
| /follosers или /fos [+N] [uname|lname] |
Список тех, кто фоловит тебя или заданного пользователя |
| /block user | Заблокировать пользователя |
| /unclock user | Разблокировать пользователя |
| /re или /replies [+N] | Показать список последний [N] ответов |
| /reply или /re code message |
Ответить на сообщение с заданным кодом (вот для чего они нужны!) |
| /favourite или /fave или /f code |
Добавить твит в избранное |
| /unfavourite или /unfave или /unf code |
Удалить твит из избранного |
| /favorites или /faves или /fl [+N] [username] |
Показать [N] избранных твитов [заданного пользователя] |
| /lists [username] | Показать списки [заданного пользователя] |
| /list [+N] listname | Кто есть в заданном списке |
| /listfollow или /lfollow listname |
Зафоловить список |
| /listunfollow или /lunfollow listname |
Расфоловить список |
| /liston listname | Добавить список во множество источников, из которых берутся обновления |
| /listoff listname | Команда, обратная предыдущей |
| /whois или /w username | Информация о пользователе |
| /wagain или /wa [+N] username |
Показать последние [N] твитов и информацию о пользователе |
| /follow username | Зафоловить пользователя |
| /leave username | Расфоловить пользователя |
| /search или /se query|hashtag |
Поиск |
| /trends или /tre | Тренды |
| /thread или /th code | Показать ветвь обсуждения по коду сообщения |
| /delete или /del code | Удалить твит |
| /retweet или /rt code | Ретвит сообщения |
| /oretweet или /ort code | Ретвит в старом стиле «RT @username:», например, только так можно ретвитеть тех, чьи твиты скрыты от посторонних глаз |
| /url code | Перейти по ссылке в заданном сообщении |
| /short или /sh url | Прогнать ссылку через сокращалку |
| /vcheck | Проверить наличие обновлений для TTYtter |
| /!cmd | Выполнить внешнюю команду из TTYtter через Perl’овую функцию system() |
| /history или /h | Список последних введенных команд |
| /quit | Выйти из TTYtter |
Самую подробную справку по командам вы можете найти на официальном сайте.
Помимо команд есть еще и ключи командной строки. Вот некоторые из них.
ttytter -ansi
Использовать цвета.
ttytter -status='Мой статус'
Отправить твит и завершить работу. Можно использовать это в скриптах.
ttytter -urlopen='chrome %U'
Какой браузер использовать при открытии ссылок.
ttytter -synch
Проверяет новые твиты и личные сообщения только после выполнения каких-то команд или нажатия Enter. По умолчанию новые сообщения проверяются постоянно и иногда выводятся во время набора нового твита. Это не очень удобно.
ttytter -timestamp='%d.%m.%Y %H:%M:%S'
В каком формате выводить время.
ttytter -readline=Term::ReadLine
Какой перловый модуль использовать для нормальной обработки нажатий Del, стрелочек и тп.
Чтобы не вводить ключи вручную каждый раз при запуске TTYtter, их можно прописать в файле ~/.ttytterrc в формате ключ=значение. Например:
ansi=1
synch=1
urlopen=chrome %U
timestamp=%d.%m.%Y %H:%M:%S
readline=Term::ReadLine
В целом, я вполне доволен TTYtter. Во многих отношениях он удобнее веб-интерфейса Twitter. Ну, хотя бы тем, что для работы с TTYtter не требуется использовать мышь.