VBTT - Мод торрент трекера для vBulletin. Скачать движок трекера бесплатно (не tbdev и не torrentpier). Разработка vBulletin Torrent Tracker

VBTT - Мод торрент трекера для vBulletin. Скачать движок трекера бесплатно (не tbdev и не torrentpier). Разработка vBulletin Torrent Tracker (http://www.vbtt.org/index.php)
-   Версии аннонсеров (http://www.vbtt.org/forumdisplay.php?f=12)
-   -   Интеграция аннонсеров с фронтэндом. (http://www.vbtt.org/showthread.php?t=19)

Skald 18.05.2009 00:47

Интеграция аннонсеров с фронтэндом.
 
В этой теме я опишу как я вижу интеграцию различных аннонсеров с фронэндом

Skald 18.05.2009 01:19

Что необходимо сделать:
  1. Определить все места взаимодействия аннонсера и фронтэнда. Например, загрузка торрента на трекер - аннонсер должен об этом узнать.
  2. Первым делом нужно полностью отделить аннонсер от фронтэнда. В данный момент некоторые части ПХП аннонсера (крон задачи), как часть фронтэнда. И как результат переписать код фронтэнда чтобы он не зависел от аннонсера.

Технически я вижу несколько вариантов реализации.
  1. Используя систему хуков vB. С одной стороны хорошо и красиво - vb-way и все такое, но первое неудобство - аннонсер надо прописывать дополнительным продуктом, второе не всегда можно разместить хук в продукте (хук в хуке), вложенные eval-ы иногда глючат, да и производительность этого под сомнением.
  2. Используя систему функций (или классов) подгружаемых в зависимости от настроек админки. Т.е. есть набор файлов функций типа functions_vbtt_php.php и functions_vbtt_xbtt.php в которых одинаковый набор функций, и в зависимости от настроек админки идет инклуд или одного или другого файла. С классами аналогично, только можно использовать один файл, в котором прописаны все классы.
Я больше склоняюсь ко 2-му варианту, т.к. при совместной работе другим программистам не надо будет знать внутренности vb (ну по крайней мере не сильно знать).

Я полностью знаю функционал бинарника и знаю все его недостатки, так что как кто-то решить помочь в модификации кода, сформулирую подробнее.

xorex 04.06.2009 06:26

поддерживаю 2 пункт ибо если через хуки делать 99% будут конфликты с другими хаками модами и.т.п особенно если их не одна сотня стоит :-D

IVB 17.06.2009 11:18

Цитата:

Сообщение от Skald (Сообщение 201)
Технически я вижу несколько вариантов реализации.

Позволю себе предложить еще один вариант (точнее, это развитие 1-го варианта, рассматриваемого автором) - для каждого анонсера делается отдельный продукт.

Собственно фронтенд состоит из одного или нескольких продуктов, не зависящих от используемого анонсера (т.е. только работа с форумом). А все зависимые вещи (структура БД, запросы к БД, взаимодействие с анонсером) вынесены в продукт "анонсер XXX".

Преимущества:

- при установке админ ставит продукт(ы) фронтенда и на выбор любой из продуктов анонсера (в зависимости от того, какой из поддерживаемых анонсеров он хочет использовать);

- возможность поддержки теоретически любого анонсера (появляется новый анонсер - под него пишется продукт и добавляется в комплект имеющихся (как плагины к ФАРу или Тоталу));

- в установленном трекере не будет "лишнего" кода (по сравнению с универсальным анонсером, в котором должна быть поддержка разных трекеров).

Недостатки - каждый продукт "анонсер" будет содержать много похожего кода, что затруднит поддержку нескольких продуктов-анонсеров одним автором.

Skald 17.06.2009 16:08

IVB, Вы не понимаете схемы взаимодействия фронтэнда с аннонсером.
Да аннонсер может быть любой, но данные он в базу должен писать в определенном стандарте (определенные поля и т.д.)
Также аннонсер должен обладать определенным функционалом (т.е. если нужного функционала нет, например, золотые раздачи, то откуда они появятся на фронтэнде).
Также аннонсер обязан принимать определенные команды с фронтэнда (например добавление или удаление торрента), если не будет понимать то нифига работать не будет. Как он будет принимать комманды это не важно - это уже задача интеграции и будет зависеть от конкретного анносера. Но если он в принципе не принимает команды, то независимо от интеграции работать тоже нифига не будет.
С самого начала писалось совсем о другом и для тех кто разбирается в системе хуков Vb и в принципе работы торрент-трекеров.

Ваше предложение (в том варианте в котором Вы его описали) изначально тупиковое и неэффективное развитие. Я делать 3 или 4 версии продукта с разным функционалом не буду - просто мне это не надо (не ну если только кто-то заплатит достаточно), а специалистов хорошо разбирающихся в vb-API очень мало, так что не думаю что кто-то начнет все переписывать под свой аннонсер.
То что я предлагал - это:
Есть фронтэнд (определенного фукционала) - независимый от бекэнда (аннонсера), но управляющий любым аннонсером посредством определенных логических комманд с помощью интеграции (небольшое php дополнение для аннонсера). Интеграция в свою очередь уже специально написана для каждого аннонсера отдельно. И еще немаловажно аннонсер должен поддерживать определенный битторрент функционал не важно на каком языке он реализован и базовый функционал Vb. Например, если в аннонсере нет поддержки Vb групп, то такой аннонсер не подойдет или если он не умеет делать золотые раздачи (битторрент функционал).
Цитата:

Сообщение от IVB (Сообщение 427)
- возможность поддержки теоретически любого анонсера (появляется новый анонсер - под него пишется продукт и добавляется в комплект имеющихся (как плагины к ФАРу или Тоталу));

Именно это и планируется, только Вы не понимаете какая часть кода делается фронтэндом а какая аннонсером (хотя мне кажется что Вы вообще не понимаете что такое аннонсер и какие у него задачи), т.е. совсем не каждый аннонсер подойдет.

Skald 05.07.2010 22:52

Георг Аванесян, При правильном написании хаков - конфликтов между ними не должно быть в принципе... только вот одна проблема - большинство хаков только с большой натяжкой можно назвать правильно написанными :(

qaqaqa 15.04.2013 05:12

поздновато я, конечно.
этот Георг - обычный спамер, главное ему - ссылку в подписи поставить. всё остальное ему по барабану.
зы - ковыряю XBT.


Часовой пояс GMT +3, время: 16:24.

vBulletin® 3.8.1. ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot