myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
16 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему

> От: Экзекутор (ekzekutor), От темы с ID: 1403

Теги
Нет тегов для показа
Setuper
сообщение 24.2.2009, 13:27
Сообщение #1


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Функционал скрипта достаточный, однако написан скрипт не лучшим образом с точки зрения оптимальной работы. Почти в каждой функции проверяется платформа хаба, что не слабо грузит (если посчитать столько лишних действий делается при том или ином событии, то получается внушительная цифра). Скрипт не тестил, однако не думаю, что он работает быстро, так как структура написания оставляет желать лучшего.
Go to the top of the page
+Quote Post
Phazeus
сообщение 24.2.2009, 18:15
Сообщение #2


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Ну проверено, работает довольно быстро, вполне себе нравится big_smile.gif Структура нормальная big_smile.gif Поделись своими практическими соображениями, если не трудно, в таком случае big_smile.gif
Спасибо


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2009, 18:35
Сообщение #3


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Я так понимаю, что ты автор скрипта?

Огрехи в оптимизации обычно сказываются, когда на хабе народу за тысячу (или даже за несколько тысяч).

Первое что бросилось в глаза в данном скрипте - это проверка в функциях на использование той или иной платформы (имеются ввиду функции на подобии PMToUser, PMToAll и тд.). Лучше сделать так: написать 2 файла (например verli.lua и ptokax.lua). В одном файле пишутся API функции verli, во втором API функции ptokax. В основном исполняемом файле вместо этих функций написать код:
Код
if Core then
  if loadfile(ptokax.lua) then
    dofile(ptokax.lua)
  end
else
  if loadfile(verli.lua) then
    dofile(verli.lua)
  end
end
в данном случае нужные функции будут загружаться в зависимости от платформы хаба и нагрузка на проверку по части исполнения той или иной функции исчезнет. Для большей читаемости кода всё же советую раздробить на большее количество файлов (и самому буде легче разобраться что и где).


Спасибо сказали:
Go to the top of the page
+Quote Post
Wariner
сообщение 24.2.2009, 18:37
Сообщение #4


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




а почему такой выбор верли + птока? редко бывают такие скрипты!
Go to the top of the page
+Quote Post
Phazeus
сообщение 24.2.2009, 19:35
Сообщение #5


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Цитата(Setuper @ 24.2.2009, 19:35) *
Я так понимаю, что ты автор скрипта?

Огрехи в оптимизации обычно сказываются, когда на хабе народу за тысячу (или даже за несколько тысяч).

Первое что бросилось в глаза в данном скрипте - это проверка в функциях на использование той или иной платформы (имеются ввиду функции на подобии PMToUser, PMToAll и тд.). Лучше сделать так: написать 2 файла (например verli.lua и ptokax.lua). В одном файле пишутся API функции verli, во втором API функции ptokax. В основном исполняемом файле вместо этих функций написать код:
Код
if Core then
  if loadfile(ptokax.lua) then
    dofile(ptokax.lua)
  end
else
  if loadfile(verli.lua) then
    dofile(verli.lua)
  end
end
в данном случае нужные функции будут загружаться в зависимости от платформы хаба и нагрузка на проверку по части исполнения той или иной функции исчезнет. Для большей читаемости кода всё же советую раздробить на большее количество файлов (и самому буде легче разобраться что и где).


Спасибо за идею big_smile.gif
Ну я просто пользовался и Птокой и Верлихабом, на винде и Линуксе. Поэтому создал этот скрипт под себя big_smile.gif Каких-то тормозов не заметил. Народа 500-600 человек. Функции тоже добавлялись по мере надобности big_smile.gif Так что приветствуются любая критика и предложения и нет ограничений на использование идей проекта big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2009, 22:19
Сообщение #6


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Интересно чем обусловлен переход с verli на ptokax? Вроде как, сев на верли, с него уже не слезают, так как впечатляет производительность, скорость и возможность работы с бд.
Go to the top of the page
+Quote Post
Phazeus
сообщение 24.2.2009, 22:39
Сообщение #7


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Да нет, просто у меня знакомые, которые работают с Птокой на Винде. Верли на серваке... Вобщем, была надобность иметь и для Птоки и для Верли бота big_smile.gif И чтобы не писать параллельно одно и тоже для разных серверов, решил объединить и писать универсально. Сейчас вот доработать скрипт, усовершенствовать, будет удобно. По твоему совету сделаю локализацию в виде отдельных файлов-плагинов. Так очень удобно добавлять любые локализации других хабов. Так что, есть перспектива big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 27.2.2009, 13:39
Сообщение #8


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну этим ты никого не удивил. Данный приём работает в каждом втором скрипте.


Спасибо сказали:
Go to the top of the page
+Quote Post
Phazeus
сообщение 27.2.2009, 14:27
Сообщение #9


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Цитата(Setuper @ 27.2.2009, 14:39) *
Ну этим ты никого не удивил. Данный приём работает в каждом втором скрипте.

Ну я не видел таких "вторых" скриптов big_smile.gif Посмотри сначала что это ;) Хотя может я отстал от жизни big_smile.gif
Например для тогго, чтобы сделать просто команду, например, получения прикола с башорга, надо добавить просто триггер и одну строчку ответа на него big_smile.gif И у тебя готов цитатник башорга с форматированием и получением в ПМ текста запрошенной цитаты и тому подобное big_smile.gif

Например, пример для цитатника башорга:
Создать триггер с шаблоном:
^[%%%+!]баш_[%%%d]$
Добавить ему ответ:
{class:1:Команда только для зарегистрированных}{var:Q="%s(%d+)"}{repl:&quot;="'" &lt;="<" &gt;=">" <br%s/>="\n" <br>="\n"}{url:http://bash.org.ru/quote/[Q],1,,"<div>[^<].-</div>"<div>([^<].-)</div>"\n%1\n}{exit}
И всё big_smile.gif По команде !баш <номер> в ПМ от Экзекутора будет приходить эта цитата big_smile.gif Ну это как пример....
Go to the top of the page
+Quote Post
MEXAHuK
сообщение 1.3.2009, 7:26
Сообщение #10


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 314
Регистрация: 13.10.2008
Пользователь №: 791
Спасибо сказали: 9 раз




совет от человека помучившимся со скриптами достаточно много: раздели бота чисто для верлика и чисто птоки(у меня 800 юзерей и хаб начал заметно подвисать). не иди путём Jashka который создаёт изумительные скрипты для двух api сразу и которые имеют изумительные баги.
скрипт у тебя норм.
upd
и ещё: у меня на хабе 9 профилей. и из-за этого на хабе не показываются менюшки (совсем) можешь тут примерно сказать что и как нужно сделать чтобы меню были?
у меня вот такие профили
Код
pAdmin = {    --Профили, имеющие доступ к статистике IP/ников
    [0] = 1,    -- =[админ]=
    [1] = 1,    -- =[заместитель админа]=
    [2] = 1,    -- =[старший ОП]=
    [3] = 1,    -- =[младший ОП]=
    [4] = 1,    -- =[Старший вип]=
    [5] = 1,    -- =[младший вип]=
    [6] = 1,    -- =[админ других ресурсов]=
    [7] = 1,    -- =[сервер]=
    [8] = 1,    -- =[Отличившийся]=
    [9] = 1,    -- =[зарегенный]=
        [-1] = 0,       
   }


upd2 при следующих доработках/модификациях можно писать какие конкретно функции изменены? я просто целиком и полностью выдрал из бота всё что связано с верликом
Go to the top of the page
+Quote Post
Артём
сообщение 1.3.2009, 14:25
Сообщение #11


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




beat_brick.gif там столько папок что и не понятно что куда вкидовать.... shocked.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 1.3.2009, 16:01
Сообщение #12


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Всего 3 папки. Это разве много?
Go to the top of the page
+Quote Post
Phazeus
сообщение 1.3.2009, 19:01
Сообщение #13


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Цитата(MEXAHuK @ 1.3.2009, 8:26) *
совет от человека помучившимся со скриптами достаточно много: раздели бота чисто для верлика и чисто птоки(у меня 800 юзерей и хаб начал заметно подвисать). не иди путём Jashka который создаёт изумительные скрипты для двух api сразу и которые имеют изумительные баги.
скрипт у тебя норм.
upd
и ещё: у меня на хабе 9 профилей. и из-за этого на хабе не показываются менюшки (совсем) можешь тут примерно сказать что и как нужно сделать чтобы меню были?
у меня вот такие профили
Код
pAdmin = {    --Профили, имеющие доступ к статистике IP/ников
    [0] = 1,    -- =[админ]=
    [1] = 1,    -- =[заместитель админа]=
    [2] = 1,    -- =[старший ОП]=
    [3] = 1,    -- =[младший ОП]=
    [4] = 1,    -- =[Старший вип]=
    [5] = 1,    -- =[младший вип]=
    [6] = 1,    -- =[админ других ресурсов]=
    [7] = 1,    -- =[сервер]=
    [8] = 1,    -- =[Отличившийся]=
    [9] = 1,    -- =[зарегенный]=
        [-1] = 0,       
   }


upd2 при следующих доработках/модификациях можно писать какие конкретно функции изменены? я просто целиком и полностью выдрал из бота всё что связано с верликом

Как я понял у Вас Птока?
Тогда придётся подкорректировать сами функции:

Код
function UsrClassConvert(usercl)
    usercl=tonumber(usercl) or -1
    if localization == "verlihub" then
        if usercl==-1 then usercl=0 end
        return usercl
    elseif localization == "ptokax04" then
        if usercl==0 or usercl==1 then
            return 10
        elseif usercl==-1 then
            return 0
        elseif usercl==2 then
            return 5
        elseif usercl==3 then
            return 3
        elseif usercl==4 then
            return 2
        elseif usercl==5 then
            return 1
        end
    end
    return usercl
end --конвертация класса пользователя в/из 10-бальную шкалу

Вот тут ты для каждого профиля возвращаешь аналог в стиле верлихаб. Тоесть для админа (класс 0) ты вернёшь 10, тоесть у Экзекутора основные классы в стиле верлихаб: 0 (унрег), 1 (рег), 2 (вип) 3 (оп) 5 (мастер) 10 (админ). Ты свои профили продумай к каким категориям отнести и переделай эту функцию под себя. Если возникнут проблемы, пиши мне тут или в асю 233-560-855.
Код
function isVip(user)
    if localization == "verlihub" then
        if GetUsrClass(user) == 2 then return true end
    elseif localization == "ptokax04" then
        if RegMan.GetReg(user) and UsrClassConvert(RegMan.GetReg(user).iProfile)==2 then return true end
    end
    return false
end -- проверка на VIP

Тут проверка на ВИП. Измени число 2 на нудный тебе класс с правами ВИП. В стиле верлихаб. Точнее, эту функцию не нужно будет переделывать (проверь, соответствует ли код этому), если ты переделаешь конвертацию (первую функцию). Аналогично при необходимости посмотри:
function isModer(user) и function isMaster(user)
Листинг кода верных процедур: Тут для Модера преобразованный класс 4 или выше, а для мастера 5 или выше. Если устраивает, то проверь код процедуры:
Код
function isModer(user)
    if localization == "verlihub" then
        if GetUsrClass(user) >= 5 and GetUsrClass(user) < 10 then return true end
    elseif localization == "ptokax04" then
        if RegMan.GetReg(user) and UsrClassConvert(RegMan.GetReg(user).iProfile)>=4 then return true end
    end
    return false
end -- проверка на Moder
function isMaster(user)
    if localization == "verlihub" then
        if GetUsrClass(user) == 10 then return true end
    elseif localization == "ptokax04" then
        if RegMan.GetReg(user) and UsrClassConvert(RegMan.GetReg(user).iProfile)>=5 then return true end
    end
    return false
end -- проверка на Master (битовое)

Далее найди авторегистрацию пользователей. У меня при авторегистрации регистрирует с профилем 5. Тоесть Рег у меня под индексом 5. Замени на нужный тебе (на 9). Найди блок
-----------------------------регистрация---------------------------------------------->>>
найди строчку RegMan.AddReg(curUser, sPas, 5) и замени на RegMan.AddReg(curUser, sPas, 9)

Далее отредактируй таблицу разрешений в файлах меню BotMenu.lua и HubMenu.lua там у каждой команды в таблице ["PROFILES"]={ идёт перечень классов, которым эта команда разрешена. Добавь классы в соответствии со своими и тогда будет работать меню как положено big_smile.gif
Go to the top of the page
+Quote Post
Артём
сообщение 1.3.2009, 20:56
Сообщение #14


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




Цитата(Артём @ 1.3.2009, 14:25) *
beat_brick.gif там столько папок что и не понятно что куда вкидовать.... shocked.gif

shocked.gif 3???Их не три....а куда вложить PXLuaSocket-2.0.2.rar ?
Я не могу понять как поставть... what.gif
Go to the top of the page
+Quote Post
Wariner
сообщение 1.3.2009, 21:18
Сообщение #15


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Цитата(Артём @ 1.3.2009, 20:56) *
shocked.gif 3???Их не три....

Ну либо у нас с Setuper`ом массовые глюки либо их там действительно 3 beat_brick.gif
Go to the top of the page
+Quote Post
MEXAHuK
сообщение 1.3.2009, 21:32
Сообщение #16


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 314
Регистрация: 13.10.2008
Пользователь №: 791
Спасибо сказали: 9 раз




Phazeus, хочется материться да не буду... можно сделать норм рабочий скрипт исключительно для птоки? я из-за подобной муры(верли стиль профилей) отказался от множества скриптов. твой сскрипт интересен но и его я вынужден выкинуть. будь добр переделай. я бы сам но у тебя получится лучше.
Go to the top of the page
+Quote Post
Артём
сообщение 1.3.2009, 22:17
Сообщение #17


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 773 раза




Цитата(Wariner @ 1.3.2009, 21:18) *
Ну либо у нас с Setuper`ом массовые глюки либо их там действительно 3 beat_brick.gif

ИХ не 3!!! Ekzekutor (папка,а в той папке скрипты и 2е папка),ЗаглушкаНеизвестныхКомандПтоки.lua,Ekzekutor.lua и наконецто архив PXLuaSocket-2.0.2.rar который я не могу понять куда втулить нада.... eyes_droped.gif
Go to the top of the page
+Quote Post
mariner
сообщение 1.3.2009, 22:21
Сообщение #18


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Цитата(MEXAHuK @ 1.3.2009, 21:32) *
Phazeus, хочется материться да не буду... можно сделать норм рабочий скрипт исключительно для птоки? я из-за подобной муры(верли стиль профилей) отказался от множества скриптов. твой сскрипт интересен но и его я вынужден выкинуть. будь добр переделай. я бы сам но у тебя получится лучше.


я вот не понимаю, люди делают кросплатформенный скрипт, а тебе лень даже подумать -_-. Чо то ты дерзкий.
Go to the top of the page
+Quote Post
Wariner
сообщение 1.3.2009, 22:27
Сообщение #19


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




продолжаем оффтопить(позже я это уберу)!
2Артём считаем главная папка Ekzekutor - раз, подпапки txt - два welcome - три. Всё остальное это часть скрипта и текстовые файлы!!! Вообще не понимаю зачем настаивать на своём если не прав...
Go to the top of the page
+Quote Post
Phazeus
сообщение 1.3.2009, 22:57
Сообщение #20


Продвинутый участник
****

Группа: Пользователи
Сообщений: 179
Регистрация: 24.2.2009
Из: Самара
Пользователь №: 2 340
Спасибо сказали: 103 раза




Цитата(Артём @ 1.3.2009, 21:56) *
shocked.gif 3???Их не три....а куда вложить PXLuaSocket-2.0.2.rar ?
Я не могу понять как поставть... what.gif

Содержимое архива с LuaSocket распаковать просто в папку с Птокой. Всё что есть, просто распаковать и всё big_smile.gif У экзектора только одна папка (по умолчанию Ekzekutor), где хранится всё что касается его big_smile.gif LuaSocket это не часть Экзекутора, это просто то, что требуется в наличии в Птоке для его работы. В инструкции описано в разделе Установка big_smile.gif

Цитата(MEXAHuK @ 1.3.2009, 22:32) *
Phazeus, хочется материться да не буду... можно сделать норм рабочий скрипт исключительно для птоки? я из-за подобной муры(верли стиль профилей) отказался от множества скриптов. твой сскрипт интересен но и его я вынужден выкинуть. будь добр переделай. я бы сам но у тебя получится лучше.

Прости, но не могу, специально делал именно кроссплатформенный, так как такая нужда есть big_smile.gif Если тебе интересно, но хочешь именно униплатформу, то пиши мне в асю, решим твою пробелму big_smile.gif Кстати, если так нужно, можно просто найти в скрипте все участки с if localization == ... и удалить условие и лишний код. относяцийся к другой локализации, оставив лишь участок условия нужный. Будет некроссплатформенный big_smile.gif
Кстати, потом планирую кроссплатформенность сделать более удобной и правильной, как было тут мне предложено и что я учёл. Так что пока жду предложений по функционалу и работе самого скрипта, чтобы сразу потом в финальную версию 2.0 всё внести.
Go to the top of the page
+Quote Post

16 страниц V   1 2 3 > » 
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsЭкзекутор (ekzekutor)
API2|Универсальный многоязычный бот для PtokaX,VerliHub,RusHub,Eximius
168 Phazeus 218 412 27.4.2014, 10:08 Посл. сообщение: Prizrak333
No New Posts Экзекутор, Верлик и ВДС
8 Aлзим 12 521 12.3.2013, 15:40 Посл. сообщение: Артём
No New Posts Бот Экзекутор
бот птохи
1 Slav 6 302 11.9.2009, 12:43 Посл. сообщение: Maximum

 



RSS Сейчас: 28.3.2024, 23:34