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

в 14:22, , рубрики: Peer-to-Peer, метки:

Захотел я как-то настроить возможность давать команду домашнему компьютеру начинать загрузку торрента путем отправки торрент-файла по 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 показало, что при аварийном завершении в папке uTorrentPortableData остается файл PortableApps.comLauncherRuntimeData-uTorrentPortable.ini, что делает невозможным следующий запуск программы.

Поэтому в «Действия» перед запуском uTorrentPortable добавляем запуск вот такого clearini.bat:
set SETTINGSFILE="d:uTorrentPortableDataPortableApps.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 Filesstunnelstunnel.exe" -start -quiet
D:
CD D:Softblat
blat.exe -p gmailsmtp -to youremail@gmail.com -subject "%~1" -body "Loaded." -charset windows-1251 -server 127.0.0.1:1099 %debug%
"C:Program Filesstunnelstunnel.exe" -stop -quiet

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

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

Есть много других решений, удаленного управления торрент-клиентом. Вот здесь сразу 4 способа, а здесь даже специальное ПО.

Автор: A0Z

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js