Песочница →
Dropbox + AutoIt + utorrent
Добрый день. Читал про разные связки Dropbox и utorrent, но не одна мне не подходила. Исходя из опыта закачек ранее, следовало только одно, если сразу не указать место куда сохранять и нужное название файла, потом он так и останется в папке «Не разобранное» с название «Avatar.2009.Extended.Collectors.Cut(1080p).mkv». Если даже потом разобрать скаченное, надо будет перезапускать торрент файлы и указывать уже новый путь к файлу, чтобы их раздавать. А если учесть, что дома помимо меня смотрят фильмы еще родители и племянница, то такое название оставлять было нельзя.
1. добавление торрентов удаленно не подключаясь к домашнему компьютеру (ДК);
2. возможность указать путь к файлу на ДК;
3. возможность указать имя скачиваемого файла;
4. удаленно отслеживать какие файлы поставились на закачку, какие завершили закачку.
Обращаемся к справке utorrent.exe получается для добавления торрента необходимо выполнить такую команду:
Из этой же справки и пойска в гугле, а также форума utorrent оказалось, что в командной строке uTorrent нельзя указать имя скачиваемого файла. По началу так и выполнял команду, но при дальнейшей реализации программы пришлось из строки убрать
Необходимо, чтобы в папке Dropbox была такая же структура папок, что и на домашнем компьютере куда сохраняется скачиваемый файл. Далее сохраняя торрент-файл в нужную директорию папки Dropbox, мы сможем добавить торрент на ДК в ту директорию, которая нам нужна. Для этого необходимо было обеспечить автоматическую синхронизацию структуры папки с ДК и папки в DropBox. Как именно реализован поиск торрент-файлов и синхроназиция структуры папок, разбирать не буду, т.к. там ничего особенного нет.
После синхронизации папка Dropbox выглядела следующем образом:
С указанием названия файла возникли проблемы. Имя торрент-файла и имена файлов, которые скачиваются через этот торрент это две разные вещи. В командной строке uTorrent при добавлении, также нельзя было указать с каким именем сохранять файл. Опять начал искать информацию. Оказалось, что изменять торрент-файл нельзя, т.к. потом он становится «инвалидом» и его нельзя будет добавить на закачку. И тут приходит на помощь AutoIT с его возможностью обращаться к элемента формы другой программы. Перед этим из командной строки uTorrent убираю /DIRECTORY «Директория куда сохранять», чтобы появлялось окно о добавлении торрента. Далее надо было узнать как называется элемент формы, где указывается путь сохранения файла. В комплекте с AutoIT идет программа называется AutoIT Window Info благодаря которой можно узнать как называются элементы формы:
Нужное нам поле называется «ComboBox1», чтобы обратится к нему требовалось знать и название окна (Title) в котором элемент находится. В нашем случае название окна выглядит следующим образом:
«Avatar.2009.Extended.Collectors.Cut(1080p).mkv — Добавить новый торрент»
Так как имя торрент-файла и имя с которым оно добавляется по умолчанию в торрент-клиенте это две разные вещи. А мне как раз надо было имя с которым оно добавляется по умолчанию. Необходимо было как то его выдернуть из торрент-файла. Из полученной информации следовало, что торрент-файл кодировался в формате Bencode, библиотеки написанной для AutoIT я не нашел поэтому в последствии разбирал его простым чтением. Мне нужно было значение поля name. В нашем примере кусок файла с нужным мне значением выглядел так:
«name46:Avatar.2009.Extended.Collectors.Cut(1080p).mkv12:piece»
Что такое 12:piece и почему оно встречалось во всех файлах, которые просмотрел на домашнем компьютере, так и не понял. Но раз оно одинаково спокойно получил название «Avatar.2009.Extended.Collectors.Cut(1080p).mkv». Теперь мы можем получить название окна в котором находится элемент «ComboBox1». Имя файла беру из названия торрента, т.е. при сохранении торрент-файла указал название «Аватар.torrent». Указание значения поля для формы в AutoIT делается следующим образом:
Также посылаем команду Левый клик мышки по кнопке Ок.
Вуаля торрент добавился с нужным мне именем в нужную мне директорию на домашнем компе.
Также лучше в uTorrent Настройки -> Интерфейс снять галочку «Активировать окно программы», чтобы добавление торрента происходило не заметно для человека который работал на ДК.
С ним все просто. Пишем в лог который находится в папке Dropbox о добавлении торрента. Для того, чтобы писалось о завершении закачки торрента необходимо сделать следующее. Зайти в настройки utorrent
Итак необходимые требования к программе:
1. добавление торрентов удаленно не подключаясь к домашнему компьютеру (ДК);
2. возможность указать путь к файлу на ДК;
3. возможность указать имя скачиваемого файла;
4. удаленно отслеживать какие файлы поставились на закачку, какие завершили закачку.
Как решал поставленную задачу
Первый пункт
Обращаемся к справке utorrent.exe получается для добавления торрента необходимо выполнить такую команду:
C:\Program Files\uTorrent>uTorrent.exe /DIRECTORY "Директория куда сохранять" "Путь до торрент файла"
Из этой же справки и пойска в гугле, а также форума utorrent оказалось, что в командной строке uTorrent нельзя указать имя скачиваемого файла. По началу так и выполнял команду, но при дальнейшей реализации программы пришлось из строки убрать
/DIRECTORY "Директория куда сохранять"
, об этом расскажу ниже.Второй пункт
Необходимо, чтобы в папке Dropbox была такая же структура папок, что и на домашнем компьютере куда сохраняется скачиваемый файл. Далее сохраняя торрент-файл в нужную директорию папки Dropbox, мы сможем добавить торрент на ДК в ту директорию, которая нам нужна. Для этого необходимо было обеспечить автоматическую синхронизацию структуры папки с ДК и папки в DropBox. Как именно реализован поиск торрент-файлов и синхроназиция структуры папок, разбирать не буду, т.к. там ничего особенного нет.
После синхронизации папка Dropbox выглядела следующем образом:
Третий пункт
С указанием названия файла возникли проблемы. Имя торрент-файла и имена файлов, которые скачиваются через этот торрент это две разные вещи. В командной строке uTorrent при добавлении, также нельзя было указать с каким именем сохранять файл. Опять начал искать информацию. Оказалось, что изменять торрент-файл нельзя, т.к. потом он становится «инвалидом» и его нельзя будет добавить на закачку. И тут приходит на помощь AutoIT с его возможностью обращаться к элемента формы другой программы. Перед этим из командной строки uTorrent убираю /DIRECTORY «Директория куда сохранять», чтобы появлялось окно о добавлении торрента. Далее надо было узнать как называется элемент формы, где указывается путь сохранения файла. В комплекте с AutoIT идет программа называется AutoIT Window Info благодаря которой можно узнать как называются элементы формы:
Нужное нам поле называется «ComboBox1», чтобы обратится к нему требовалось знать и название окна (Title) в котором элемент находится. В нашем случае название окна выглядит следующим образом:
«Avatar.2009.Extended.Collectors.Cut(1080p).mkv — Добавить новый торрент»
Так как имя торрент-файла и имя с которым оно добавляется по умолчанию в торрент-клиенте это две разные вещи. А мне как раз надо было имя с которым оно добавляется по умолчанию. Необходимо было как то его выдернуть из торрент-файла. Из полученной информации следовало, что торрент-файл кодировался в формате Bencode, библиотеки написанной для AutoIT я не нашел поэтому в последствии разбирал его простым чтением. Мне нужно было значение поля name. В нашем примере кусок файла с нужным мне значением выглядел так:
«name46:Avatar.2009.Extended.Collectors.Cut(1080p).mkv12:piece»
Что такое 12:piece и почему оно встречалось во всех файлах, которые просмотрел на домашнем компьютере, так и не понял. Но раз оно одинаково спокойно получил название «Avatar.2009.Extended.Collectors.Cut(1080p).mkv». Теперь мы можем получить название окна в котором находится элемент «ComboBox1». Имя файла беру из названия торрента, т.е. при сохранении торрент-файла указал название «Аватар.torrent». Указание значения поля для формы в AutoIT делается следующим образом:
ControlSetText($Title, "", "ComboBox1", $NameTorrent)
Также посылаем команду Левый клик мышки по кнопке Ок.
ControlClick ($Title, "", "Button7")
Вуаля торрент добавился с нужным мне именем в нужную мне директорию на домашнем компе.
Также лучше в uTorrent Настройки -> Интерфейс снять галочку «Активировать окно программы», чтобы добавление торрента происходило не заметно для человека который работал на ДК.
Четвертый пункт
С ним все просто. Пишем в лог который находится в папке Dropbox о добавлении торрента. Для того, чтобы писалось о завершении закачки торрента необходимо сделать следующее. Зайти в настройки utorrent
19.09.2011 12:54+0400