Dropbox + AutoIt + utorrent

Добрый день. Читал про разные связки Dropbox и utorrent, но не одна мне не подходила. Исходя из опыта закачек ранее, следовало только одно, если сразу не указать место куда сохранять и нужное название файла, потом он так и останется в папке «Не разобранное» с название «Avatar.2009.Extended.Collectors.Cut(1080p).mkv». Если даже потом разобрать скаченное, надо будет перезапускать торрент файлы и указывать уже новый путь к файлу, чтобы их раздавать. А если учесть, что дома помимо меня смотрят фильмы еще родители и племянница, то такое название оставлять было нельзя.

Итак необходимые требования к программе:


1. добавление торрентов удаленно не подключаясь к домашнему компьютеру (ДК);
2. возможность указать путь к файлу на ДК;
3. возможность указать имя скачиваемого файла;
4. удаленно отслеживать какие файлы поставились на закачку, какие завершили закачку.

Как решал поставленную задачу


Первый пункт

Обращаемся к справке utorrent.exe получается для добавления торрента необходимо выполнить такую команду:

C:\Program Files\uTorrent>uTorrent.exe /DIRECTORY "Директория куда сохранять" "Путь до торрент файла"

Из этой же справки и пойска в гугле, а также форума utorrent оказалось, что в командной строке uTorrent нельзя указать имя скачиваемого файла. По началу так и выполнял команду, но при дальнейшей реализации программы пришлось из строки убрать /DIRECTORY "Директория куда сохранять", об этом расскажу ниже.

Второй пункт

Необходимо, чтобы в папке Dropbox была такая же структура папок, что и на домашнем компьютере куда сохраняется скачиваемый файл. Далее сохраняя торрент-файл в нужную директорию папки Dropbox, мы сможем добавить торрент на ДК в ту директорию, которая нам нужна. Для этого необходимо было обеспечить автоматическую синхронизацию структуры папки с ДК и папки в DropBox. Как именно реализован поиск торрент-файлов и синхроназиция структуры папок, разбирать не буду, т.к. там ничего особенного нет.

После синхронизации папка Dropbox выглядела следующем образом:

image

Третий пункт

С указанием названия файла возникли проблемы. Имя торрент-файла и имена файлов, которые скачиваются через этот торрент это две разные вещи. В командной строке uTorrent при добавлении, также нельзя было указать с каким именем сохранять файл. Опять начал искать информацию. Оказалось, что изменять торрент-файл нельзя, т.к. потом он становится «инвалидом» и его нельзя будет добавить на закачку. И тут приходит на помощь AutoIT с его возможностью обращаться к элемента формы другой программы. Перед этим из командной строки uTorrent убираю /DIRECTORY «Директория куда сохранять», чтобы появлялось окно о добавлении торрента. Далее надо было узнать как называется элемент формы, где указывается путь сохранения файла. В комплекте с AutoIT идет программа называется AutoIT Window Info благодаря которой можно узнать как называются элементы формы:

image

Нужное нам поле называется «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 → Дополнительно → Выполнить эту программу по завершении торрента указал свою программу с параметрами TorrentBot.exe %F -onlylog.

Система в работе

На домашнем компьютере запущена программа (TorrentBot.exe). И допустим на работе, сохраняю торрент в папку «Dropbox\DWND\1_Фильмы\Ковбои против пришельцев.torrent» файл копируется на домашний компьютер средставми Dropbox далее торрент добавляется в закачку, и удаляется из Dropbox.

Исходники

Исходники программы прилагаются, прошу представленный код строго не судить.
Для тех кто захочет запустить программу. При первом запуске ехе файла создается config.ini в той же папке, что и лежит программа. В нем необходимо указать следующее:
[options]
PathDWND=G:\DWND\
PathDropBox=G:\Dropbox\DWND\
TimeUpdate=30

Где PathDWND – путь на домашнем компьютере куда необходимо сохранять все закачки;
PathDropBox — путь в папке Dropbox в которой будет находится структура папки из пути PathDWND;
TimeUpdate — время проверки появление новых торрент файлов в папке PathDropBox (в секундах)
Обязательное требование не перепутайте PathDWND и PathDropBox местами иначе в папке PathDWND будет только структура из PathDropBox, и все файлы которые были до этого в PathDWND исчезнут.
Ах да, используйте на свой страх и риск.

Спасибо за внимание.

Используемая литература: cправка utorrent, справка AutoIt, Google search.

TorrentBot.au3.
Share post

Comments 37

    +1
    uTorrent умеет брать торрент файлы из определенной заранее настроенной деректории.
      +2
      Правильно, только он не умеет раскладывать в нужные папки, и задавать необходимые имена.
        +1
        Умеет раскладывать по тегам.
          0
          Согласен умеет. Но для меня важно было еще название указывать нормальное.
      0
      После теста на выходных исправились некоторые ошибки:
      Изменения от 100911
        +1
          0
          Пробововал. Так и не получилось заставить норм работать видимо руки кривые.
          С работы вообще не работает, ошибка доступа. Постоянно проблемы с их авторизацией.
            0
            На работе видимо порты закрыты.
              0
              Сейчас с домашнего компа попробовал. А где возможность указать Куда/Под каким именем сохранять?
                0
                Работает по порту 9000
                  0
                  Согласись, далеко не у всех на работе есть возможность пробить открытие портов у админов.
                    0
                    В таком случае: тор проберется по стандартному порту, внутри добираемся до нужного.
                      0
                      Так там можно указать под каким именем и куда сохранять? А то я так и не нашел, если там такое есть, то действительно можно было юзать RemoteTorrent
                        0
                        Не знаю, только вечером гляну, может и нет такого. Я лично в основном использую метки и все файлы открываю непосредственно из интерфейса uTorrent. Разве при добавлении торрента не спрашивает куда сохранять?
                          0
                          Еще минус, если на Домашнем компе вырублен uTorrent, то через Remote нельзя подключится.
                            +1
                            Спасибо, улыбнулся :)
                              0
                              Хм? Конечно можно подключится к компу и врубить торрент, но это доп. гемморой
                                0
                                Или я не понял в чем юмор?
                            0
                            Не совсем понял почему можете посмотреть только вечером. Интересует возможность указать через remote.utorrent.com куда и под каким именем сохранять.
                          0
                          Вы считаете на работе похвалят за использование тора?
                      0
                      также, то работает то нет(
                    0
                    ещё очень удобно DynDNS + uTorrent WebUI
                      0
                      И получаешь remote.utorrent.com, только при условии, что у тебя белый IP. В чем профит?
                        0
                        профит в «Пробововал. Так и не получилось заставить норм работать видимо руки кривые.
                        С работы вообще не работает, ошибка доступа. Постоянно проблемы с их авторизацией».

                        такая связка у меня отлично работала и из-за корпоративного прокси без доп. настроек и со смартфона (если взять адаптированное к телефонам веб-лицо).
                          0
                          Адаптированный интерфес — это интересно. Можно ссылку?
                            0
                            дело было достаточно давно, но по-моему использовал вот этот (сейчас нагуглил): www.davidraso.com/utorrent-iphone/
                              0
                              Стоит отметить, что 3.0 он не поддерживает. Скорее всего подзабросили проект…
                          0
                          Ух, не знал об этой фишке. Офигенная штука.
                        +5
                        10 секунд оттирал точку на мониторе, а оказалось это на иконке дропбокса нарисовано )
                          0
                          =)))))
                            0
                            ахаха))
                            0
                            Ммм… Я как разработчик в шоке от таких ковыряний. :) Маленькое веб-приложение и все работает именно так, как необходимо мне. Плюс удобный фейс и т.д.
                              0
                              а как такое можно сделать если на работе стоит винда, а дома мак? возможно?
                                0
                                Наверно можно, правда с маком дела не имел.
                                0
                                В исходнике для универсальности путей лучше поправить:

                                $StrokaZapuska="C:\Program Files\uTorrent\uTorrent.exe "

                                на

                                $StrokaZapuska=@ProgramFilesDir & "\uTorrent\uTorrent.exe "

                                И сделать проверку операционной системы на разрядность, а то получится что по умолчанию utorrent будет лежать в Program Files(x86), а в идеале прочитать из реестра где именно установлен utorrent и уже подставлять в $StrokaZapuska.
                                  0
                                  Ок, думал об этом только руки не дошли. Спасибо.
                                    0
                                    + еще хотел получать путь из DropBox автоматом, разбирая его config.db.

                                  Only users with full accounts can post comments. Log in, please.