Re-Tracker source |
Здравствуйте, гость ( Вход | Регистрация )
Re-Tracker source |
22.9.2009, 15:50
Сообщение
#101
|
|
Новичок Группа: Пользователи Сообщений: 8 Регистрация: 21.9.2009 Пользователь №: 2 703 |
Ревизия последняя из транка. Вытянул svn'ом. Т.е. 72ая. Собственно я не обновлялся, я впервые его запускаю. Может подскажете, какая ревизия однозначно работающая?
|
|
|
22.9.2009, 19:37
Сообщение
#102
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Ну вообще последняя всегда рабочая
-------------------- |
|
|
22.9.2009, 20:18
Сообщение
#103
|
|
Новичок Группа: Пользователи Сообщений: 8 Регистрация: 21.9.2009 Пользователь №: 2 703 |
Сказка. Тогда расскажу, что я сделал.
Апач + PHP + MySQL свежеустановленные, взяты с официальных сайтов. В MySQL создал DB, выполнил скрипт по созданию таблиц. Апачу сконфигурил виртуальный хост. В конфиге ретрекера прописал доступ к DB. (это точно работает, проверил ) В тестовом торренте прописал адрес тестового ретрекера (больше трекеров там нет) в виде http://retracker.local/announce Что имею. При обращении к ретрекеру, клиент (utorrent) ругается. Эмуляция этого же запроса под дебаггером показывает, что $size не определена, и вылетает по ошибке mysql. Если добавить код типа if (!$size) $size = 0; то дальше вываливается из за неопределенного $city. Полез выяснять что должно быть в $city, из таблиц берется. Но где оно загоняется в таблицы, так и не понял. При запуске trackerslist.php на выходе всегда пусто. Может быть у Вас оно работает, потому, что та же база трекеров уже заполнена? Начать можно с trackerslist.php . Почему он всегда возвращает пустой список? (в предыдущем сообщении я описывал анализ кода под дебаггером) Пожалуйста, подскажите где я ошибаюсь? Может быть я просто не знаю логики работы этого ретрекера? Очень не хочется оставаться на сверх мини ретрекере от т.ру. Пожалуйста. PS Да, я могу начать править, чтобы оно однозначно заработало. Но не зная в точности логики работы, задумок автора, я могу только испортить все, и лишить себя возможности обновлений. |
|
|
23.9.2009, 2:54
Сообщение
#104
|
|
Новичок Группа: Пользователи Сообщений: 8 Регистрация: 21.9.2009 Пользователь №: 2 703 |
Ну вообще последняя всегда рабочая К моему большому сожалению, Вы в корне не правы. Кусок кода из resume.php Код <select name="city" id="city" onchange="$('#isp').load('resume.php?city='+$('#city').val());"> <option value="0">» Выберите город</option> <?=iconv('UTF-8', 'CP1251', city_select($trackers['Город'], $city));?> </select> <select name="isp" id="isp" onchange="$('#tr').load('resume.php?tr_list=1&city='+$('#city').val()+'&isp='+$('#isp').val());"> <option value="0">» Выберите провайдера</option> </select> Если ЭТО рабочая версия, в которой список провайдеров вообще не заполняется, т.к. кода вообще нет, то что же тогда называется нерабочей? И это уже после обработки топором, четырмя строками выше вообще вызывался не resume.php а torrents.php. announce.php Код $sql_data = array( 'torrent_id' => $torrent_id, 'peer_hash' => $peer_hash, 'ip' => $ipv4, 'ipv6' => $ipv6, 'port' => $port, 'seeder' => $seeder, 'update_time' => TIMENOW, 'city' => !empty($isp[0]) ? $isp[0] : null, 'isp' => !empty($isp[1]) ? $isp[1] : null ); Да, это правильно, выставлять null для неопределенных элементов, когда в таблице для этих полей сказано: Код `city` mediumint(2) NOT NULL DEFAULT '0', `isp` mediumint(2) NOT NULL DEFAULT '0', Ну и по мелочи. Если size не было в запросе, тоже падаем, т.к. база null не принимает. Лечится элементарно типа: if (!$size) $size = 0; Вы продолжаете утверждать о работоспособности этого кода? |
|
|
23.9.2009, 8:21
Сообщение
#105
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Цитата Вы продолжаете утверждать о работоспособности этого кода? Конечно Он же работает. Я ещё раз повторяю если вы это не прочитали ранее - это не ретрекер, это "статистический ретрекер", использовать его как ретрекер крайне не рекомендуестся из-за наличия ненужных для обычного ретрекера функций! Цитата Если ЭТО рабочая версия, в которой список провайдеров вообще не заполняется, т.к. кода вообще нет, то что же тогда называется нерабочей? Там так-то аяксовый запрос идёт на заполнение. HTML+JS не сбрасывайте со стчетов... Код <select name="city" id="city" onchange="$('#isp').load('resume.php?city='+$('#city').val());"> Так что заполять его заранее абсолюно бессмысленно. Цитата И это уже после обработки топором, четырмя строками выше вообще вызывался не resume.php а torrents.php. Хреновый топор у вас...ретрекер - это единое целое, а едином целом нормально когда одни кусочки программы используют другие. Если ещё не поняли - так и было задумано. Цитата Да, это правильно, выставлять null для неопределенных элементов, когда в таблице для этих полей сказано а кусочек кода: Код foreach ($sql_data as $column => $value) { $columns[] = $column; $values[] = "'" . $db->escape($value) . "'"; } вы не удалили случаем? после обработки в базу вместо null уходит '' (две одинарные кавычки, а между ними пусто). Поробуйте выполнить вот такой SQL: Код DROP TABLE IF EXISTS `test`; CREATE TABLE IF NOT EXISTS `test` ( `index` int(11) NOT NULL auto_increment, `test` int(11) NOT NULL default '0', PRIMARY KEY (`index`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `test` VALUES (NULL, ''); SELECT `test` FROM `test` ORDER BY `index` DESC LIMIT 1; чево вернёт? Это я к тому что работает. А так да, вы правы, лучше будет заранее выставить 0. Продолжайте комментировать код, это полезно -------------------- |
|
|
23.9.2009, 11:28
Сообщение
#106
|
|
Участник Группа: Пользователи Сообщений: 25 Регистрация: 17.4.2009 Пользователь №: 1 318 |
Вы продолжаете утверждать о работоспособности этого кода? этот ретрекер, ретрекер от т.ру и псевдотрекер - совершенно разные коды и таблицы. не забывайте, если пробуете поставить друг на друга. З.ы. если вы не смогли запустить этот код - поставьте ретрекер от т.ру и не мучайтесь (и вам нервы целее - и автору этого кода) -------------------- http://blog.belgorod-net.ru/announce.php - Белгород Mobilnet ReTracker
|
|
|
23.9.2009, 20:51
Сообщение
#107
|
|
Новичок Группа: Пользователи Сообщений: 8 Регистрация: 21.9.2009 Пользователь №: 2 703 |
этот ретрекер, ретрекер от т.ру и псевдотрекер - совершенно разные коды и таблицы. не забывайте, если пробуете поставить друг на друга. Да, спасибо большое, после ночи в дебаггере я разобрался. Жаль только, что это не было написано в первом сообщении. З.ы. если вы не смогли запустить этот код - поставьте ретрекер от т.ру и не мучайтесь (и вам нервы целее - и автору этого кода) Уже запустил, и уже отказался. Кода не много, ночи на разборки хватило. Кстати, я так и не понял, что мешает сделать два исправления -- не требовать наличие нестандартных параметров. Кроме того, ретрекер от т.ру (как я подозреваю и псевдотрекер), поддерживают технологию bep22, которая изумительно работает. Жаль только в utorrent не включена по умолчанию. Достаточно было добавить строку в днс, и utorrent с включенным bep22 тут же полез на ретрекер. Сказка. |
|
|
23.9.2009, 22:11
Сообщение
#108
|
|
Новичок Группа: Пользователи Сообщений: 8 Регистрация: 21.9.2009 Пользователь №: 2 703 |
Думаю это последнее мое сообщение здесь, все проблемы с ретрекерами в своих сетях мы решили. Пишу я его только с одной целью. Вдруг Вы задумаетесь.
Конечно Он же работает. Да. По стандарту, который был придуман здесь, нигде не описан, при полном игнорировании уже существующего и работающего стандарта, а тажке планируемого (bep22). Именно так убиваются хорошие идеи. Я ещё раз повторяю если вы это не прочитали ранее - это не ретрекер, это "статистический ретрекер", использовать его как ретрекер крайне не рекомендуестся из-за наличия ненужных для обычного ретрекера функций! Простите, я прочел только половину форума. Теперь, после анализа кода, я знаю что это, как оно работает, какова его идея. Там так-то аяксовый запрос идёт на заполнение. HTML+JS не сбрасывайте со стчетов... Код <select name="city" id="city" onchange="$('#isp').load('resume.php?city='+$('#city').val());"> Так что заполять его заранее абсолюно бессмысленно. Начнем с того, что там (в resume.php) написано (я же написал об этом! в том же сообщении!): Код <select name="city" id="city" onchange="$('#isp').load('torrents.php?isp_list='+$('#city').val());"> Вы видите "torrents.php" в этой строке? Как-то не логично из resume.php делать переадресацию на torrents.php после выбора провайдера. Как Вы можете утверждать, что он работает, когда в коде банальные описки есть?! Вы, лично Вы, своим комментарием "Ну вообще последняя всегда рабочая" подвигли меня на разбор кода и поиск моих ошибок. К сожалению, были найдены только ошибки автора. Ну и JS там тоже не сработал. Может Вы хоть раз попробуете сами посмотреть, что код находится в репозитарии, и прекратите голословно утверждать о работоспособности кода, который в реальности не работает? Хреновый топор у вас...ретрекер - это единое целое, а едином целом нормально когда одни кусочки программы используют другие. "Хреновый топор"... Я ничего не говорил о профессиональных способностях ни Вас, ни автора. Вы открыли мне право ответить Вам тем же. Если ещё не поняли - так и было задумано. Было задумано, чтобы ничего не работало. Ни одна из функций этого кода не заработала с первого раза. Везде пришлось либо топором либо напильником. Еще пример банальных ошибок? Пожалуйста, это не сложно, код изобилует ими. trackerslist.php. Ошибка первая. Код get_trackers(); $list = $cache->get("trackers_list"); Но функция get_trackers() возвращает результат двумя методами: Метод 1: Код return $trackers; Этот метод работает всегда, им и надо было пользоваться. Метод 2: Код $cache->set('new_trackers', $trackers, TRACKERS_CACHE_EXPIRE); А где же автор берет результат: Код $list = $cache->get("trackers_list"); Удивительно! Ни в одном из этих двух. Кстати, никто не забыл, что кэш вообще может быть отключен? Пожалуйста вот код подтверждающий это: Код $cfg['cache_type'] = 'filecache'; // Available cache types: none, APC, memcached, sqlite, filecache Тут четко написано, что none является допустимым типом кэша. trackerslist.php. Ошибка вторая. Код die($list); Это даже не смешно. $list это массив. Бессмысленно передавать его как параметр для выхода. О применении die в последней строке кода -- отдельная тема, здесь хоть какие-то аргументы можно выдумать в пользу этого метода завершения. а кусочек кода: Код foreach ($sql_data as $column => $value) { $columns[] = $column; $values[] = "'" . $db->escape($value) . "'"; } вы не удалили случаем? после обработки в базу вместо null уходит '' (две одинарные кавычки, а между ними пусто). Нет, я не удалял ничего. Конкретно эта ошика была исправлена методом добавления нужного кода. Хороший пример Вы привели. Это еще одна ошибка. Нельзя в sql использовать '' для чисел! Число нужно указывать, или ничего не указывать вообще, тогда возьмется 0 прописанный в свойствах поля таблицы. Потому если size не был определен, то вываливается с ошибкой mysql. Как и city, кстати, это ведь тоже число. Приведенный выше код работает только для строк, но не для чисел. Поробуйте выполнить вот такой SQL: .... А так да, вы правы, лучше будет заранее выставить 0. Выше я написал, где именно ошика. И я не говорил "лучше". Это необходимо. Либо не указывать тот же size в запросе, тогда возьмется 0 из свойств поля таблицы, либо if (!$size) $size = 0; . Других вариантов нет. Число не может быть задано как '' в SQL. Продолжайте комментировать код, это полезно Полезно кому? На начальном этапе я думал предложить свою помощь. Однако теперь мне это не интересно. Простите, но я не могу себе позволить работать с людьми, которые могут себе позволить голосновно утверждать что либо. |
|
|
24.9.2009, 0:21
Сообщение
#109
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
>>>>
Пишу я его только с одной целью. Вдруг Вы задумаетесь. <<<< Жаль вы не можете "прочитать" всю конечную идею данного проекта (касательно кода), кторая к сожалению пока только у меня в мыслях... >>>> Да. По стандарту, который был придуман здесь, нигде не описан <<<< Точно, меня это тоже расстраивает. Но я (также как и вы между прочим) присоединился к проекту абсолютно без всяких описаний и т.д., а просто потому что нашёл в исходниках места, которые некорректно были описаны (опять совпадение, ага?)...да вот только я не стал кричать - "Ааа, всё гавно, ничего не работает" и тому подобные вещи, а просто связялся с автором (RoadTrain тогда начинал всё) и мы тихо мирно и без криков и обвинений договорились что будем развивать проект вместе. Сложно? Нет! (вот тут и расхождение собсно). Ну ладно, пойдём дальше... >>>> Начнем с того, что там (в resume.php) написано (я же написал об этом! в том же сообщении!): Код <select name="city" id="city" onchange="$('#isp').load('torrents.php?isp_list='+$('#city').val());"> Вы видите "torrents.php" в этой строке? Как-то не логично из resume.php делать переадресацию на torrents.php после выбора провайдера. <<<< Там не переадресация, а AJAX запрос. И да, в resume.php данные берутся именно из torrents.php я просто скопировал ваше сообщение и объяснил смысл конструкции, а вы снова придрались даже не подумав, вы пробовали вызвать torrents.php? Видели что там возвращается? Посмотрите ещё раз, может всё-таки поймёте... >>>> Ну и JS там тоже не сработал. Может Вы хоть раз попробуете сами посмотреть, что код находится в репозитарии, и прекратите голословно утверждать о работоспособности кода, который в реальности не работает? <<<< Насчёт JS не знаю, возможно пора обновить jQuery...Тот код который в репозитории - установлен и на этом сайте и он работает. Но его мало кто может запустить из-за отсутствия документации. Хотите реально помочь? Я могу вам объяснить как и что работает (голосом), а вы напишете доку - как такой вариант? >>>> "Хреновый топор"... Я ничего не говорил о профессиональных способностях ни Вас, ни автора. <<<< Да я вобщем-то тоже ничего не говорил о профессиональных способностях, просто вы упомянули топор - ну и я его упомянул...Если вас это обидело - прошу прощения, без задней мысли так сказать... >>>> trackerslist.php. Ошибка первая. Код get_trackers(); $list = $cache->get("trackers_list"); <<<< О! Точно, а чего так жестко? Писал перед отпуском, торопился, видимо изначално что-то другое хотел сделать но передумал... >>>> А где же автор берет результат: Код $list = $cache->get("trackers_list"); <<<< Не, ну правильно, вы же мысли читать не умеете (это никоим образом не оскорбление, просто мысли). Я в будущем хочу удалить поддержку ini-файла совсем, пока что сделал переходный вариант. В get_trackers(); есть строчка Код $cache->set('trackers_list', $out, TRACKERS_CACHE_EXPIRE); Вот оттуда и берётся. Но это вариант только для БД, а он пока ещё не завершён и работает только на этом сайте (базы-то ниукого нету, а экспорт я ещё не сделал) >>>> Удивительно! Ни в одном из этих двух. Кстати, никто не забыл, что кэш вообще может быть отключен? Пожалуйста вот код подтверждающий это: Код $cfg['cache_type'] = 'filecache'; // Available cache types: none, APC, memcached, sqlite, filecache <<<< Не забыли, после запуска в эксплутацию было решено оставить только memcached, но это только было решено, в коде ничего не менялось, поддержа других типов кеша так и не была убрана. >>>> trackerslist.php. Ошибка вторая. Код die($list); Это даже не смешно. $list это массив. <<<< $list это текст и никак иначе (присмотритесь повнимательнее), из-за переходного состояния у всех дожно выдавать пустой файл. >>>> Нельзя в sql использовать '' для чисел <<<< А кто спорит? 100% нельзя - полностью согласен, к сожалению эту часть кода писал не я и просто изложил вам мысль как это было придумано автором, видимо зря. А ещё есть охренительные проблемы с кодировками (ну это так, на всякий случай написал), как решить - придумал, но писать пока что некогда. >>>> Полезно кому? <<<< Коду, ну и всем наверное тоже. >>>> Однако теперь мне это не интересно. <<<< И если вдруг будет интересно - пишите в аську или скайп (freemandigger), а то на форуме раз в день да через день...не продуктивно. >>>> Простите, но я не могу себе позволить работать с людьми, которые могут себе позволить голосновно утверждать что либо. <<<< Прощаю, а утверждаю я не голословно, я ещё раз повторю - это всё работает на данном сайте! А теперь разберём моё утверждение - я где-то написал что "это" будет работать у вас? Нет! Я на 99% уверен что у других это работать не будет. Но это только пока, вот на такой стадии проект находится что у других работать не будет, но я хочу чтобы работал у любого, и стараюсь идти к этой цели, может медленно, но верно. А данный сайт служит своебразной демонстрацией того как всё будет выглядеть когда будет закончено и когда будет работать у любого желающего, даже технически не особо подкованного. -------------------- |
|
|
25.9.2009, 0:07
Сообщение
#110
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Обновление: ревизия 73.
Удалены кеши, использование которых нецелесообразно (все кроме memcached). Планируется добавить Xcache, но есть сомнения хватит ли shm, возможно будет только частично. Удалена поддержка ini файла ретрекеров и полностью произведена замена на БД. Поправлены ошибки в MySQL запросах (спасибо chmv). Реализован экспорт списка ретрекеров в SQL формат для последующего обновления пользовательских баз. Для этого нужно открыть _хттп://re-tracker.ru/trackerslist.php?export и сохранить как sql файл, после чего импортировать его в вашу БД. Пока что в ручном режиме, позже будет сделано автообновление. -------------------- |
|
|
27.9.2009, 18:37
Сообщение
#111
|
|
Новичок Группа: Пользователи Сообщений: 1 Регистрация: 27.9.2009 Пользователь №: 2 793 |
Поставил ревизию 73, работает без memcached, смысла пока нет, нагрузка смешная.
Патчер в сети не используем, договариваемся с трекерами об автоматическом прописывании ретрекера. Сорри если вопрос дебильный, но при таком раскладе возможно ли заставить его выводить названия раздач с торрентсру в статистике? Крон из примера в теме запускать пробовал, безрезультатно - в БД ничего не добавилось нового. Допиваю третью бутылку пива, ситуация не прояснилась |
|
|
27.9.2009, 18:41
Сообщение
#112
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Поставил ревизию 73 Есть 74-я - там исправлен небольшой косяк в экспорте списка ретрекеров, но если вы не пользуетесь экспортом то можно и не обновлять... работает без memcached, смысла пока нет, нагрузка смешная. Если пиров мало то можно и без кеша, но при увеличении пиров без кеша не выжить... Сорри если вопрос дебильный, но при таком раскладе возможно ли заставить его выводить названия раздач с торрентсру в статистике? К сожалению - нет. Для того чтобы "вытащить" название нужно чтобы был передан комментарий к раздаче (там обычно ссылка на тему), а он получается только через патчер... -------------------- |
|
|
24.10.2009, 12:22
Сообщение
#113
|
|
Новичок Группа: Пользователи Сообщений: 3 Регистрация: 24.10.2009 Пользователь №: 3 103 |
http://www.whitsoftdev.com/opentracker
Это может претендовать на Re-Tracker ? Пробовал установить работает ) |
|
|
24.10.2009, 13:00
Сообщение
#114
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Может, у некоторых он и установлен.
-------------------- |
|
|
31.10.2009, 21:30
Сообщение
#115
|
|
Новичок Группа: Пользователи Сообщений: 2 Регистрация: 31.10.2009 Пользователь №: 3 175 |
Error: Memcached extension not installed
как убрать этот Memcached ? |
|
|
31.10.2009, 23:45
Сообщение
#116
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Его вообще-то не убрать, а установить нужно...
Но если хочется без него то в конфиге измените параметр: Код // Cache $cfg['cache_type'] = 'none'; // Available cache types: none, memcached Желательно создать файл config.local.php и в нем переопределять переменные из секции $cfg. -------------------- |
|
|
1.11.2009, 1:22
Сообщение
#117
|
|
Активный участник Группа: Пользователи Сообщений: 37 Регистрация: 18.1.2009 Пользователь №: 281 |
Видимо, я не достаточно ознакомился с данной темой и настрочил флуда...
FreeM@N, спасибо за ссылку. ПС. То, что у меня получилось - gpk . org . ua / qbt / look . php |
|
|
1.11.2009, 13:30
Сообщение
#118
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
это к чему? у нас и так в статистике показывается имя и ссылка откуда можно скачать? а также сколько сейчас пользователей учавствуют в обмене...Также если имя определить невозможно но предлагается ссылочки на гугл и isohunt для поиска по хешу...
А насиловать мускул такими запросами...он и поломаться может. П.С.: Вы статистику-то смотрели, нет? вот ссылочка: http://re-tracker.ru/torrents.php -------------------- |
|
|
8.11.2009, 16:51
Сообщение
#119
|
|
Новичок Группа: Пользователи Сообщений: 3 Регистрация: 6.11.2009 Пользователь №: 3 253 |
Вопрос: это просто статистика или рабочий ретрекер??
|
|
|
8.11.2009, 16:58
Сообщение
#120
|
|
Активный участник Группа: Главные Админы Сообщений: 661 Регистрация: 15.12.2008 Из: Москва Пользователь №: 15 |
Только статистика, как ретрекер его использовать крайне не рекомендуется.
-------------------- |
|
|
Текстовая версия | Сейчас: 27.9.2024, 10:47 |