Автор: Herurg 9.11.2008, 21:10
Помогите переделать скрипт под птоху новой версии PtokaX 0.4.1.1
Буду очень признателен...
Автор: district 9.11.2008, 21:55
MsgBoard Lua v3.1 ?
А под какой птокой он у тебя ходит, если не секрет?
Автор: Herurg 10.11.2008, 1:22
он стоял на Verli Hub но хотелось бы его поставить на птаху, но вот он неподходит
Автор: district 10.11.2008, 1:31
Есть вот какой ботик. Переделан из гостевой книги, сделаной размашисто, от широкой души и с юмором. ))) Сконвертировать под API2 думаю проблемы не составит, тут тема конвертации где-то неоднократно поднималась.
А к корифеям попутный вопрос: т к я честно скажу, в архитектуре данного скрипта вообще ничего не понимаю, не допишете ли искусства ради функцию получения юзером при входе, например, трех крайних записей раздела "Релизы"? Только упаси Бог не в личку, знаю, как бесят рядовых нормальных юзеров сообщения в личку при входе на хаб.
Автор: Nickolya 11.11.2008, 0:35
По поводу архитектуры ты прав, просто сумашедший гений писал этот скрипт... Он еще и оооочень криво написан! Но я все-таки прикрутил требуемую функцию, пробуй
Автор: district 11.11.2008, 9:14
Nickolya
Снимаю шляпу ;) Говорил же, знающему человеку - труда особого не составит...
А я - что такое "wtf"-то узнал только неделю назад, от отдного мегахакера
Единственно, чего не понял спросонья - почему ОПы получают новости тоже, несмотря на то, что нет OpConnected = NewUserConnected, и быть не должно в общем-то.
Потом пригляделся - вот она хитрая строчка:
Цитата
OpConnected = function(user)
NewUserConnected(user)
Надо взять на вооружение )
ну и добавил условие if user b.registered then для получения 3-х крайних записей - если человек не зарегистрирован, то может ему и неинтересно, и незачем тогда.
Автор: district 11.11.2008, 22:02
Herurg
По-моему, выложенный Bulletin переделать, да еще и под новый АПИ нереально. Поэтому и предложил альтернативный, схожий вариант... Хотя, может, сути этого bulletina просто не понял.
----------------------------------------------------------------------------------------------------------
Охо-хо, сам плохо понял, что именно сделал, но идея была такая: чтобы сообщения о новых поступлениях юзер получал, как бы это выразиться, не каждый раз при заходе на хаб.
Чтобы оскомину не набивали.
Увязывать с os.date - опыта пока маловато, в общем, соорудил примитивный счетчик, вот крайняя часть кода.
Работать работает, прореживает, правда, сам пока не пойму, как именно
Наверное, нужно раздвигать значения if t==0 or t==4, как-то увязав их с числом входов и выходов посетителей (UserDisconnected ведь реагирует на все события дисконнектов, всех юзеров, так?)
Может, кто возьмется прокомментировать и посоветовать?
Код
NewUserConnected = function(user)
user:SendData("$UserCommand 1 2 "..wMenu.."\\Объявления\\Смотреть$<%[mynick]> !news||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Объявления\\Добавить$<%[mynick]> !addnews %[line:Введите текст вашего сообщения:]||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Запросник\\Смотреть$<%[mynick]> !showrequests||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Запросник\\Добавить$<%[mynick]> !addrequest %[line:Введите текст вашего сообщения:]||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Релизы\\Смотреть$<%[mynick]> !showreleases||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Релизы\\Добавить$<%[mynick]> !addrelease %[line:Введите описание и магнет на релиз:]||")
if user.bRegistered then
if t = 0 or t = 4 then
showshit2(user,entries,gbname,gbfile,levgbcmd1,"MAIN")
end
end
end
-- меню для ОПов
OpConnected = function(user)
NewUserConnected(user)
user:SendData("$UserCommand 1 2 "..wMenu.."\\Объявления\\Удалить$<%[mynick]> !delnews %[line:Введите номер записи:]||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Запросник\\Удалить$<%[mynick]> !delrequest %[line:Введите номер записи:]||")
user:SendData("$UserCommand 1 2 "..wMenu.."\\Релизы\\Удалить$<%[mynick]> !delrelease %[line:Введите номер записи:]||")
end
iWeNeedNumberCount = 3 -- кол-во записей нужных нам
function showshit2(user,container,wtf,file,cmdlevel,env)
if cmdlevel~=0 then
if CheckUserLevel(user) >= cmdlevel then
local container=loadshit(file)
local msg="\r\nПеред вами "..iWeNeedNumberCount.." последние записи из Новости-Релизы (см. меню на правой кнопке) :\r\n\r\n"
if number>0 then
local iToDo
if number <= iWeNeedNumberCount then
iToDo = 1
else
iToDo = number - iWeNeedNumberCount + 1
end
for i=iToDo,number do
s,e,who,when,entry=string.find(container[i], "(.+)|(.+)|(.+)")
msg=msg..i..".\t"..who.." - "..when.." ---> "..entry.."\r\n"
end
user:SendData(Bot,msg)
end
end
end
end
t = 0
function UserDisconnected(user)
t = t + 1
if t = 5 then
t = 0
end
end
OpDisconnected = UserDisconnected