2011-08-05

publish-kindle-quotes: скрипт для публикации цитат на tumblr.com

Киндл приучил выделять в книгах и периодике интересные цитаты. Хотя «приучил», громко сказано, он, если можно так выразится, способствует к этому. Потому что функция выделения части текста реализована до безобразия просто.
Все цитаты, закладки и записки хранятся в обычном текстовом файле My Clippings.txt (либо Мои вырезки.txt для русифицированного интерфейса). И если записывать книги на устройство можно «по воздуху», для копирования файла на компьютер приходилось часто подключать USB. Мне это порядком надоело, ведь есть Wi-Fi, а тут такие досадные пляски с проводами. Некрасиво.
Поиск по просторам сети выдал хак usbNetwork, с его помощью Kindle разрешает общение с собой по ssh. В последних версиях модификации помимо связи по USB разработчики добавили доступ по Wi-Fi. Часть проблемы отпала сама собой. Теперь цитаты загружаются на Большого Брата одной командой:

scp root@kin.dle.ip:\"/mnt/us/documents/"Мои вырезки.txt"\" ~/

Казалось бы, живи и радуйся. Но и такой вариант опостылел отсутствием универсальности и гибкости. Тогда мне захотелось обрабатывать цитаты прямо на устройстве. Благо, обнаружил внутри Киндла знакомые инструменты: grep, sed, curl. Родилась идея, написать скрипт для публикации последней цитаты в интернете. Дело в том, что функция “Share quote” изначально имеет ограниченное применение. Amazon позволяет делиться записями только для книг из своего магазина — для большинства русскоязычных пользователей неактульно.
Встал ребром новый вопрос: «Какой сервис выбрать для публикации?». Ответ нашёл довольно быстро и доволен им на все сто. Главную роль взял на себя сервис tumblr.com. Почему именно он?
  • Прилично выглядит «из коробки»
  • Нет навязчивой рекламы
  • Для цитат есть специальный тип записей “quote”
  • Дружелюбный к curl API
  • Интеграция с Twitter и Facebook

Далее события развивались стремительно. Отыскал пример работы с API Тумблера и начал экспериментировать с парсингом My Clippings.txt. Уверен, блок кода с регулярными выражениями есть куда улучшать. Буду благодарен за советы. А сейчас, собственно, инструкция.

Установка

Необходимые зависимости: хак launchpad
  1. Скачать скрипт quote2tumblr.sh и записать свои данные для входа в переменные TMB_USER и TMB_PASS.
  2. Скопировать quote2tumblr.sh в каталог /launchpad Киндла.
  3. Отредактировать файл /launchpad/servicecmds.ini, дописав в конец две строки:
    ;; Post last quote to tumblr.com
    Shift Q = !/bin/ash /mnt/us/launchpad/quote2tumblr.sh

    Последней строчкой мы привязали запуск скрипта к сочетанию клавиш Shift Shift Q (нажимать кнопки надо последовательно и быстро).
  4. Launchpad следует перезапустить, чтобы новое сочетание вступило в силу: Shift Shift Space

Интеграция с социальными сетями: в интерфейсе Тумблера репост сообщений в Твиттер и Фейсбук настраивается не совсем очевидно. Ниже картинка с объяснением, как попасть в нужное меню:

Клик по названию блога, а затем — Settings.

Как отправлять цитаты?
  1. Выберите в книге подходящее умозаключение и стандартными средствами сделайте вырезку: нажать центральную кнопку джойстика, стрелками указали начальную позицию в тексте, подтвердить центральной кнопкой и аналогичным способом закончить выделение.
  2. С включенной сетью (Wi-Fi/3G) нажмите сочетание Shift Shift Q. Вуаля! Новое сообщение должно появиться в блоге.

Итого
Чего мы добились? Киндл научился самостоятельно публиковать цитаты. При желании настроить скрипт для работы с другими сервисами не составит труда. Делиться интересными литературными находками с друзьями стало на порядок проще. Enjoy!

Ссылки по теме:

5 комментариев: ответить

06.08.2011, 13:53   virens комментирует...

Разбавлю бурную дискуссию.

1. шрифт с фразы "Казалось бы, живи и радуйся" поменялся. Не айс.

2. ссылка на UsbNetwork ведёт дальше, где говорят: "Главный тред про это дело -> тама". Слыш, Акулыч, кто-нибудь потрёт тот тред на форуме, и всё ж отвалится. Скопировал бы, что ли, в пост. [старческое бурчание] эти дети вебдволя думают, что интернеты были от начала зарождения мира и все делают бэкапы... :-)

3. Да, Акулович, я как всегда в танке: поясни, пошто этот тумблер-то [tubmlr.com] нужон? Это типа твиттера или ближе к блогу?

06.08.2011, 13:55   virens комментирует...

Да, вдогонку - слушай, Акулович, а я таки загуглил про тумблер. Оказывается, оно как раз то, что мне и надо для хранения мелких заметок и трюков! Drafts в блоггере уже просто разрослись до неприличных размером. А тумблер как раз оно. И по электропочте постить можно!
Так что спасибо за пост! У меня теперь и тумблер есть :-)

07.08.2011, 15:01   Павел Вязовой комментирует...

А у меня openinkpot - софтовая начинка свободная, никаких проблем нет, чтобы запилить новую функцию а FBReader и пересобрать себе прошивку. Только делать ничего не хочется =)
Мне бы вот не публикацию цитат, а аннотацию книг. Тут есть закладки, всё ок, но мне бы ещё к этим закладкам комментарий писать.

07.08.2011, 15:02   Павел Вязовой комментирует...

Это я так... мыслями поделился

07.08.2011, 20:57   drakulavich комментирует...

@virens
> шрифт с фразы "Казалось бы, живи и радуйся" поменялся.
В моих браузерах не могу воспроизвести баг.

> Слыш, Акулыч, кто-нибудь потрёт тот тред на форуме, и всё ж отвалится. Скопировал бы, что ли, в пост.
Не вставлял инструкцию в пост осознанно, дабы не раздувать инструкцию к скрипту. Заметка, скажем так, для маленькой аудитории, поэтому заинтересованные продолжат чтение по ссылке. А backup на всякий случай сделал, если отвалится что-нибудь, верну на свои места :-)

> Так что спасибо за пост! У меня теперь и тумблер есть :-)
Как говорят белорусы, няма за што. Для мелких записочек, фотографий, видеороликов и ссылок тумблер подходит идеально. Много минималистичных тем оформления, предельно прост — ничего лишнего. Один минус вспоминается, памятуя твою нелюбовь к глючному Disqus, там это штатная система комментирования. Либо дискас, либо ничего.

@Павел Вязовой
> Тут есть закладки, всё ок, но мне бы ещё к этим закладкам комментарий писать.
Согласен, порой хочется чиркнуть пару заметок между строк. В киндле, к слову, функция «из коробки».

Отправить комментарий