Параметры пользователя в 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.sMacAddressMAC-адрес. Для нормальной работы требуется включение конфигурационной опции 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 — время запроса на сервер

См. также

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
RusHub
Инструменты
Портал