[Сценарий] Автоматическое скачивание торрентов. Инструкция.

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение nick7zmail » Вт сен 08, 2015 8:33 pm

Прежде всего спасибо Сергею, что помог разобраться с некоторыми тонкостями json, ну и собственно за проект в целом!
Хочу немного поделится тем, как я сделал
Wave писал(а):...на виндовом сервере как такую же плюшку ...
Но сперва немного оффтопа про выбор торрент-клиента. Может кому пригодится мой опыт. Всю жизнь пользовался мю-торрентом, но пару лет назад он начал меня разочаровывать. Постоянные обновления, замирание во время загрузки (скидывал скорость на 0, не завершив загрузку, и не продолжал качать до перезапуска, либо продолжал по прошествии минут 5), и самое напряжное - не докачивал файлы (показывал 100%, но когда удаляешь/добавляешь заново торрент - после сканирования это оказывалось, к примеру 94%). Итак, решил я сменить клиент. В первую очередь выбор пал на тот, которому я доверял больше, но пользовался меньше - ktorrent (из kde). Но под виндой с ним оказались небольшие проблемы. 1) Он тянул половину kde-компонентов из пакета kde for windows (плохо, если требуется быстрая установка). 2) Он то-ли зависал, то ли вылетал, не помню. В итоге пошел смотреть какие еще есть клиенты для винды. Сразу глаз пал на qBitTorrent. Сделан на Qt (так же как и ktorrent), весит мало, один цельный пакет, максимально простой интерфейс без всяких наворотов, дополнений, и т.д. - то что надо одним словом.

Торрент клиент имеет веб-интерфейс. Я об этом знал, но как то пользовался торрентом на ноуте, по привычке. Недавно решил таки установить на сервер. Ну и как следствие - т.к. каждый раз порт дописывать к адресу неудобно - захотелось прицепить его к MD. Первым делом включаем этот самый веб-интерфейс.
000.jpg
Настройки веб сервера
000.jpg (109.48 КБ) 12828 просмотров
У клиента есть хороший мануал по api.

Но чтобы новичкам (как я) особо не капаться - вот готовые решения.

Первым делом создаем объект (скажем torrent).
Решаем, какие функции хотим контролировать из меню. Я приведу примеры со своими пунктами.
1) Запуск/остановка загрузки.
Для этого добавляем пункт меню radiobox с надписями Загрузка и Пауза, связываем со свойством, скажем, state, и добавляем код на выполнение

Код: Выделить всё

if (getGlobal('torrent.state') == 'Загрузка') {
  getURL('http://localhost:8083/command/resumeAll',0);
  sleep(2);
} else {
  getURL('http://localhost:8083/command/pauseAll',0);
  sleep(2);
} 
2) Установка ограничения скорости загрузки (да, у этого клиента есть такая фишечка). Настраивается тут
001.jpg
Ограничение скорости
001.jpg (92.53 КБ) 12828 просмотров
В меню добавляем выключатель, связываем со свойством speedlim и код на выполнение

Код: Выделить всё

getURL('http://localhost:8083/command/toggleAlternativeSpeedLimits',0);
3) Обратная связь от клиента. С этим прокопался дольше всего.
создаем метод check, с кодом

Код: Выделить всё

$content=getURL('http://localhost:8083/query/torrents?filter=all', 0);
$data=json_decode($content);
$ttt=0;
sg('torrent.list', '');
foreach ($data as $key => $value) {
    setGlobal('torrent.list', gg('torrent.list').'<br>'.$value->name);
    $ttt=$ttt+1;
}
sg('torrent.all', $ttt);


$content=getURL('http://localhost:8083/query/torrents?filter=downloading', 0);
$data=json_decode($content);
$ttt=0;
foreach ($data as $key => $value) {
//    setGlobal('torrent.test', gg('torrent.test').'<br>'.$value->name);
    $ttt=$ttt+1;
}
sg('torrent.dw', $ttt);
и соответственно свойства dw, list, all. Метод ставим на выполнение любым удобным способом. Я поставил на выполнение раз в 10 минут.
Добавляем html-блок в меню.

Код: Выделить всё

Всего торрентов: %torrent.all% <br>
Загружается: %torrent.dw%
<br>
<details>
 <summary>Список</summary>%torrent.list%
</details>
В итоге получаем вот такой интерфейс:
111.jpg
Интерфейс
111.jpg (182.25 КБ) 12828 просмотров
Пункт "список" разворачивается, с отображением всех торрентов.
Можно еще запрашивать статус ограничения скорости, и перезаписывать свойство speedlim - для всегда актуального статуса выключателя, но я не стал заморачиваться.
Как вы понимаете, интерфейс больше нацелен на мобильное меню. Для компьютера можно добавить домашнюю страницу (как у меня на скрине).
4) Ну и еще небольшая фишечка. В клиенте есть функция "выполнить команду по окончании загрузки"
112.jpg
По окончании загрузки
112.jpg (49.58 КБ) 12828 просмотров
а в метод torrents_end вписываем что то вроде

Код: Выделить всё

if (getGlobal('torrent.voice')) {
   say('Загрузка торрента '.$params['t_name'].' завершена');
}
 
Логично, что со свойством torrent.voice связан выключатель "Оповещать о загрузке торрентов"
Как результат получаем вот такие оповещения
222.jpg
Оповещение
222.jpg (14.87 КБ) 12828 просмотров
5) У клиента так же, как и у описанного тем стартером, есть папка для отслеживания изменений (при появлении там торрента - загружает автоматически). Думаю скрипты для скачивания самих торрент файлов с трекеров такие же, как и для линукса. Просто скачиваете в указанную папку, а в загрузку ставится автоматически. Я этого делать не стал, т.к. качаю с разнообразных трэкеров. Только лишь указал папку.
333.jpg
Папка
333.jpg (44.32 КБ) 12828 просмотров
PS: Конечно все указанные коды можно прописать в методах, и вызывать их, но я пока не увидел необходимости. Если все будет прописано в методах, их можно легко вызывать из шаблонов.
-----------------------------
Спасибо всем за внимание и помощь.
За это сообщение автора nick7zmail поблагодарили (всего 3):
skysilver (Ср сен 09, 2015 1:05 pm) • C_3AXAPOB (Ср сен 28, 2016 9:35 pm) • xxxShahxxx (Сб мар 31, 2018 8:30 pm)
Рейтинг: 3.49%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение nick7zmail » Вт сен 08, 2015 9:08 pm

T-REX-XP писал(а):

Было бы круто накатать плагин а не просто скрипт.
п.с. я тоже накатал несколько скриптов по проверке баланса с личного кабинета Triolan и по обновлению курса валют в PrivatBank. Но сделать полноценные плагины руки так и не дошли((
Плагин это конечно круто...было бы ещё время разбираться - как оно все делается...
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
T-REX-XP
Сообщения: 174
Зарегистрирован: Вт июн 16, 2015 10:54 pm
Благодарил (а): 16 раз
Поблагодарили: 32 раза

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение T-REX-XP » Ср сен 09, 2015 12:23 pm

Есть еще для загрузки торентов torrentmonitor.
http://blog.korphome.ru/torrentmonitor/
я поднял его у себя на Xpenology, в качестве торент клиента используется transsmission, все работает отлично.
так же есть вебморда, которую можно во вкладку прикрепить, и есть еще интеграция с паш сервисами.
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение Amarok » Ср сен 09, 2015 2:46 pm

Ещё б оно по папкам раскидывало. Музыку в музыку, сериалы в сериалы...
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
I_I_Imonder
Сообщения: 256
Зарегистрирован: Сб янв 11, 2014 2:54 pm
Благодарил (а): 12 раз
Поблагодарили: 14 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение I_I_Imonder » Чт сен 10, 2015 6:30 am

Спасибо. Отличное решение, а можете показать - рассказать что у Вса скрывается во вкладке PLEX?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение nick7zmail » Чт сен 10, 2015 10:38 am

I_I_Imonder писал(а):Спасибо. Отличное решение, а можете показать - рассказать что у Вса скрывается во вкладке PLEX?
Показать то могу, но боюсь ответ Вас разочарует =). Если вопрос про вкладку на домашних страницах - то там веб-интерфейс плекса. Если про пункт в левом меню - то там ссылка на эту же страницу. Просто изначально сделал пункт "программы" в основном меню, и там ссылочки на приложения с веб интерфейсом (надоело запоминать порты, сделал просто в ссылках). А потом решил добавить на домашние страницы эти веб-интерфейсы, и по факту ссылки в меню стали не нужны. И если в пункт торрента я накидал элементов управления, плексом пока не занимался. Если что нибудь придумаю - создам тему.
Вложения
plex.jpg
plex.jpg (153.58 КБ) 12761 просмотр
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение nick7zmail » Пт сен 11, 2015 4:19 pm

Amarok писал(а):Ещё б оно по папкам раскидывало. Музыку в музыку, сериалы в сериалы...
Появилось пару идей на эту тему))
Первая мысль была - просто запустить 3 копии клиента с разными отслеживаемыми папками и разным итоговым путемзагрузки...но об этой тупости даже отписываться на стал))).
Полазив немного по настройкам - нашел функцию "Скачивать торрент в отслеживаемую папку"
11111.jpg
Настройки
11111.jpg (20.51 КБ) 12726 просмотров
То есть чтобы осуществить такую задумку - надо указать 3 отслеживаемых папки, и напротив каждой поставить - "Скачивать сюда".
Ну а сами файлы торрентов уж вручную раскидывать по этим папкам. Либо же подключить модуль отслеживания папок MD. При обнаружении в папке загрузки браузера изменений запустить скрипт/метод: если добавленный файл "*.torrent" - задать вопрос про содержание. И в зависимости от ответа - копировать в конечную папку сериалов/музыки/фильмов....
При желании - поставить таймер на пару минут для удаления файла (после того как торент подхватит их).
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
sregeipt
Сообщения: 117
Зарегистрирован: Сб апр 26, 2014 5:06 pm
Откуда: Новосибирск
Благодарил (а): 21 раз
Поблагодарили: 11 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение sregeipt » Ср сен 23, 2015 3:28 pm

Друзья столкнулся с такой проблемой ubuntu server перестал работать uTorrent при добавлении файла пишет ошибки)

Код: Выделить всё

[18:26:57] JS error: [1] Uncaught SyntaxError: Unexpected identifier
[18:26:56] Request failure #4 (will retry in 16 seconds): action=setsetting&s=dir_active_download&v=mnt%2Fdisk1%2Ftorrent%2F
[18:26:48] Request failure #3 (will retry in 8 seconds): action=setsetting&s=dir_active_download&v=mnt%2Fdisk1%2Ftorrent%2F
[18:26:44] Request failure #2 (will retry in 4 seconds): action=setsetting&s=dir_active_download&v=mnt%2Fdisk1%2Ftorrent%2F
[18:26:42] Request failure #1 (will retry in 2 seconds): action=setsetting&s=dir_active_download&v=mnt%2Fdisk1%2Ftorrent%2F
[18:26:19] JS error: [807] Uncaught TypeError: Cannot read property '262' of null[/code

помогите пожалуйста?
Вложения
Снимокz.PNG
Снимокz.PNG (54.55 КБ) 12653 просмотра
  • Ubuntu Server .Esp8266)
I_I_Imonder
Сообщения: 256
Зарегистрирован: Сб янв 11, 2014 2:54 pm
Благодарил (а): 12 раз
Поблагодарили: 14 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение I_I_Imonder » Сб ноя 19, 2016 10:23 pm

nick7zmail писал(а):Господа форумчане, пожалуйста помогите.
Есть хороший торрент клиент под винду - qbittorrent.
У него имеется web-морда, и api. И даже разжеванные api.
Но т.к. человек я особо не сведущий в плане работы системы - прошу помощи.
1) Как выполнять команды - мне понятно, а вот как вытащить данные обратно в систему - вот это уже тяжелее.
2) Торрент постоянно требует логина. В api есть раздел касающийся логина, но куда его впихнуть - не понимаю (собственно осознание этого решения, наверное поможет решить и 1й вопрос).

Код: Выделить всё

$ curl -i --data "username=admin&password=admin" http://localhost:8080/login
HTTP/1.1 200 OK
Content-Encoding: 
Content-Length: 3
Content-Type: text/plain; charset=UTF-8
Set-Cookie: SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ; path=/
$ curl http://localhost:8080/query/torrents --cookie "SID=hBc7TxF76ERhvIw0jQQ4LZ7Z1jQUV0tQ"    
Получилось победить?
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Автоматическое скачивание торрентов. Инструкция.

Сообщение nick7zmail » Сб ноя 19, 2016 10:53 pm

I_I_Imonder писал(а): Получилось победить?
К сожалению нет. Все так же ввожу логин пароль при входе. Уже привык.
За это сообщение автора nick7zmail поблагодарил:
SolarW (Вс ноя 20, 2016 10:11 am)
Рейтинг: 1.16%
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить