8 мар


Автор: MSW
Сайт поддержки: http://www.visigod.com/xbt-tracker/
В конце статьи вы сможете скачать инсталяционный файл, который установит новые таблицы и внесёт необходимые изменения в существующие.

Конфигурация

xbt_tracker.conf

При каждом запуске считываются настройки с этого файла.
mysql_host = localhost
mysql_user = xbt_tracker
mysql_password = xbt_tracker
mysql_database = xbt_tracker
mysql_table_prefix = xbt_

mysql_host - Хост базы данных.
mysql_user - Пользователь с правами на чтение/запись в базу данных.
mysql_password - Пароль для пользователя базы данных
mysql_database - Название базы данных, Так как мы совмещаем трекер с ДЛЕ то указываем имя базы данных от ДЛЕ.
mysql_table_prefix - Префикс таблиц базы данных XBT. Указываем xbt_, для того что бы в дальнейшем не путаться в базах сайта и трекера.

xbt_config (БД)

ИмяЗначениеОписание
auto_register0 (отключен)Если включить, то это позволит автоматически регистрировать торренты на трекере.
anonymous_connect0 (отключен)Отключаем, для того чтоб доступ к трекеру имели только зарегистрированные пользователи.
anonymous_announce0 (отключен)Отключаем, для того чтоб запретить не зарегистрированным пользователям анонсировать
anonymous_scrape0 (отключен)Немного не понятно, но также отключаем.
daemon1 (включен)Включаем, что бы сервер работал как демон (на заднем плане).
debug0 (отключен)Если включить то трекер будет работать в режиме отладки, сообщения отладки будут доступны по адресу: http://tracker:port/debug
full_scrapeДополнительный протокол запроса клиента к трекеру, при котором трекер сообщает клиенту общее количество сидов и пиров на раздаче.
gzip_debug1 (включен)Если включить то страницы отладки будут сжиматься(GZIP) перед отдачей
gzip_scrape1 (выключен)Если включена, то сервер будет GZIP (сжатие) скрип страницу.
log_access0 (выключен)Если включена, то сервер создаст файл со всеми доступами к серверу. Файл будет называться (xbt_tracker_raw.log)
log_announce0 (выключен)Если включена, то сервер будет регистрировать все объявления в таблице xbt_announce_log.
log_scrapeЕсли включена, то сервер будет регистрировать все в таблице xbt_scrape_log.
announce_interval1800объявить по умолчанию интервал (в секундах), что будет внутри торрент-файл.
clean_up_interval60Интервал для очистки торентов, которые были помечен для удаления.
read_config_interval60Интервал времени, через которое XBT будет перечитывать настройки конфигурации с файла.
read_db_interval60Интервал времени, через которое XBT будет перечитывать настройки конфигурации с БД
scrape_interval0Также на данный момент непонятно
write_db_interval15Интервал времени, чеез которое XBT будет обновлять свою БД
column_files_completedcompletedНазвание поля "completed" из таблицы xbt_files_users в таблице *_files.
column_files_fididНазвание поля 'id файла' из таблицы xbt_files_users в таблице *_files.
column_files_leechersleechersНазвание поля 'leechers' из таблицы xbt_files_users в таблице *_files.
column_files_seedersseedersНазвание поля 'seeders' из таблицы xbt_files_users в таблице *_files.
column_users_uiduser_idНазвание поля 'id пользователя' из таблицы xbt_files_users в таблице *_users и *_files
offline_messageЗначение по умолчанию: пусто. Если указать сообщение трекер будет выключен.
pid_file/var/run/xbt.pidФайл, в котором Tracker будет хранить его PID (идентификатор процесса).
query_logФайл, в котором XBT будет регистрировать все запросы.
redirect_urlАдрес куда будет перенаправлен клиент, если он пытается получить доступ к URL раздачи через обычный браузер.
table_announce_logxbt_announce_logзначение по умолчанию для таблицы announce_log
table_deny_from_hostsxbt_deny_from_hostsЗначение по умолчанию для таблицы deny_from_hosts.
table_filesdle_filesЗначение по умолчанию для таблицы файлов.
table_files_usersxbt_files_usersЗначение по умолчанию для таблицы files_users.
table_scrape_logxbt_scrape_logзначение по умолчанию для scrape_log таблице.
table_usersdle_usersЗначение по умолчанию для таблицы пользователей.
torrent_pass_private_key27 случайных символов, ключ трекера, генерируется автоматически при певом запуске.
listen_ipaIP адреса для XBT Tracker. Значение: Пусто. Он будет работать на всех доступных IP.
listen_port2710порт, в котором XBT Tracker будет работать.


MySQL Таблицы
Нам необходимо создать следующие таблицы:
# xbt_config
# xbt_deny_from_hosts
# xbt_files_users

А также внести изменения в существующие:
# dle_files
# dle_users

Теперь рассмотрим каждую таблицу подробнее.
xbt_config
create table if not exists xbt_config
(
    name varchar(255) not null,
    value varchar(255) not null
);

name - Название опции.
value - Значение опции.

xbt_deny_from_hosts
Проверка на запрещенные IP и/или сетей.
create table if not exists xbt_deny_from_hosts
(
    begin int unsigned not null,
    end int unsigned not null
);

begin - Первый IP в диапазоне сети для которой запретить доступ.
end - Последний IP в диапазоне сети для которой запретить доступ.

xbt_files_users
Связь между потоком и пользователем. Каждый поток, который загружается или загруженные пользователем создают запись здесь.
create table if not exists xbt_files_users
(
    fid int not null,
    uid int not null,
    active tinyint not null,
    announced int not null,
    completed int not null,
    downloaded bigint unsigned not null,
    `left` bigint unsigned not null,
    uploaded bigint unsigned not null,
    mtime int not null,
    unique key (fid, uid),
    key (uid)
);

fid - id торента.
uid - id пользователя.
active - 0 - если пользователь не активный на этом торенте. 1 - если активный.
announced - сколько раз пользователь раздал файл.
completed - 0 - если пользователь не завершил скачку. 1 - если пользователь завершил загрузку.
downloaded - Размер скачанного.
left - Сколько осталось скачать пользователю.
uploaded - Размер розданного пользователя.
mtime - Время последнего обращения.

dle_files
Стандартная таблица ДЛЕ, в неё необходимо добавить следующие поля:
    info_hash blob not null,
    leechers int not null default 0,
    seeders int not null default 0,
    completed int not null default 0,
    flags int not null default 0,
    mtime int not null,
    ctime int not null,

info_hash - torrent hash.
leechers - Количество личеров.
seeders - Количество сидеров.
completed - Количество полных раз скачивания торента.
flags - Это поле используется для связи с трекером. 0 - без изменений. 1 - торент следует удалить. 2 - торент была обновлён.
mtime - Время модификации.
ctime - Время создания.

dle_users
Стандартная таблица пользователей ДЛЕ, в неё нужно добавить следующие поля:
    can_leech tinyint not null default 1,
    wait_time int not null default 0,
    torrent_pass_version int not null default 0,
    downloaded bigint unsigned not null default 0,
    uploaded bigint unsigned not null default 0,
);

can_leech - Возможность пользователя скачивать раздачи. 1 - скачивание разрешено, 0- скачивать запрещено(например при низком рейтинге)
wait_time - Время ожидания, перед началом скачивания новых торентов.
torrent_pass_version - Новый уникальный идентификатор пользователя. Каждый раз, когда пользователь загружает поток новый ключ генерируется и добавляется к Tracker объявлению URL. Таким образом, каждый Torrent будет иметь свой собственный torrent_pass и не может быть использован на других торрентах.
downloaded - Размер скачанного пользователем.
uploaded - Размер розданного пользователем.

От теории к практике

Вот с теорией вроди как и разобрались, теперь можно приступить к изменениям в своей БД, для удобства это всё оформлено в инстарятор, который добавит все необходимые таблицы и изменения в существующую базу сайта.

Загрузить файл с архива в корень сайта и запустить его адрес_сайта/install.php
после удачной установки удалить его.

Внимание! У вас нет прав для просмотра скрытого текста.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.