Автор: MEXAHuK 6.12.2008, 22:04
есть ли скрипт который выводит в файл N количество сообщений чата в N минут? файл типа .txt или .html
Автор: Wariner 6.12.2008, 22:05
что значит N сообщений в N минут?! с какой целью?
Автор: Sephiroth_Lukaw 6.12.2008, 22:51
Код
function OnStartup()
Log = ''
local nTimerInterval=6 * 6 * 10000 -- 6 минут
TmrMan.AddTimer(nTimerInterval, "SaveChat")
end
function SaveChat()
local hFile = io.open("scripts/chat.txt","w")
hFile:write(Log)
hFile:flush()
Log = ''
hFile:close()
end
function ChatArrival(tUser, sData)
Log = Log..sData
end
Я о том?
Код
function OnStartup()
tLog = {}
local nTimerInterval=6 * 6 * 10000 -- 6 минут
TmrMan.AddTimer(nTimerInterval, "SaveChat")
end
function SaveChat()
local hFile = io.open("scripts/chat.txt","w")
hFile:write("<HR>"..table.concat (tLog, "<BR>").."<HR>")
hFile:flush()
tLog = {}
hFile:close()
end
function ChatArrival(tUser, sData)
table.insert (tLog, sData)
end
Будь осторожен, с командами, типа, !regme, что бы и они логировались, ставь скрипт в самый верх ((-
Если нужно время сообщения, то,
os.date("20%y-%m-%d %H:%M:%S "), надеюсь, сам найдёшь, куда вставить.
Автор: Serx 7.12.2008, 1:44
А как выглядит скрипт который только пишет лог чата и ничего более?
Автор: MEXAHuK 7.12.2008, 10:55
Sephiroth_Lukaw, оно! спасибо!
но вот только какой из них под апи2? нужно только вывод чата. никакой обработки команд.
Wariner, N сообщений в N минут - сорри, писал с жутких колёс и ловил глюки
не нужен лог, нужно только чтобы файл содержал только последние N сообщений.
Автор: Sephiroth_Lukaw 7.12.2008, 11:07
Т.е. без таймера? Оба под API2, если БЕЗ ТАЙМЕРа, а только n cообщений, то ПРИМЕРНО, так.
Код
function OnStartup()
tLog = {}
iMess = 0 --/* Не трогать */
nMess = 6 --/* Сообщений */
end
function SaveChat()
local hFile = io.open("scripts/chat.txt","w")
hFile:write("<HR>"..table.concat (tLog, "<BR>").."<HR>")
hFile:flush()
tLog = {}
iMess = 0
hFile:close()
end
function ChatArrival(tUser, sData)
local _,_,sMsg = string.find(sData, "%b<>%s+(.*)|")
if string.sub (sMsg, 0, 1) ~= "!" and string.sub (sMsg, 0, 1) ~= "+" then
if iMess < nMess then
iMess = iMess + 1
table.insert (tLog, "<"..tUser.sNick.."> "..sMsg)
else
SaveChat()
end
end
end
Автор: MEXAHuK 7.12.2008, 11:20
СПАСИБА!
а чтобы сохранять их в любом месте компа а не только в папках птоки?
Sephiroth_Lukaw...
запустился
сам создал chat.txt
перезагрузил скрипт
пусто в файле
Автор: Sephiroth_Lukaw 7.12.2008, 11:21
Код
local _,_,sMsg = string.find(sData, "%b<>%s+(*)|")
я тут точку забыл. Переписал.
Автор: MEXAHuK 7.12.2008, 11:24
не робитт
может local hFile = io.open("scripts//chat.txt","w")
? два слеша ?
Автор: Sephiroth_Lukaw 7.12.2008, 11:44
Тама логика просто ни много не правильная была, он ждал первые 6 сообщений. Прикрепленный пробуй. Протестирован.
Цитата("0.4.1.1")
[13:44] <Sephiroth_Lukaw> 2
[13:44] <Sephiroth_Lukaw> 3
[13:44] <Sephiroth_Lukaw> 4
[13:45] <Sephiroth_Lukaw> 5
[13:45] <Sephiroth_Lukaw> 6
[13:45] <Sephiroth_Lukaw> 7
[13:45] <Sephiroth_Lukaw> 8
[13:49] <Sephiroth_Lukaw> 9
[13:49] <Sephiroth_Lukaw> !10
[13:49] <Sephiroth_Lukaw> 11
Цитата("chat.txt")
<HR><Sephiroth_Lukaw> 5<BR><Sephiroth_Lukaw> 6<BR><Sephiroth_Lukaw> 7<BR><Sephiroth_Lukaw> 8<BR><Sephiroth_Lukaw> 9<BR><Sephiroth_Lukaw> 11<HR>
Автор: MEXAHuK 7.12.2008, 11:48
Цитата(Sephiroth_Lukaw @ 7.12.2008, 13:44)
Тама логика просто немного не правильная была, он ждал первые 6 сообщений. Прикрепленный пробуй. Протестирован.
работает.
<HR> - это тэги?
как время сообщения засунуть?
Автор: Sephiroth_Lukaw 7.12.2008, 11:51
Конечно теги)).
P.S.
Код
table.insert (tLog, os.date("[20%y-%m-%d %H:%M:%S] ").."<"..tUser.sNick.."> "..sMsg)
offtop: Я есть ушёл.
Автор: Setuper 7.12.2008, 13:24
20%y - это пишется так %Y