Prowl или выжимаем из iPhone всё

Предыстория: на выходных решил вплотную заняться своим айфоном. Старичок 3G (2 с половиной году использования) весьма тормозил и это раздражало. Раз Apple перестал его поддерживать и последняя прошивка 4.2.1, то я имею полное право изнасиловать прибор под свои нужды, все равно ничего нового не будет.

Сперва был jailbreak, на чем останавливаться не буду — инструкций в сети полно. Сразу после этого в cydia были установлены всего две вещи — OpenSSH и SBsettings (свободную оперативку смотреть). 

Сразу скажу, что за два года я понял одну простую вещь — стоит использовать только купленный софт, чтобы не было мучительно больно после его обновления или смены телефона. Покупал я мало, в основном всякие читалки/твиттероклиенты и несколько игрушек, куда ж без них. Это всё я говорю к тому, что разного софта/твиков для запуска ломанных программ из cydia не ставил, ибо уверен что в итоге затормозит и так не быструю систему и создаст проблемы с переездом на новый iPhone 5 или iPhone 4GS (который нам покажут уже завтра =)

После джейлбрейка была сурово почищена система и удалены из загрузки все ненужные, на мой взгляд, сервисы. Описание демонов брал отсюда, в итоге из 88 у меня осталось 65. В результате быстродействие повысилось неимоверно, сравнивать с тем, что было, нельзя. Однако я случайно убрал push (com.apple.apsd.plist), из-за чего в дальнейшем поимел немалый гемор =) Конец предыстории.

Я уже настраивал уведомления об автоматически скачанных домашним сервером торрентах и писал об этом тут, но после того как я аварийно его восстановил, все наработки похерились и руки никак не доходили. Сейчас захотелось большего — получать уведомления не только о скачанных, но и о добавленных для скачивания вещах =)


Взгляд мой упал на prowl, менеджер push-уведомлений (всё это актуально только для iPhone, как собственно видно из названия поста). Оно позволяет получать на свой iPhone разные push-штуки, причем денег за это не берет. Денег стоит только сама софтина в AppStore ($3), но 1000 сообщений каждый месяц совершенно бесплатны. Там есть свой API для кучи языков программирования, но некоторый софт поддерживает prowl из коробки, в том числе automatic, используемый для автоматического парсинга RSS-лент (в том числе с закрытых torrent-трекеров). 

Итак, указав свой API в конфиге automatic, я получил вот таккую картинку в течение 10 секунд после первого парсинга ленты лостфильма. Это не значит что он начал скачиваться — это значит что торрент-файл успешно скачан и положен в просматриваемую transmission папочку. Если последний выключен или сломался, дальше ничего не произойдет.

Теперь нам надо узнать, что собственно торрент скачался. Для этого мы настраиваем transmission для запуска скрипта после завершения, как описано по ссылке выше, только используем скрипт взаимодействия с prowl. Для этого нам нужен curl, старая версия вполне сойдет. Рожаем скрипт:

#!/bin/sh
curl -k http://api.prowlapp.com/publicapi/add -F apikey=7e1d474513a9f36471dd2925 -F priority=-1 -F application="Transmission" -F description="$TR_TORRENT_NAME - $TR_TIME_LOCALTIME"

Это не мой API, используйте свой =) Не забываем chown/chmod на этот файл, чтобы запускался и скармливаем его конфигу transmission, в моем варианте это строки

"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/c/addons-config/Transmission/prowl_alert",

После всех мучений нам приходит push-уведомление и о скачанных файлах. Я всё.