Страница 1 из 2

Чтение и запись торрент-файлов

Добавлено: 11 окт 2009 20:15
michael
Написал пару прог для конвертации торрент-файлов в человекочитаемый вид и обратно. Например, торрент отсюда выглядит так

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

(
 "announce" = "http://tracker.thepiratebay.org/announce"
 "announce-list" = [
  [
   "http://tracker.thepiratebay.org/announce"
  ]
  [
   "udp://tracker.thepiratebay.org:80/announce"
  ]
  [
   "http://tracker.openbittorrent.com/announce"
  ]
  [
   "udp://tracker.openbittorrent.com:80/announce"
  ]
 ]
 "creation date" = 1244713348
 "info" = (
  "files" = [
   (
    "length" = 32
    "path" = [
     "read.txt"
    ]
   )
   (
    "length" = 732909568
    "path" = [
     "ubuntu-9.04-desktop-i386.iso"
    ]
   )
  ]
  "name" = "Ubuntu"
  "piece length" = 524288
  "pieces" = <хэши поскипаны>
 )
)
Зачем оно надо? Затем, что ничего вменяемого для редактирования торрент-файлов я не нашёл.
1) Можно менять названия файлов в торренте. Мало ли какие проблемы с кодировками.
2) Можно менять трекеры.
3) Можно убрать флаг private (сомнительная польза, впрочем).
4) Можно сделать торрент вообще безтрекерным с поиском пиров только по dht.
Безтрекерный вариант приведённого выше торрента

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

(
 "info" = (
  "files" = [
   (
    "length" = 32
    "path" = [
     "read.txt"
    ]
   )
   (
    "length" = 732909568
    "path" = [
     "ubuntu-9.04-desktop-i386.iso"
    ]
   )
  ]
  "name" = "Ubuntu"
  "piece length" = 524288
  "pieces" = <хэш поскипан>
 )
 nodes = [ [ "127.0.0.1" 6881 ] ]
)
В архиве две программы: torread и torwrite.
Запуск:
torread торрент-файл >текстовый_файл
torwrite текстовый_файл >торрент-файл

Формат торрент-файлов описан тут.

Re: Чтение и запись торрент-файлов

Добавлено: 12 окт 2009 11:19
hatred
На вики в проектах разместить сможешь?

Re: Чтение и запись торрент-файлов

Добавлено: 12 окт 2009 17:17
michael
В статьи или проекты?

Re: Чтение и запись торрент-файлов

Добавлено: 12 окт 2009 17:37
hatred
michael писал(а):В статьи или проекты?
я думаю, что в проекты, даже если супер обновлений не планируется

Re: Чтение и запись торрент-файлов

Добавлено: 12 окт 2009 20:16
michael
Сделал

Re: Чтение и запись торрент-файлов

Добавлено: 12 окт 2009 22:20
hatred
Мало мало понял как оно работает в безтрекерном варианте, точнее есть предположение: статический ип?

Re: Чтение и запись торрент-файлов

Добавлено: 12 окт 2009 22:50
michael
Через DHT. Поиск пиров ведётся среди всех существующих пиров (поддерживающих DHT). У каждого клиента есть 20-байтный идентификатор. Я не знаю, каким образом он получается, вероятно, генерится случайным образом. Пиры, чей идентификатор максимально близок к infohash раздачи играют роль трекера для этой раздачи, то есть хранят инфу об пирах этой раздачи. Ну а поиск "знающих пиров" ведётся методом последовательного приближения через известные пиры. Красивая и изящная система. В Википедии оно всё расписано.

Вся эта кухня работает независимо от того, статический адрес, динамический или вообще ты за натом сидишь (в последнем случае работает похуже). Время поиска пиров для безтрекерного торрента, по моим наблюдениям, порядка 10-30 минут, после чего начинается нормальное скачивание.

Re: Чтение и запись торрент-файлов

Добавлено: 14 окт 2009 18:25
hex
Слушай, сделай чтоб в xml конвертировал. Этот формат для того и изобретали, чтоб всякую хрень со сложной непредсказуемой структурой по полочкам раскладывать и редактировать. Это так, просто предложение :)

Re: Чтение и запись торрент-файлов

Добавлено: 14 окт 2009 19:25
michael
Нафига? Я же для чтения людьми это делал. Другое дело, было бы неплохо иметь вывод, подходящий для скриптовой обработки, но XML для этого подходит ещё хуже, чем то, что есть сейчас.

Re: Чтение и запись торрент-файлов

Добавлено: 15 окт 2009 05:56
hex
Ну не знаю. Мной xml более-менее читаем. И написать скрипт, который поменяет какой-нибудь параметр в паре сотен файлов - дело 10 минут. Технология, мать её )

Re: Чтение и запись торрент-файлов

Добавлено: 15 окт 2009 10:09
hatred
xml зло, lisp рулит :-D, не нужно делать xml

Re: Чтение и запись торрент-файлов

Добавлено: 15 окт 2009 19:10
hex
((хочу подчеркнуть) (что (лисп тухлятина) (JSON (the best) (и ваще))))

Re: Чтение и запись торрент-файлов

Добавлено: 15 окт 2009 19:44
GuttaLinux
> Ну не знаю. Мной xml более-менее читаем.

так вот ты какой, Слава Робот

Re: Чтение и запись торрент-файлов

Добавлено: 15 окт 2009 20:05
hex

Re: Чтение и запись торрент-файлов

Добавлено: 16 окт 2009 13:42
hatred
Харе спамить :)