Новый алгоритм синхронизатора хабов

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

Новый алгоритм синхронизатора хабов

#1 Сообщение hat3k » 02 мар 2012, 22:26

Переосмысление синхронизатора пришло из того, что есть баги и разногласия по поводу текущей его реализации. В частности спорный момент о том, что тегом Connect вообще не нужно давать управлять провайдеру. Управление его должно быть единоразовым, а далее чеовек сам решит, нужен ли ему этот хаб. Уход от использования этого тега упрощает в корне весь алгоритм синхронизатора и инструкции по его применению. Тег ISPSync точно так же становится ненужным. Так как за синхронизацию отвечать будет только положение хаба в группе.


уйдём от тега коннект и станет всё проще на 90%
читаем удалённый фэйворитс

Первое действие. Что делаем с тегом Connect, найденном на локальном компе
Если хаб найден на сервере и совпал, и:
- не имеет группы = переносим его в группу ISP и Connect=1
- имеет группу ISP Recycled = переносим его в группу ISP и Connect=1
- имеет группу, отличную от ISP или от ISP Recycled = не переносим и не включаем / не выключаем

Если хаб удален (не найден) на сервере, и:
- не имеет группы = переносить в ISP Recycled и Connect=0
- имеет группу ISP = переносить в ISP Recycled и Connect=0
- имеет группу, отличную от ISP или от ISP Recycled = не переносим и не выключаем

Второе действие. Что делаем с тегами Description, Name и т.д., найденными на локальном компе
Если хаб:
- имеет группу ISP или ISP recycled = заменять/добавлять
- имеет группу, отличную от ISP или от ISP Recycled = не заменять/добавлять

Третье действие. Что делаем с тегом ISP Delete=1
Если хаб имеет на сервере такой тег, то вся строка с хабом дубликатом удаляется. Спорный тег конечно, надо ли провайдерам давать такую волю. Не знаю. Но спаммерские хабы можно так валить.




Механизм и идея синхронизации хабов.
Провайдер имеет список хабов и хочет, чтобы они автоматически подгружались клиенту. При изменении какого-либо из хабов, эти изменения коснутся соответствующих хабов на стороне клиента. Синхронизация происходит в момент запуска FLYlinkDC++. Сам файл с хабами может находиться как на сервере провайдера, так и на сервере FlylinkDC++ (Обсуждается при заказе индивидуальной провайдерской сборки FlylinkDC++).
Внимание!
Хабы будут синхронизироваться только до тех пор, пока юзер сам не перенесёт их в какую-либо отличную от "ISP" или от "ISP Recycled" группу.


Инструкция:
  • На сервере создать папку, например, http://site.ru/flylink
  • В ней создать файл ISP_favorites.xml (кодировка UTF-8)
  • В настройках FlylinkDC++ Настройки>Ресурсы провайдера вписать адрес папки http://site.ru/flylink
  • В настройках FlylinkDC++ поставить галку Настройки>Ресурсы провайдера>Список хабов
Пример текста файла ISP_favorites.xml:
Код: выделить все
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Favorites>
<Hubs>
<Hub Name="Hub1" Server="dchub://dc.hub1.ru"/>
<Hub Name="Hub2" Description="Большой Хаб" Server="dchub://dc.hub2.ru"/>
<Hub Name="Hub3" Server="dchub://dc.hub3.ru:411"/>
</Hubs>
<Users/>
<UserCommands/>
<FavoriteDirs/>
</Favorites>
Обязательные теги:
  • Server – Адрес хаба (ключевой тег для определения хабов-дубликатов)
  • Name – Название хаба

Необязательные теги (количество будет пополняться):
  • Description – Описание хаба

Поведение тегов
Server – этот параметр используется для определения, дублируются ли загружаемый хаб и локальный. Если адреса совпадают, FlylinkDC++ посчитает, что оба хаба одинаковые (хаб-дубликат).
Все остальные теги из загружаемого хаба заменят все теги локального хаба-дубликата.

