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_register 0 (отключен) Если включить, то это позволит автоматически регистрировать торренты на трекере.
anonymous_connect 0 (отключен) Отключаем, для того чтоб доступ к трекеру имели только зарегистрированные пользователи.
anonymous_announce 0 (отключен) Отключаем, для того чтоб запретить не зарегистрированным пользователям анонсировать
anonymous_scrape 0 (отключен) Немного не понятно, но также отключаем.
daemon 1 (включен) Включаем, что бы сервер работал как демон (на заднем плане).
debug 0 (отключен) Если включить то трекер будет работать в режиме отладки, сообщения отладки будут доступны по адресу: http://tracker:port/debug
full_scrape Дополнительный протокол запроса клиента к трекеру, при котором трекер сообщает клиенту общее количество сидов и пиров на раздаче.
gzip_debug 1 (включен) Если включить то страницы отладки будут сжиматься(GZIP) перед отдачей
gzip_scrape 1 (выключен) Если включена, то сервер будет GZIP (сжатие) скрип страницу.
log_access 0 (выключен) Если включена, то сервер создаст файл со всеми доступами к серверу. Файл будет называться (xbt_tracker_raw.log)
log_announce 0 (выключен) Если включена, то сервер будет регистрировать все объявления в таблице xbt_announce_log.
log_scrape Если включена, то сервер будет регистрировать все в таблице xbt_scrape_log.
announce_interval 1800 объявить по умолчанию интервал (в секундах), что будет внутри торрент-файл.
clean_up_interval 60 Интервал для очистки торентов, которые были помечен для удаления.
read_config_interval 60 Интервал времени, через которое XBT будет перечитывать настройки конфигурации с файла.
read_db_interval 60 Интервал времени, через которое XBT будет перечитывать настройки конфигурации с БД
scrape_interval 0 Также на данный момент непонятно
write_db_interval 15 Интервал времени, чеез которое XBT будет обновлять свою БД
column_files_completed completed Название поля "completed" из таблицы xbt_files_users в таблице *_files.
column_files_fid id Название поля 'id файла' из таблицы xbt_files_users в таблице *_files.
column_files_leechers leechers Название поля 'leechers' из таблицы xbt_files_users в таблице *_files.
column_files_seeders seeders Название поля 'seeders' из таблицы xbt_files_users в таблице *_files.
column_users_uid user_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_log xbt_announce_log значение по умолчанию для таблицы announce_log
table_deny_from_hosts xbt_deny_from_hosts Значение по умолчанию для таблицы deny_from_hosts.
table_files dle_files Значение по умолчанию для таблицы файлов.
table_files_users xbt_files_users Значение по умолчанию для таблицы files_users.
table_scrape_log xbt_scrape_log значение по умолчанию для scrape_log таблице.
table_users dle_users Значение по умолчанию для таблицы пользователей.
torrent_pass_private_key 27 случайных символов, ключ трекера, генерируется автоматически при певом запуске.
listen_ipa IP адреса для XBT Tracker. Значение: Пусто. Он будет работать на всех доступных IP.
listen_port 2710 порт, в котором 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
после удачной установки удалить его.

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

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