PDA

Просмотр полной версии : Интересная задачка с торрентами


Softer
23.11.2011, 02:12
Есть структура файлов:
1/1.torrent
2/2.torrent
3/3.torrent
4/4.torrent
5/5.torrent
6/6.torrent

Задача - скачать все торренты в директорию торрент-файла.
Например:
пусть 1.torrent дает скачать файл film.avi, а 2.torrent - other_film.avi, нужно скачать film.avi в 1 к файлу 1.torrent, а other_film.avi соотв. в 2.

Имеется - debian без Х-ов (вариант поставь Х-ы не рассматривается, вариант скачать локально и закинуть на сервак - тоже, объемы нефиговые).

Сейчас качаю последовательно в 6 списков с помощью aria2c, но если некий файл не качается - она ждет пока он скачается... Да и канал не рационально юзается.

Кто подскажет как решить? Рассматриваются любые консольные варианты: rtorrent, deluge, transmittion (вроде клиент-серверный).

ЗЫ: Ессно нужна возможность минимального мониторинга :)
ЗЗЫ: Вручную не хотелось бы, торрентов несколько сотен :)

Lion-Simba
23.11.2011, 15:36
apt-get install rtorrent
cd /path/to/torrents
nohup rtorrent *.torrent & = стартанет все торенты

средство мониторинга и управления тут:

http://code.google.com/p/rutorrent/

через .htpasswd защитишь скрипт от неавторизированого доступа и все будет чики-пуки

зы еще можешь посмотреть в сторону Utorrent Server под Linux (http://www.utorrent.com/intl/ru/downloads/linux) - тоже еще та вещь)

Softer
23.11.2011, 16:16
Нет, ты не понял. Поставить rtorrent мне не проблема, у меня:
а) субдиректории, торренты не свалены в 1 папку
б) Надо чтобы оно так и скачалось,по папкам

ЗЫ: насчет линка - спс, гляну

Lion-Simba
23.11.2011, 19:45
тут без кодинга не обойтись
я не видел таких готовых реализаций

Softer
23.11.2011, 20:12
Вот и я не видел... :(

Softer
24.11.2011, 01:47
Промежуточный результат себе на заметку:
echo "add -p /path/to/complete/torrent/ /path/to/torrent/1.torrent" | deluge-console

Осталось придумать как передать ему команду выхода сразу после добавления, а то после остается висеть на экране...

Softer
24.11.2011, 03:38
Решил проблемы с выходом допиливанием делюги :)
Правда есть мысль что:

а) наткнулся на баг, по идее можно сделать
deluge-console add -p /path/to/complete/torrent/ /path/to/torrent/1.torrent;quit
судя по исходникам делюг должен прекрасно это понять, но к сожалению он не понимает параметр -p в таком варианте
б) изобрел велосипед, наверняка есть другое решение.


Кому интересно:
/usr/share/pyshared/deluge/ui/console/commands/add.py
соотв кусок в привел к нижеуказанному виду добавив еще 1 параметр -q, если ему задать любое значение - deluge-consolu выйдет после добавления торрента.

Кусок:

from twisted.internet import reactor

class Command(BaseCommand):
"""Add a torrent"""
option_list = BaseCommand.option_list + (
make_option('-p', '--path', dest='path',
help='save path for torrent'),
make_option('-q', '--quit', dest='quit',
help='quit after adding torrent'),
)

usage = "Usage: add [-q <quit>] [-p <save-location>] <torrent-file/infohash/url> [<torrent-file/infohash/url> ...]"

def handle(self, *args, **options):
self.console = component.get("ConsoleUI")

t_options = {}
if options["path"]:
t_options["download_location"] = os.path.expanduser(options["path"])

def on_success(result):
self.console.write("{!success!}Torrent added!")
if options["quit"]:
self.console.write("{!success!}Exting...")
if client.connected():
def on_disconnect(result):
reactor.stop()
return client.disconnect().addCallback(on_disconnect)
else:
reactor.stop()

def on_fail(result):
self.console.write("{!error!}Torrent was not added! %s" % result)



На последок классика от меня: А ХРЕН ТАКОЕ С ВИНДОВО-ЗАКРЫТЫМ СОФТОМ СДЕЛАЕТЕ! ;)

Lion-Simba
24.11.2011, 15:46
то что венда это не операционка, а прошивка для игр и домохозяек уже все прекрасно все знают и в курсе. она даже в расширеный роутинг двух (и более) интернет каналов и локалок не умеет (даже в серверном варианте и даже со сторонним ПО!). А также это среда распространения вирусов (впрочем при прямых руках скажем у меня их не наблюдается и не будет). и просто продукт от одной коммерческой (но никак не софтверной корпорации Microsoft). Последняя свинья в том что 8 венда - это будет тупо оптимизированая семерочка. ты удовлетворен?

а теперь объективно - вот смотри сам, разве перед домашним пользователем стоят задачи такого уровня как сейчас перед тобой? По статистике часть домашних юзеров даже и не знает что такое торрент (те кому за 40 лет уже). А остальные качают то что им надо и добавляют руками по одиночке или сразу кучу торент файлов.

так что давай будем объективны. линукс крут, но там где ему место. я его сам юзаю. просто, понятно и без дополнительного секаса. Предпочитаю как можно простые и легконастраиваемые серверные дистрибутивы - убунту сервер и дебьян. По стабильности и быстродействию они не хуже той же генты, железо у меня везде хорошее

а код = жесть!
зы я фанатизмом по альтернативным осям переболел. ибо нефиг.
зыы2 - есть же порты бесплатного софта на венду? тот же делюга... правь, пересобирай и делай что хочешь!

Softer
24.11.2011, 16:13
ты удовлетворен?
Тебе меня не удовлетворить )))
и без фанатизма. все.
Согласен, сам на Минте и Дебиане. Хотя и не против в генте порыться, но работа важнее. Когда есть время - у меня есть ноут с Гентой :)
а код = жесть!
Согласен, я не питонойд :)
зы я фанатизмом по альтернативным осям переболел. ибо нефиг.
А я вендолюбием давно переболел ;)
линукс крут, но там где ему место.
Он уже подходит для решения большинства задач.
Но, ИМХО, есть проблемы 2 - нет унифицированности, т.е. дистры в некоторой мере разные (хотя это и плюс некоторой мере) и не все компании еще выпускают свои продукты под Линь (привет адобу, автодеску и игростроителям, хоть и не всем (привет ID! ;) )). Я вот жду когда начнут делать Линь-варианты фотожопы и иже с ней (хотя cs5 отлично работает на вайне). Тогда уж точно вендекапец наступит :)

Sergey_D
24.11.2011, 16:18
uTorrent.exe /directory "SAVE PATH" "PATH TO TORRENT\FILE.torrent"

При идентичности "SAVE PATH" и "PATH TO TORRENT" - скачает туда же, где и находится торрент-файл.

ЗЫ: Парсер для обхода директорий с торрент-файлами в cmd-файле писать или поверите? :)

Softer
24.11.2011, 16:20
Парсер для обхода директорий с торрент-файлами в cmd-файле писать или поверите?
Сами писали :) Спасибо за вариант, но не подходит по условиям, ибо венды на сервере быть не должно.

Sergey_D
24.11.2011, 16:41
Да не за что. Только причем здесь сервер? Я всего лишь привел пример решения задачи, которую "ХРЕН С ВИНДОВО-ЗАКРЫТЫМ СОФТОМ СДЕЛАЕТЕ" :) И в Вашем случае, естественно, это не поможет. А уж выбор операционки для сервака - совсем иная тема :)

Softer
24.11.2011, 16:44
М... неправильно меня поняли )
"ТАКОЕ" - имеется ввиду правку софта :)
Если б для моих зачал подходил ГУЙ (качал десктопом) - я б может и поставил бы уторрент на вайн, а так...

Sergey_D
24.11.2011, 18:04
А вот с этим не спорю - вещи шикарные, действительно.

А зачем Вам вайн? Не проще ли http://www.utorrent.com/intl/ru/downloads/linux ?
Вроде бы консольный порт. Или я ошибаюсь?

Softer
24.11.2011, 19:30
На момент постановки задачи я о нем не знал...

Sergey_D
24.11.2011, 21:25
Ну, будет охота и время - попробуйте :)