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

Технические обсуждения
michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

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

Сообщение 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 текстовый_файл >торрент-файл

Формат торрент-файлов описан тут.
Вложения
tor_rw.tar.gz
(1.86 КБ) 1849 скачиваний

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

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

Сообщение hatred »

На вики в проектах разместить сможешь?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

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

Сообщение michael »

В статьи или проекты?

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

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

Сообщение hatred »

michael писал(а):В статьи или проекты?
я думаю, что в проекты, даже если супер обновлений не планируется
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

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

Сообщение michael »

Сделал

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

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

Сообщение hatred »

Мало мало понял как оно работает в безтрекерном варианте, точнее есть предположение: статический ип?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

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

Сообщение michael »

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

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

Аватара пользователя
hex
Full Member
Full Member
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17
Контактная информация:

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

Сообщение hex »

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

michael
Full Member
Full Member
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09
Контактная информация:

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

Сообщение michael »

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

Аватара пользователя
hex
Full Member
Full Member
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17
Контактная информация:

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

Сообщение hex »

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

Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

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

Сообщение hatred »

xml зло, lisp рулит :-D, не нужно делать xml
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

Аватара пользователя
hex
Full Member
Full Member
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17
Контактная информация:

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

Сообщение hex »

((хочу подчеркнуть) (что (лисп тухлятина) (JSON (the best) (и ваще))))

Аватара пользователя
GuttaLinux
Full Member
Full Member
Сообщения: 177
Зарегистрирован: 04 фев 2008 00:17

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

Сообщение GuttaLinux »

> Ну не знаю. Мной xml более-менее читаем.

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


Аватара пользователя
hatred
Global Moderator
Global Moderator
Сообщения: 1205
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток
Контактная информация:

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

Сообщение hatred »

Харе спамить :)
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos

Ответить