Как стать автором
Обновить

Переписываемся с торрент-клиентом

Время на прочтение3 мин
Количество просмотров8.9K
Захотел я как-то настроить возможность давать команду домашнему компьютеру начинать загрузку торрента путем отправки торрент-файла по email на специальный адрес, а при окончании загрузки получать соответствующее уведомление по email. И сделал.

Дополнительные условия:
  • Есть круглосуточно работающий компьютер с Windows 7. Будем использовать его.
  • Вход в систему не автоматический, т.е. может быть и не выполнен.
  • Создавать собственный программный продукт не хочется. Будем пользоваться готовыми.

Запускать приложения будем планировщиком от пользователя SYSTEM при запуске компьютера. Для преодоления отсутствия «правильного» пользователя и его директорий будем использовать portable-версии.

Возьмем:
  1. Для отправки писем с уведомлениями blat.exe и stunnel;
  2. uTorrent;
  3. Для получения писем с вложенным файлом Thunderbird с attachmentextractor.

Настраиваем:

1. blat.exe и stunnel


Уведомление об окончании загрузки будет отправлять с почты Gmail.
Необходимые настройки описаны здесь.
Кратко:
1.1. Скачиваем приложения, устанавливаем stunnel.
1.2. Правим stunnel.conf в папке stunnel.

# GLOBAL OPTIONS

client = yes
output = stunnel-log.txt
debug = 0
taskbar = no

# SERVICE-LEVEL OPTIONS

[SMTP Gmail]
accept = 127.0.0.1:1099
connect = smtp.gmail.com:465

1.3. В командной строке выполняем:
blat -install smtp.gmail.com youremail@gmail.com -u gmailusername -pw gmailpassword – - gmailsmtp

2. UTorrent


2.1. Устанавливаем uTorrentPortable (испытано на версии 3.1.3), настраиваем под собственные потребности, а также в Настройках:
  • Папки > Указываем папку «Автозагрузка торрентов из:» В неё будем сохранять полученные по email торрент-файлы.
  • Скорость > «Макс.скорость отдачи». Здесь в некоторых случаях имеет смысл поставить значение поменьше, т.к. в рамках этого решения Вы не сможете удаленно остановить раздачи, и они будут продолжаться до Вашего непосредственного вмешательства. Минимум – 1 Кб/с; а 0 – это, напротив, не ограничено.


2.2. В Планировщике заданий создаем задачу для запуска uTorrentPortable со следующими настройками:
  • Использовать учётную запись пользователя: «система»;
  • Выбрать «Выполнять вне зависимости от регистрации пользователя»;
  • Выбрать «Выполнять с наивысшими правами». Это необходимо не для самого uTorrent-а, а для успешного запуска stunnel при отправке уведомлений (см. далее);
  • Триггер: «При включении компьютера».

Тестирования запуска/завершения uTorrentPortable из-под SYSTEM показало, что при аварийном завершении в папке uTorrentPortable\Data\ остается файл PortableApps.comLauncherRuntimeData-uTorrentPortable.ini, что делает невозможным следующий запуск программы.

Поэтому в «Действия» перед запуском uTorrentPortable добавляем запуск вот такого clearini.bat:
set SETTINGSFILE="d:\uTorrentPortable\Data\PortableApps.comLauncherRuntimeData-uTorrentPortable.ini"
if exist %SETTINGSFILE% (del %SETTINGSFILE%) else (echo ok)


3. Thunderbird



3.1. Устанавливаем Thunderbird portable
Уточнение на всякий случай: протестировано на thunderbird portable версии 12.0
Настраиваем получение почты.
Устанавливаем дополнение attachmentextractor.

В настройках attachmentextractor указываем:
  • Общие > Путь для сохранения по умолчанию > папка utorrent для автозагрузки, а также, на всякий случай, переключатель «Всегда заменять существующий файл новым вложением».
  • После извлечения> включаем «Пометить сообщение как прочитанное» и «Удалить сообщение». Это важно, иначе после перезапуска начнете, вероятно, загружать заново.
  • Автоизвлечение > включаем «Автоматически извлекать вложение при получении письма» и «Запускать только Auto-Extract для сообщений, в которых есть вложения».


3.2. Эксперименты по запуску Thunderbird portable из-под SYSTEM выявили, что приложению всё же необходима временная папка пользователя.
Поэтому для запуска используем такой Start.bat:

@echo off
setlocal enableextensions
set TMP=%~dp0temp-folder
"%~dp0ThunderbirdPortable.exe"
Endlocal


Его сохраняем в папке с ThunderbirdPortable.exe и создаём там папку temp-folder.

3.3. В планировщике заданий создаем задачу запуска start.bat с такими настройками:
  • Использовать учётную запись пользователя: «система»;
  • Выбрать «Выполнять вне зависимости от регистрации пользователя»;
  • Можно не выбирать «Выполнять с наивысшими правами»;
  • Триггер: «При включении компьютера».



4. Создаём torrent_finish.bat



set debug=-debug -log blat.log -timestamp
"C:\Program Files\stunnel\stunnel.exe" -start -quiet
D:
CD D:\Soft\blat
blat.exe -p gmailsmtp -to youremail@gmail.com -subject "%~1" -body "Loaded." -charset windows-1251 -server 127.0.0.1:1099 %debug%
"C:\Program Files\stunnel\stunnel.exe" -stop -quiet


В настройках uTorrent:
Дополнительно > Запуск программы > «Запустить эту программу по завершению торрента» > torrent_finish.bat "%N"

Система будет готова к работе после каждого перезапуска компьютера.

Есть много других решений, удаленного управления торрент-клиентом. Вот здесь сразу 4 способа, а здесь даже специальное ПО.
Теги:
Хабы:
Всего голосов 28: ↑22 и ↓6+16
Комментарии34

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн