Категория: поиск, сервис
alias(noLovedModTools::NickSearch::show)
{
/*
================================
>> Поиск пользователей по нику.
Версия 0.5
Автор xternalx aka noLove
>> Контакты:
e-mail: xternalx /on/ gmail /dot/ com
ICQ: 462 - 321 - 666
================================
*/
%SearchInitialChan=$window; // сохраняем ID вызывающего канала
if($window.type(%SearchInitialChan)!="channel")
{
echo Данное окно не является каналом. Переключитесь на требуемый канал для выполнения поиска
halt; // прерываем выполнение скрипта, вызывающее окно не является каналом
}
%NickSearchWnd = $new(widget); // главное окно
%NickSearchWnd->$setGeometry(250,250,400,400);
%NickSearchWnd->$setCaption("Поиск пользователя: "$chan.name(%SearchInitialChan));
%mainLayout=$new(layout,%NickSearchWnd); // сетка расположения контролов
%mainLayout->$setMargin(5);
%mainLayout->$setSpacing(5);
%SearchChanName=$new(lineedit,%HostWndSearch); // здесь будет выводиться название канала, в котором был инифиирован поиск
%SearchChanName->$setText($0);
%SearchQueryIP=$new(lineedit,%NickSearchWnd); // строка ввода запроса
%SearchWhereSelector=$new(checkbox,%NickSearchWnd); // переключатель типа поиска(на текущем канале\на всех открытых каналах)
%SearchWhereSelector->$setText("Искать на всех открытых каналах");
%SearchResultList=$new(listbox,%NickSearchWnd); // список результатов поиска
%mainLayout->$addWidget(%SearchChanName,0,0);
%mainLayout->$addWidget(%SearchWhereSelector,1,0);
%mainLayout->$addWidget(%SearchQueryIP,2,0);
%mainLayout->$addWidget(%SearchResultList,3,0);
%NickSearchWnd->$show;
privateimpl(%SearchQueryIP,textChangedEvent)
{
%SearchResultList->$clear;
if(%SearchWhereSelector->$isChecked==0) // если искать на текущем канале
{
%users=$chan.users(%SearchInitialChan);
for(%i=0;%i<$chan.usercount(%SearchInitialChan);%i++)
{
if($str.grep("^"%SearchQueryIP->$text,%users[%i],"r"))
%SearchResultList->$insertItem("найден: %users[%i]",%i);
}
} else // или искать на всех открытых каналах
{
%wl=$window.list(channel,$ic);
for(%i=0;%i<%wl[]#;%i++)
{
%users=$chan.users(%wl[%i]);
for(%y=0;%y<$chan.usercount(%wl[%i]);%y++)
{
if($str.grep("^"%SearchQueryIP->$text,%users[%y],"r"))
%SearchResultList->$insertItem("найден: "$chan.name(%wl[%i])": "%users[%y],%y);
}
}
}
}
}
окошко открывается при вводе в командной строке слово /noLovedModTools::NickSearch::Show
данный скрипт является частью моей модификации, которая находится в стадии приготовления, но Вы можете использоват данный скрипт в своих целях с сохранением моего копирайта Cheesy