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

Технические обсуждения

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

Сообщение michael » 11 окт 2009 20:15

Написал пару прог для конвертации торрент-файлов в человекочитаемый вид и обратно. Например, торрент отсюда выглядит так
Код: Выделить всё
(
 "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 КБ) Скачиваний: 1480
michael
Full Member
Full Member
 
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09

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

Сообщение hatred » 12 окт 2009 11:19

На вики в проектах разместить сможешь?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

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

Сообщение michael » 12 окт 2009 17:17

В статьи или проекты?
michael
Full Member
Full Member
 
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09

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

Сообщение hatred » 12 окт 2009 17:37

michael писал(а):В статьи или проекты?


я думаю, что в проекты, даже если супер обновлений не планируется
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

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

Сообщение michael » 12 окт 2009 20:16

Сделал
michael
Full Member
Full Member
 
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09

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

Сообщение hatred » 12 окт 2009 22:20

Мало мало понял как оно работает в безтрекерном варианте, точнее есть предположение: статический ип?
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

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

Сообщение michael » 12 окт 2009 22:50

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

Вся эта кухня работает независимо от того, статический адрес, динамический или вообще ты за натом сидишь (в последнем случае работает похуже). Время поиска пиров для безтрекерного торрента, по моим наблюдениям, порядка 10-30 минут, после чего начинается нормальное скачивание.
michael
Full Member
Full Member
 
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09

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

Сообщение hex » 14 окт 2009 18:25

Слушай, сделай чтоб в xml конвертировал. Этот формат для того и изобретали, чтоб всякую хрень со сложной непредсказуемой структурой по полочкам раскладывать и редактировать. Это так, просто предложение :)
Аватара пользователя
hex
Full Member
Full Member
 
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17

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

Сообщение michael » 14 окт 2009 19:25

Нафига? Я же для чтения людьми это делал. Другое дело, было бы неплохо иметь вывод, подходящий для скриптовой обработки, но XML для этого подходит ещё хуже, чем то, что есть сейчас.
michael
Full Member
Full Member
 
Сообщения: 192
Зарегистрирован: 18 сен 2006 08:09

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

Сообщение hex » 15 окт 2009 05:56

Ну не знаю. Мной xml более-менее читаем. И написать скрипт, который поменяет какой-нибудь параметр в паре сотен файлов - дело 10 минут. Технология, мать её )
Аватара пользователя
hex
Full Member
Full Member
 
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17

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

Сообщение hatred » 15 окт 2009 10:09

xml зло, lisp рулит :-D, не нужно делать xml
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

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

Сообщение hex » 15 окт 2009 19:10

((хочу подчеркнуть) (что (лисп тухлятина) (JSON (the best) (и ваще))))
Аватара пользователя
hex
Full Member
Full Member
 
Сообщения: 138
Зарегистрирован: 07 июн 2006 11:17

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

Сообщение GuttaLinux » 15 окт 2009 19:44

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

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

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

Сообщение hex » 15 окт 2009 20:05

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

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

Сообщение hatred » 16 окт 2009 13:42

Харе спамить :)
Прошли времена когда на элементарные вопросы можно было отвечать man <что-то там> (с) из сети
Hatred's Log Place | My GitHub repos | My Gitlab repos
Аватара пользователя
hatred
Global Moderator
Global Moderator
 
Сообщения: 1204
Зарегистрирован: 08 июн 2006 00:32
Откуда: Владивосток

След.

Вернуться в Linux tech talks

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron