Архив | Об архиве | FAQ | New BAN List | Полезные ссылки | Друзья архива | Архив новостей |
|
Регистрация | Справка | Правила форума | Поиск | Сообщения за день | Пользователи | Календарь |
Приёмная ArjLover-a Послания и пожелания по работе Архива |
|
Опции темы | Опции просмотра |
|
|||
1. .torrent-файлы можно начать создавать уже сейчас. но задачка эта достаточно длительная, похожая на хеширование файлов для eDonkey сети... mno приводил текст скрипта, который это может сделать уже сейчас. Единственное чтобы я добавил в него, это паузу между обработкой файлов, чтобы давать серверу хоть немного "вздохнуть". Он подойдет для первоначальной обработки всего архива, случаи же замены, удаления, добавления одиночных файлов в дальнейшем нужно будет обрабатывать отдельно...
Единственное что нужно будет прописать в него это папка с файлами архива и папка в которую скрипт будет складывать готовые .torrent-файлы. 2. Настроить mlDonkey для сидирования всех этих файлов, для этого, как минимум, нужно будет указать ему где брать .torrent-файлы. 3. Добавить .torrent-файлы на трекер... Вот это задачка, которую, как я понимаю, пока не решили ни как... Есть варианты, на вскидку: ---3.1 Переделать страницу загрузки трекера (она на php и здесь я ничего не могу сказать как) ---3.2 Добавлять торренты в базу трекера "в обход" интерфейса, напрямую при помощи скрипта. Для этого нужно подключаться к базе скуля. Тут опять же есть варианты: ------3.2.1 Подключаться к базе трекера по сети с архивных машин, как я понимаю для этого нужно установить, как минимум, клиентские части от скуля на каждый архив, что по моему не сильно хорошо. ------3.2.2 Передать .torrent-файлы с архивов на трекер и уже на трекере запускать скрипт добавления торрентов в базу трекера. Здесть опять же есть варианты: ---------3.2.2.1 Можно поднять на трекере ftp и архивы будут подключаться к этому ftp и передавать на него свои .torrent-файлы. ---------3.2.2.2 Можно создать на архивных машинах специальные папки и открыть по FTP для трекера, который будет с интервалом проверять эти папки на предмет появления новых файлов, забирать их к себе и добавлять в свою базу. ---------3.2.2.3 Можно так же передавать данные по http, но это по-моему более хитро... 4. Обработка info-страниц файлов в архиве для добавления на них информации по торренту для этого файла. А может помещение ссылки на торренты на главные страницы архивов, хотя они и так сильно большие уже, но это будет удобнее для пользователей... 5. Расширение механизма управления архивом для автоматического создания, изменения, удаления торрентов (сами .torrent-файлы, раздачи в mlDonkey, торренты в трекере) Вот как я понимаю ситуацию "на сейчас". Последний раз редактировалось AlekseyS, 20.02.2008 в 17:43. |
|
||||
клиентскую часть от мускуля я уже все равно везде вздул - все равно понадобится для других дел.
и это, вопрос остался прежним - скрипт где? У тебя есть рут на фильмики - вздуй там из портов все что надо, я так понимаю одну тулзу. и давай уже нагенерим, никаких пауз не надо, все равно они соразмерны по времени, да и погоды не делают. А я попробую разобраться как добавлять торент в базу... |
|
|||
Если клиентская часть скуля уже везде есть, тогда осталось только написать скрипт который загонит напрямую в базу трекера информацию о наших торрентах прямо с архивных машин и тогда .torrent-файлы уже не надо гонять по сети.
я до конца не разобрался, конечно, для этого нужно все таки реально глянуть на базу, но по коду на php, котороый я не знаю, я понял что нам нужно будет заполнить 2 таблицы: 1. "torrents" INSERT INTO `torrents` (`info_hash`, `name`, `metadata`) где: info_hash = sha1 хэш торрента name = название .torrent-файла metadata = .torrent-файл целиком, закодированный в base64 2. "namemap" (там много полей, но как я понял, она нажна для отображения информации о торренте на страницах трекера) Скрипт для начального обторренчивания всего архива или для дальнейшей синхронизации изменений? Для синхронизации я еще не писал ничего, а для обторренчивания скрипт, по большому счету и не нужен, достаточно find |xargs. Я попробую на паре файлов в фильмиках и отпишусь... Сегодня ничего не успел - теща в гости приезжала... :-( P.S. Про рут для фильмиков я не совсем в курсе... Последний раз редактировалось AlekseyS, 21.02.2008 в 00:20. |
|
|||
Неожиданные сложности:
createtorrent не правильно создает .torrent-файлы... Тестировал createtorrent на FreeBSD 5.4 и собранный в ручную из исходников и установленный из портов... Созданный .torrent-файл торрент-клиенты не понимают, говорят что ошибочный .torrent-файл... :-( Может, конечно, на серверах архива все пройдет, но сомневаюсь. Ошибку в коде createtorrent вроде нашел, исправил, нужно протестировать заплатку... |
|
|||
Да самому странно... Хотя под линуксом она, по данным mno, работает отлично. А вот у меня на "нулевой" фре не хочет...
А про мировое сообщество... В этой же тулзе есть маленькая "бажка" в обработчике коммандной строки, так вот я ее заметил с первого взгляда, а в программе она практически с первых версий и никто не исправил до сих пор... :-) |
|
|||
Я ее уговорил все таки...
В итоге: +1. createtorrent последней версии работает на FreeBSD. +2. Есть скрипт для создания одиночного .torrent-файла. ./create.sh /ARCHIVE/FILES/filmik1.avi где create.sh файл со скриптом, и файл для обработки с полным путем, чтобы можно было обрабатывать файлы лежащие в разных местах, если нужно. ?3. Можно запустить начальную обработку просто коммандой типа find |xargs или же я завтра напишу скрипт-диспетчер для первого скрипта, который сделает всю работу и в дальнейшем может использоваться при добавлении файлов в архивы. Хотя, правильнее будет при добавлении нового файла вызывать первый скрипт и сразу готовить .torrent-файл для него. ?4. Как будем запускать это все? ?5. Трекер почему-то до сих пор лежит... Уже несколько дней ошибка... Первый скрипт: #!/bin/sh anURL=http://tp3.rtcomm.ru anPath=/tracker/tracker.php/announce anPort=80 pieceLen=1048576 torrentsDir=./Torrents/ if [ $# -eq 0 ] then echo -e "Usage: ./create.sh <input file>\n" return 0 fi srcFile=`basename ${1}` comText=http://filmiki.arjlover.net/info/${srcFile}.html tFile=${torrentsDir}${srcFile}.torrent createtorrent -a $anURL -P $anPath -p $anPort -l $pieceLen -c "$comText" ${1} $tFile |
|
|||
Скрипты:
Скрипты для запуска createtorrent.
В них нужно прописать/настроить папки для работы, маски файлов, строки комментариев для каждого архива (multiki, filmiki и т.д.) и можно запускать. Только, конечно же, нужно установить пропатченную версию createtorrent. Файлы прикладываю (расширение .txt сделал чтобы загрузить файлы на форум): 1. createTF - создает .torrent-файлы запуская createtorrent с нужными параметрами для каждого файла, указанного в его коммандной строке. Пример: createTF /FILMS/Film1.avi /NEW_FILMS/Film3.avi 2. checkTF - создает и выводит на консоль список файлов архива для которых нет соответствующего .torrent-файла, запускается без параметров. Соединяем их вместе: checkTF |xargs createTF через много часов получаем кучу .torrent-файлов. |
|
||||
Алексей, попробуй поставить на фильмиках это чудо патченное и сделать один торент, потом вместе с mno попробуйте его скормить вручную трекеру - если он его опознает как валидный - будем дальше пилить, чтобы напрямую в базу его запихивать. Отследить что вставляет в базу админка - совсем несложно. База простенькая совсем.
Кстати а этот хэш - это опять какой-то стандартный md4/5 или что-то свое? |
|
|||
да поставить не проблема, но как я на него зайду...
Хэш, в битторренте, это sha1 хэш info-секции .torrent-файла - .torrent-файл разбирается и из него выделяется определенный кусок информации, который затем прогоняют чере sha1... Так что рассчитать этот самый sha1 это еще одна задача, которую нужно решить при добавлении торрента вручную на трекер. |
|
||||
Для того, что-бы вставить торрент в базу данных, нужно сделать следующие:
1. Записать его в таблицу torrents. 2. Сгенерировать две таблици x<HASH> и y<HASH> 3. Записать инфо про торрент в namemap Для этих операция, нам нужно знать его хеш. Есть еще один подход: сделать POST его через админ интерфейс используя curl. Этип путем проще сделать все записи, и он сам подсчитает хеш и так далее, создат нужные таблици и тд. Если честно, то этот подход мне больше нравится... |
|
|||
mno, я уже говорил что если кто-то сможет сделать загрузку через "родной" для трекера интерфейс - это будет очень хорошо, по-этому если вы можете это сделать - давай-те будем пробовать! Но, к сожалению, я вам здесь помочь не смогу - не знаком с этими способами...
P.S. Вы, как я помню, согласились дать мне доступ на чтение к базе трекера. Для вашего способа с cURL это уже не актуально, но мне бы все таки хотелось посмотреть на базу трекера, для общего развития, так сказать. Последний раз редактировалось AlekseyS, 23.02.2008 в 14:14. |
|
||||
AlekseyS, я вам послал логин приватм. Как я описал выше, треккер создает 2 таблички для гаждого торрента, где хранит инфо каждого спец. для каждого. Я бы это делал через одну страницу, но они решили сделать иначе.
Я думаю что через cURL ложить торренты будет проще всего. Я еще не уверен, если проще будет делать это через ПХП (вряд-ли) или на прямую через консоль (думаю так будет проще). Скрипты написать я без проблем. Когда вы сможете сгененировать один .торрент файл и положить его на сид на сервере, пришлите мне его через форум, я его вручную добавлю в треккер. Тогда, мы сможем потестировать настоящие настройки как они будут на сервере. Вы решили пользоваться какой программой? mlDoney или rTorrent? Мне rTorrent очень нравится. |
|
|||
mno, спасибо, я получил логин.
Если можете сделать через cURL, то это самое лучшее, наверное. Так что давай-те пробовать. Я рад бы сгенерировать .torrent-файлы, сколько надо, но вот проблема, которую мне не преодолеть: у меня нет доступа к серверам, я не понял почему ArjLover считает что у меня есть рут от фильмиков, у меня его не было никогда и сейчас, как я понимаю, тоже нет... По-этому я бы сделал, но доступа к серверам у меня нет и не будет. Насчет программы, как я понял, вопрос об установке rTorrent пока не возник, но и не снят, так что начнем, как мне видиться, с mlDonkey - он уже стоит на машинах и добавить в него раздачи можно буквально за 5 минут, а дальше уже нужно будет смотреть что и как пойдет. Хотя я не уверен в том что mlDonkey потянет такую нагрузку, но пока не проверим, не сможем понять... mno, интересная вещь происходит у меня: в моем uTorrent до сих пор стоит раздача "alenkin.cyplenok.avi" и трекер без проблем на нее отвечает, то-есть получается что она все еще у него в базе, об этом говорят и таблица в базе, но в списке на странице трекера его нет. Как я понимаю очистка удаленных торрентов производиться какой-то обслуживающей процедурой трекера? А так достаточно странно выглядит... Последний раз редактировалось AlekseyS, 24.02.2008 в 02:05. |
|
||||
Тогда ждем доступа к filmikam
Я с cURL по работаю, это впринципе не сложно. Я его раньше часто использовал, но не на прямую, а через PHP. По поводу того цепленка -- там такая штука вышла. Я удалил частично таблици для него через дбадмин в треккере, и треккер на нем загнулся. И хорошо загнулся. Я потом вынужден был его тчательно почистить. И таким образом он пропал, но у вас он остался. И когда вы потом след. раз подключились, вы выложили .торрент файл на треккер в очередной раз. Я еще ни разу не мог сделать так, что-бы таким образом закачать торрент файл правильно на трекер, что-то всегда не срабатывает. Просто некоторая информация наверное не вводиться правильно в БД. Но аплоад функции я уже отключил, так что больше на треккер через торрент-программы выкладывать торренты нельзя |
|
||||
Одно "но" что я заметил когда проходил по скриптах:
Вы используете только имя фильма в торренте. Если так, то сид должен будет запущен с директорнии где находятся файлы, или ему должен будет указан путь где-то, где искать файлы. Может путь нужно будет записывать полностью, со всеми директориями? Еще, думаю что стоит написать скрипт, который возьмет имя директории и для каждого файла там запустит скрипт который генерирует торренты. Думаю для начала, это будет удобно. |
|
|||
mno, если я правильно понимаю, то указывать полный путь нельзя:
При открытии .torrent-файла в программе, к примеру, uTorrent она берет путь к файлу и создает такую же структуру в папке по умолчанию или в указанной при добавлении папки - представляете что она будет делать если там будет абсолютный путь из никсов? К тому же, я честно и не уверен что это можно сделать будет в режиме создания .torrent-файла для одного файла. В таком .torrent-файле даже структура info-секции иная, расчитанная только на имя файла. Так как мы с вами, mno, ни как не можем учавствовать в процессе создания .torrent-файлов на серверах архива, я, для тестирования трекера, сделал следующее: 1. Взял 3 мультика, которые я точно качал с архива и под своей freebsd 5.4 с createtorrent 1.1.4 запустил создание .torrent-файлов при помощи моих скриптов. Единственное что я поменял в скриптах - размер "куска" на, использованный вами ранее, 512К - файлы больно маленькие, хотя здесь все таки нужно будет еще подумать... 2. Добавил созданные .torrent-файлы в 2 своих клиента: --- uTorrent 1.6 --- mlDonkey 2.9.3 и начал сидировать. Все 3 .torrent-файла нормально загрузились в оба клиента и оба клиента встали на сидирование. uTorrent с открытым портом для входящих подключений и с DHT, mlDonkey с закрытым портом. Я прикладываю все 3 .torrent-файла чтобы вы могли добавить их на трекер вручную и проверить как он их загрузит. Если все пройдет успешно, то можно считать что тестирование окончено, так как вся работы проводилась в максимально приближенном к реальности окружении. Так же можно выложить эти раздачи в ветку с первое тестовой раздачей, для проверки на большЕй нагрузке. Конечно же, пока загрузка будет идти только с моей машины, но запустить раздачу с архива можно будет просто положив эти 3 файла в папку mlDonkey/torrents/seeded После этого нужно будет или дать в консоли/GUI комманду reshare_torrents или же подождать немного и mlDonkey сам их увидит и начнет сидировать. Последний раз редактировалось AlekseyS, 24.02.2008 в 16:21. |
|
||||
уф, как в осле все просто - хэш вот и все документы.
что есть торрент-файл? Какие принципиально важные данные в нем содержится, вот я сделал парочку и смотрю в них... я правильно понимаю что даже если мне друг принесет на дискетке этот файл то моему юторенту больше ничего и не надо? в торент-файле содержится много? хэша, адрес трекера и его урл. какие-то еще комменты наверно, но принципиально важны первые три вещи? И все начинается с торент-файла неважно где я его возьму? Дальше мой юторент бежит по урлу и трекер ему говорит по каким айпям я могу найти нужный мне файл? |