Параметры пользователя в RusHub
Материал из MyDC's Wiki
Пользователь в API RusHub'а представлен как объект с типом userdata, к которому привязана метатаблица. Это позволяет не перегружать стек данными и одновременно не доставляет никаких неудобств разработчику скриптов.
Содержание |
UID
UID (от англ. User IDentifier — Идентификатор пользователя) — структура, хранящая параметры находящегося на хабе пользователя.
Возможна перезапись большинства параметров пользователя (неизменяемые параметры помечены комментарием), делается это простым присваиванием нужного значения:
UID.iProfile = 1
Важное замечание! Если пользователь ещё до конца не вошёл на хаб, то многие параметры могут быть равны nil. В частности, если, например, мы в событии OnValidateNick попытаемся получить UID.iShare или какой-либо другой параметр MyINFO-строки, то мы получим nil, так как на этой стадии входа ещё не была получена команда $MyINFO, они будут определены на одной из последующих стадий (см. описание протокола NMDC и последовательность входа на хаб).
MyINFO
- UID.sMyINFO — команда $MyINFO, отправленная пользователем
- UID.sNick — ник (неизменяемый)
- UID.sDesc — описание
- UID.sTag — тэг (неизменяемый)
- UID.sClientName — название клиента
- UID.sClientVersion — версия клиента
- UID.sMode — режим (активный, пассивный или прокси)
- UID.sConn — скорость соединения (указывается в настройках клиента, не является достоверной)
- UID.sEmail — адрес электронной почты (e-mail)
- UID.sFraction — ограничитель скорости скачивания пользователем/с пользователя (F:x/y)
- UID.iUsHubs — количество подключённых хабов, на которых не является зарегистрированным пользователем
- UID.iRegHubs — количество подключённых хабов, на которых является зарегистрированным пользователем
- UID.iOpHubs — количество подключённых хабов, на которых является оператором
- UID.iSlots — открытых слотов для скачивания
- UID.iLimit — ограничитель скорости скачивания с пользователя (L:x)
- UID.iOpen — открытые экстра слоты (O:x)
- UID.iBandwidth — ограничитель скорости скачивания с пользователя (B:x)
- UID.iDownload — ограничитель скорости скачивания пользователем (D:x)
- UID.iByte — байт флагов, «магический» байт (символ, а не число, как можно предположить из названия)
- UID.iShare — размер шары в байтах
Соединение
- Все параметры соединения неизменяемы.
- UID.sIP — IP-адрес пользователя
- UID.sIPConn — IP-адрес хаба, на который был принят пользователь
- UID.sMacAddress — MAC-адрес. Для нормальной работы требуется включение конфигурационной опции bMAC.
- UID.iPort — удалённый порт пользователя
- UID.iPortConn — порт хаба, на который был принят пользователь
Полномочия
- UID.iProfile — профиль
- UID.bInOpList — пользователь в списке операторов, имеет ключик (см. $OpList)
- UID.bInIpList — пользователь в списке видящих все IP, ему отсылаются IP-адреса всех пользователей
- UID.bHide — пользователь скрыт в списке подключённых пользователей
- UID.bKick — доступ к команде кика $Kick
- UID.bRedirect — доступ к команде перенаправления $OpForceMove
Протокол
- UID.sSupports — поддерживаемые клиентом характеристики, параметр команды $Supports
- UID.sVersion — версия протокола, параметр команды $Version
Служебные
- UID.UID — UID юзера (userdata) (неизменяемый)
- UID.sData — вспомогательное текстовое поле для различных нужд
- UID.iEnterTime — время входа на хаб (время отсылки на хаб команды $Key) (неизменяемый)
- UID.bInUserList — пользователь полностью вошёл и добавлен в список пользователей (неизменяемый)
WebID
WebID — обозначение пользователя, зашедшего на встроенный в хаб веб-сервер. WebID полностью совмещён с UID и к нему применимы все функции, применимые к UID. Например, отключение веб-пользователя Core.Disconnect(UID/WebID/sNick). Хотя специфические функции типа GetUser могут возвращать не все нужные результаты из-за их отсутствия для данного соединения, или функция DisconnectIP не может разъединить веб-пользователя с указанным IP.
- WebID.UID — UID пользователя (userdata)
- WebID.sIP — IP-адрес пользователя
- WebID.sIPConn — IP-адрес сервера, на который был принят пользователь
- WebID.iPort — порт сервера
- WebID.iPortConn — порт соединения
- WebID.iEnterTime — время запроса на сервер