Поведение хабов-дубликатов в различных задачах:
Задача:
Первая (чистая) установка. Загрузить клиенту список хабов.

Решение:
Загружаемый ISP_favorites.xml содержит:
Код: выделить все
<Hub Name="Hub1" Description="Отличный хаб" Server="dchub://dc.hub1.ru"/>
<Hub Name="Hub2" Description="Хороший хаб" Server="dchub://dc.hub2.ru"/>
<Hub Name="Hub3" Description="Нестабильный" Server="dchub://dc.hub3.ru"/>

Результат:
Загрузились все хабы. Все помещены в группу ISP.
Локальный файл Favorites.xml становится вида:
Код: выделить все
<Hub Name="Hub1" Connect="1" Description="Отличный хаб" Server="dchub://dc.hub1.ru" Group="ISP"/>
<Hub Name="Hub2" Connect="1" Description="Хороший хаб" Server="dchub://dc.hub2.ru" Group="ISP"/>
<Hub Name="Hub3" Connect="1" Description="Нестабильный" Server="dchub://dc.hub3.ru" Group="ISP"/>
Задача
Удалить второй хаб, но так, чтобы юзер не потерял логин и пароль и смог потом сам включить автозагрузку этого хаба. (Для этого удаляем строку хаба из загружаемого файла. Похожая ситуация, когда список хабов на сервере частично или полностью заменили.) Третему хабу поменять имя и описание.

Решение:
Загружаемый ISP_favorites.xml содержит:
Код: выделить все
<Hub Name="Hub1" Description="Отличный хаб" Server="dchub://dc.hub1.ru"/>
<Hub Name="Hub3-1" Description="Хороший хаб" Server="dchub://dc.hub3.ru"/>

Результат:
Второй хаб отключён из автозагрузки и помещён в группу ISP Recycled (Удалённые). Юзер сможет его включить. Третий хаб поменял имя и описание.
Локальный файл Favorites.xml становится вида:
Код: выделить все
<Hub Name="Hub1" Connect="1" Description="Отличный хаб" Server="dchub://dc.hub1.ru" Group="ISP"/>
<Hub Name="Hub3-1" Connect="1" Description="Хороший хаб" Server="dchub://dc.hub3.ru" Group="ISP"/>
<Hub Name="Hub2" Connect="0" Description="Хороший хаб" Server="dchub://dc.hub2.ru" Group="ISP Recycled"/>
Задача:
Восстановить второй хаб. (В загружаемом файле вновь появился хаб, который когда-то оттуда был удалён.) Восстановить первозданный список хабов.

Решение:
Загружаемый ISP_favorites.xml содержит:
Код: выделить все
<Hub Name="Hub1" Description="Отличный хаб" Server="dchub://dc.hub1.ru"/>
<Hub Name="Hub2" Description="Хороший хаб" Server="dchub://dc.hub2.ru"/>
<Hub Name="Hub3" Description="Нестабильный" Server="dchub://dc.hub3.ru"/>

Результат:
Второй Хаб из группы ISP Recycled (Удалённые) перенесён в группу ISP (Провайдер). При переносе ему ставится тег Connect="1". Третий Хаб восстановил прежние имя и описание.
В результате получится локальный файл Favorites.xml, содержащий:
Код: выделить все
<Hub Name="Hub1" Connect="1" Description="Отличный хаб" Server="dchub://dc.hub1.ru" Group="ISP"/>
<Hub Name="Hub2" Connect="1" Description="Хороший хаб" Server="dchub://dc.hub2.ru" Group="ISP"/>
<Hub Name="Hub3" Connect="1" Description=" Нестабильный " Server="dchub://dc.hub3.ru" Group="ISP"/>
hat3k
Идейный
Идейный
 
Сообщений: 34
Зарегистрирован: 27 май 2011, 08:32
Откуда: Питер
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия флая: r500

Вернуться в Хотелки

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron