Re-Tracker source |
Здравствуйте, гость ( Вход | Регистрация )
Re-Tracker source |
7.3.2009, 11:37
Сообщение
#1
|
|
Активный участник Группа: Пользователи Сообщений: 148 Регистрация: 15.12.2008 Из: Псков Пользователь №: 14 |
В общем, представляю первый открытый релиз нашего анонсера.
Включает в себя сам анонсер и список торрентов (стата как здесь). Поддерживается ipv6 ( совково) В принципе, на него можно много чего навесить... Есть 4 способа кеширования (файлы, APC, memcache, sqlite). Установка: 1. скопировать все файлы на сервер. 2. создать БД, залить базу из table.sql 3. настроить config.php (данные для доступа к базе,...) Если используете файловый кеш, поставьте chmod 0777 на папку cache_tr
Прикрепленные файлы
|
|
|
23.9.2009, 8:21
Сообщение
#2
|
|
Активный участник Группа: Главные Админы Сообщений: 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, 22:11
Сообщение
#3
|
|
Новичок Группа: Пользователи Сообщений: 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. Продолжайте комментировать код, это полезно Полезно кому? На начальном этапе я думал предложить свою помощь. Однако теперь мне это не интересно. Простите, но я не могу себе позволить работать с людьми, которые могут себе позволить голосновно утверждать что либо. |
|
|
Текстовая версия | Сейчас: 25.5.2024, 21:24 |