Версия для печати темы
MyDC.ru _ Готовые скрипты для PtokaX _ История Чата + Антирекламма
Автор: rus.region78 28.6.2008, 18:19
Хороший скриптик, частично перевёл, но думаю нужно исправить. В него можно добавить и антимат... (API2)
Автор: mariner 20.7.2008, 1:49
Сбоит он вот так:
Код
J:\PtokaX\scripts\Chat_History_5.1_newapi.lua:156: attempt to index a nil value
Собственно строка:
Код
local op = ProfMan.GetProfile(user.iProfile).tProfilePermissions.bIsOP
профили у меня на хабе:
Код
Profiles = {
[-1] = {1,"Unregistered User"},
[0] = {1,"Owner"},
[1] = {1,"NetFounder"},
[2] = {1,"Master"},
[3] = {1,"SuperOperator"},
[4] = {1,"Operator"},
[5] = {1,"KVIP"},
[6] = {1,"Vip"},
[7] = {1,"Registered User"},
},
Собственно, думаю надо переписать так, чтобы оно проверяло, что профиль юзера меньше 6 и не равен -1
Автор: mariner 20.7.2008, 1:55
Вот мое исправление:
Код
local op = user.iProfile
if (op < 6) and (op > -1) and ChkAd(data) and Cfg.AaBlock > 0 then
И еще один баг:
Цитата
258] 07/20/08 03:32a <St.MegaFon> какие все умные
Нету открывающей квадратной скобки. Проблема в строке:
Код
str = str.."\r\n "..string.format("%"..string.len(#Cfg.Chat).."s",i).."] "..v[2].." "..v[3].." "..v[4]
А с исправлением стало так:
Код
str = str.."\r\n ["..string.format("%"..string.len(#Cfg.Chat).."s",i).."] "..v[2].." "..v[3].." "..v[4]
Автор: dimetrius 21.7.2008, 10:16
Цитата(Setuper @ 20.7.2008, 23:45)
прошу убрать этот скрипт!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
логировать лички не есть хорошо!!!!!!!!! на то она и личка !!!!!!!!!!!!!!!! >:(
вырвать руки таким скриптописателям!!!!!
Может я мало его посмотрел, но что-то не увидел там функцию логирования личек!
Автор: dimetrius 21.7.2008, 11:56
Цитата(Setuper @ 21.7.2008, 11:11)
Попытайся узреть!!!
Или запусти скрипт и проверь
Читаю описание скрипта:
Код
Logs Main Chat and provides chat history
in private message at user connect.
-Provides manual history command
-Provides delete message command
-Provides delete all messages command
-Provides history by days command
-Provides chat history help command
-Provides context menu [right click]
-Optional max history entries
-Optional number of messages sent at connect
-Optional exclude pm at login per user
Что говорит о том что скрипт логирует основной чат и отсылает в личку историю, когда юзер конектится!
Читаем дальше команды:
Код
Command Description
+delchat Delete Single Chat Entry
+history Get Chat History
+togglehistory Toggle Chat History
+dayhistory Chat History By Days
+chathelp Chat History Help
+delete Delete Chat History
Где здесь есть ПОСМОТРЕТЬ ИСТОРИЮ ЛИЧКИ?
Вот скриншот:
Как здесь посмотреть историю лички?
Автор: Setuper 21.7.2008, 12:33
команда +history - команда просмотра лога
Автор: dimetrius 21.7.2008, 13:03
Честно, у меня всё нормально!
вот скрин, обрати внимание на время!
Тем более эта команда доступна для использования всем профилям! ТОлку Mutor'у делать такие скрипты!? Чтоб все читали лички всех?
Автор: Setuper 21.7.2008, 13:19
сори я был не прав, в этом скрипте действительно все в порядке.
приношу свои извинения. у меня чуть другой скрипт
Автор: dimetrius 21.7.2008, 13:26
да, все мы иногда уверены на 100%, а потом... упс
Автор: mariner 21.7.2008, 14:05
Вот 203я строка.
Код
ToArrival = ChatArrival
И вы еще говорите, что он не логит лички? Может я чего-то не понимаю? PS Setuper у меня на хабе заметил логи личек
Строку удалили - все норм стало %-) Но в шапке то висит скрипт, что лички ловит!
Автор: DEM0N 10.8.2008, 13:07
как зделать чтобы кидало не в пм? напишите плис
Автор: Cjay 28.8.2008, 0:49
подправил этот скрипт и полностью перевёл на русский. Тест на птохе 0.4.1.1 пройден удачно
Антиреклама отключена, кому надо включите.
Ловите
Автор: Cjay 28.8.2008, 16:55
Цитата(DEM0N @ 10.8.2008, 17:07)
как зделать чтобы кидало не в пм? напишите плис
замени в скрипте строку:
Код
Core.SendPmToUser(user,Cfg.Bot,add..GetChat(Cfg.History).."|")
на:
Код
Core.SendToUser(user,"<"..Cfg.Bot.."> "..add..GetChat(Cfg.History).."|")
и будет тебе счастье
Автор: Andersen 3.11.2008, 12:58
Цитата(Cjay @ 28.8.2008, 0:49)
подправил этот скрипт и полностью перевёл на русский. Тест на птохе 0.4.1.1 пройден удачно
Антиреклама отключена, кому надо включите.
Ловите
Спасибо за перевод на птохе 0.4.1.1 работает замечательно, на первоначальном ошибка была...
Автор: Mol 3.11.2008, 13:48
По поводу Антирекламы, можноли изменить скрипт 4тобы сканировало не только 4ат, но и ЛС ?
Автор: Andersen 4.11.2008, 18:38
Цитата(Mol @ 3.11.2008, 13:48)
По поводу Антирекламы, можноли изменить скрипт 4тобы сканировало не только 4ат, но и ЛС ?
Он и сканет по выбору там в настройках есть....
Автор: Serx 12.11.2008, 0:06
Убраны лишние пустые строчки. 10 последних фраз выводятся в чат. отображение времени в 24-часовом формате. Спасибо КОСу
Chat_History.lua ( 14.65 килобайт )
: 223
З.Ы. в историю не записываются сообщения действий (которые написаны с помощью команды /me) можно ли это исправить?
Автор: Scorp86 4.12.2008, 10:31
Народ у меня такой Вопрос. В скриптологии LUA я не шарю: Как чтоб история чата отображалась на хабе в самом внизу. А то скриптов у меня многовасто. А получается что он показывается в самом верху хаба. А хотелось бы чтоб он показывался перед сообщениями... Спс заранее
Автор: Spongebob 4.12.2008, 10:51
подозрительно отношусь к скриптам такого рода...да, есть вещи которые можно для удобства обЪединить...но помоем это не тот случей...но всё равно спс за скрипт)
Автор: Sephiroth_Lukaw 4.12.2008, 10:52
To: Scorp86
Перед выводом информации другими скриптами?. Тогда просто в самый низ его опусти.
Автор: Shadow 6.12.2008, 15:19
Цитата(Serx @ 12.11.2008, 0:06)
Убраны лишние пустые строчки. 10 последних фраз выводятся в чат. отображение времени в 24-часовом формате. Спасибо КОСу
Chat_History.lua ( 14.65 килобайт )
: 223З.Ы. в историю не записываются сообщения действий (которые написаны с помощью команды /me) можно ли это исправить?
не работает
под ptokah 0.4.1.1 , точней работают только команды которые начинаются с + те же команды которые из закладки хаба должны работать не работают ни одна
ну и собственно история в общее окно чата на хабе не появляется
Автор: West 6.12.2008, 16:00
Спасибо
Автор: Goblin 23.1.2009, 6:15
Ищу скрипт, который записывает логи главного чата каждого юзера, т.е. если ник "Имя" написал в чат "привет всем" то тогда файл будет "имя.txt" и там все его слова будут записываться.
Автор: STRELOK 25.1.2009, 18:59
Заметил, после кика юзера и сообщения
Цитата
<STRELOK> is kicking nick because: test
фразы ломаются и не выводятся в чат хаба, а выводятся в строку DC клиента, помогите исправить(
PS: ломается из-за записи в логи сообщения
Цитата
<STRELOK> is kicking nick because: test
, если сообщение стереть, то логи вновь выводятся в гл. чат
Автор: STRELOK 7.2.2009, 7:11
А можно ли сделать так, чтобы номер сообщения не выводился, т.е.:
Цитата
[ 1] [06.02.09] -- [22:05:57] <STRELOK> Message
что бы было так:
Цитата
[06.02.09] -- [22:05:57] <STRELOK> Message
Автор: zer0 7.2.2009, 11:49
[10:44] Синтаксис E:\PtokaX 0.4.1.1\scripts\Chat_History.lua:301: attempt to index local 'handle' (a nil value)
[10:44] Синтаксис E:\PtokaX 0.4.1.1\scripts\Chat_History.lua:228: bad argument #1 to 'ipairs' (table expected, got nil)
как это можно исправить ?
API2 PtokaX 0.4.1.1
(качал с самого первого поста)
Автор: THE STRELOK 7.3.2009, 14:59
Никто не хочет за это браться :( Пытался сам, но не нашёл ничего такого, что надо исправить.
Автор: THE STRELOK 12.3.2009, 20:06
Исправте пожалуйста вот такие ошибки:
Код
:177: attempt to index global 'Cmds' (a nil value)
Код
:301: bad argument #1 to 'pairs' (table expected, got nil)
- эта ошибка вылетает очень часто
PS: Если что, вот мой скрипт лог чата
1. Убрал меню(т.к. считаю что оно не нужно)
2. Убрал нумеровку сообщений
3. Лог в 24-х часовом формате
Кому интересно, юзайте
Автор: Артём 13.3.2009, 1:54
Цитата(Cjay @ 28.8.2008, 17:55)
замени в скрипте строку:
Код
Core.SendPmToUser(user,Cfg.Bot,add..GetChat(Cfg.History).."|")
на:
Код
Core.SendToUser(user,"<"..Cfg.Bot.."> "..add..GetChat(Cfg.History).."|")
и будет тебе счастье
Заменил....но щастья нету...при входе на хаб не показует историю,показует только по запросу,а хотелось бы чтобы при входе...
Автор: THE STRELOK 13.3.2009, 6:32
качай http://mydc.ru/ipb.html?s=&showtopic=107&view=findpost&p=11637, скрипт поправил как смог
Автор: Артём 14.3.2009, 0:52
2THE STRELOKМне нужен с менюшкой,просто чтобы не в ЛС,а в чат отсылало Историю.
Автор: THE STRELOK 22.3.2009, 15:37
Жаль что так никто и не помог :(
По моему мнению, ошибка где то в этой строке:
Код
ChatArrival = function(user, data)
data = data:sub(1,-2)
local _,_,to = data:find("^$To: (%S+) From:")
local _,_,prefix = data:find("%b<> (["..SetMan.GetString(29).."])")
if not prefix and not to then
local op = user.iProfile
if (op < 3) and (op > -1) and ChkAd(data) and Cfg.AaBlock > 0 then
if Cfg.AaReply ~= "" then
Core.SendToUser(user,"<"..Cfg.Bot..">"..Cfg.AaReply:gsub("%(user%)",user.sNick).."|")
end
if Cfg.AaBlock == 2 then
return true
else
return false
end
end
Автор: Setuper 22.3.2009, 18:56
Код
for i,v in ipairs(Cfg.AaTrigs or {}) do
Автор: THE STRELOK 22.3.2009, 19:17
Цитата(Setuper @ 22.3.2009, 19:56)
Код
for i,v in ipairs(Cfg.AaTrigs or {}) do
не помогло =\
Автор: Setuper 22.3.2009, 19:53
что значит не помогло?
это в 305 строке должно помочь
Автор: THE STRELOK 22.3.2009, 20:05
Вставил вот сюда:
Код
ChkAd = function(data)
for i,v in ipairs(Cfg.AaTrigs or {}) do
if data:lower():find(v:lower(),1,1) or data:lower():find("%d+%.%d+%.%d+%.%d+") then
return i
end
end
end
ситуация не изменилась =\. При кике($kick) сообщения выводится в адресную строку клиента
Автор: Setuper 22.3.2009, 20:50
это должно было исправить вот эту ошибку
Код
:301: bad argument #1 to 'pairs' (table expected, got nil)
ошибка
Код
177: attempt to index global 'Cmds' (a nil value)
из-за того, что ты выбросил из скрипта целую глобальную таблицу Cmds
Автор: THE STRELOK 22.3.2009, 21:16
Так то ошибки не мешают работать скрипту , мне просто нужно, чтобы исправилось это:
Цитата
Заметил, после кика юзера и сообщения
<STRELOK> is kicking nick because: test
фразы ломаются и не выводятся в чат хаба, а выводятся в строку DC клиента, помогите исправить(
PS: ломается из-за записи в логи сообщения
<STRELOK> is kicking nick because: test
, если сообщение стереть, то логи вновь выводятся в гл. чат
Автор: BeN 14.4.2009, 18:02
А чтоб просто 10 последних при конекте юзера в чат слались?) без менюшки и прочих наворотов
Автор: IceRoma 31.5.2009, 6:21
Помогите пожалуйста, история ведёться только когда админ пишет или оператор... а всё остальное не логируеться... Выдаёт такую ошибку :160: attempt to compare nil with number.
Автор: NatUraL 4.6.2009, 11:06
такой вопрос.. даже как то странно! у меня этот скрипт работает токо если его вывести на первое место в списке скрипттов в PtokaX, сами понимаете что это приводит к тому что последние сообшения выводятся перед "сообщением от хубы" а это ой как неудобно! кто может подсказать что можно сделать?? или из за чего это вызвано?
Автор: PaN 30.7.2009, 3:23
Кто-нибудь может сделать в этом скрипте так, чтобы функция приема лога 20 последних сообщений была по умолчанию отключена и тем кому надо пользоваться функцией, в меню бы её включали!?
Автор: alcorp 29.8.2009, 20:02
Стрелок:
/etc/ptokax/scripts/chatlogs.lua:276: bad argument #1 to 'pairs' (table expected, got nil)
/etc/ptokax/scripts/chatlogs.lua:152: attempt to index global 'Cmds' (a nil value)
Для исправления - берем из оригинальной версии, начиная со строки 345 и до конца файла:
Код
Cmds = {
togglehistory = function(user,data)
if user then
local status,result = "убраны из","Теперь вы будете "..
"получать истрию чата при заходе на хаб."
local Exclude = CheckEx(user)
if not Exclude then
table.insert(Cfg.Exclude,user.sNick)
status,result = "добавлены в","Больше вы "..
"не будете получать историю чата при входе."
else
table.remove(Cfg.Exclude,Exclude)
end
SaveToFile(Cfg.UserFile,Cfg.Exclude,"Cfg.Exclude")
return "Вы были "..status.." таблицы исключений. "..result
else
return "Активация сохранения истории чата","",""
end
end,
history = function(user,data)
local ChatLines = Cfg.MaxChat
if user then
local _,_,lines = data:find("%b<> %p%w+ (%d+)")
if not lines then
lines = ChatLines
else
lines = tonumber(lines)
end
return GetChat(lines)
else
return "Получить историю чата",
" %[line:# Число линий для вывода (макс) "..ChatLines.."]",
" %[line:# Число линий для вывода (макс) "..ChatLines.."]"
end
end,
dayhistory = function(user,data)
local today = tonumber(os.date("%Y") + os.date("%j"))
if user then
local _,_,days = data:find("%b<> %p%w+ (%d+)")
if days then
local past = today - tonumber(days)
OnError(past)
local str = "\r\n\r\n <"..string.rep("?",70)..
"[ Last ( "..days.." ) days of chat ]??????????>\r\n"
for i,v in ipairs(Cfg.Chat)do
if v[1] > past then
str = str.."\r\n ["..i.."] "..v[2].." "..v[3].." "..v[4]
end
end
str = str.."\r\n\r\n <"..string.rep("?",70).."[ Конец истории чата ]"..
string.rep("?",string.len(days)).."??????????>\r\n\r\n"
return str
else
return "You must specify how many days"
end
else
return "История чата по дням",
" %[line:За сколько дней показать историю?]",
" %[line:За сколько дней показать историю?]"
end
end,
delete = function(user,data)
local ChatLines = #Cfg.Chat
if user then
if user.iProfile == Cfg.AdminProf then
local _,_,lines = data:find("%b<> %p%w+ (%d+)")
if not lines then
lines = ChatLines
else
lines = tonumber(lines)
end
return DelChat(lines)
else
return "Sorry "..user.sNick..", this command is for "..
ProfMan.GetProfile(Cfg.AdminProf).sProfileName.."'s only."
end
else
return "Стереть историю чата",
" %[line:# линий **ноль = все ("..ChatLines..") сообщения ]",
" %[line:# линий **ноль = все ("..ChatLines..") сообщения ]"
end
end,
delchat = function(user,data)
local ChatLines = #Cfg.Chat
if user then
if user.iProfile == Cfg.AdminProf then
local _,_,line = data:find("%b<> %p%w+ (%d+)")
if line then
line = tonumber(line)
if Cfg.Chat[line] then
local str = Cfg.Chat[line][4]
table.remove(Cfg.Chat,line)
SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat")
return "Линии истории чата "..line.." были удалены.\r\n"..
"Удаленная история: "..string.format("%q",str)
else
return line.." не верный ввод."..GetChat(Cfg.History)
end
else
return "Вы должны указать что нужно удалить."
end
else
return "Прости "..user.sNick..", эта команда только для "..
ProfMan.GetProfile(Cfg.AdminProf).sProfileName.."пользователей."
end
else
return "Удалить строку истории",
" %[line:Какую трем?]",
" %[line:Какую трем?]"
end
end,
chathelp = function(user,data,to)
if user then
local reply = "Chat History Help\n\n\tCommand\t\tDescription\r\n"..
"\t"..string.rep("?",40).."\r\n"
for i,v in pairs(Cmds) do
local desc,args = Cmds[i]()
reply = reply.."\t"..Cfg.Pfx..string.format("%-15s",i).."\t"..desc.."\r\n"
end
return reply.."\n\t"..string.rep("?",40).."\r\n\r\n"
else
return "Помощь по истории чата","",""
end
end,
}
И добавляем в конец файла версии от СТРЕЛКА.
Автор: ClubViper 1.9.2009, 0:37
Вроде сам всё настроил, единственная просьба, подскажите плиз как сделать чтоб полная история выводилась в ЛС а не в чат?
Автор: Артём 8.9.2009, 23:48
Код
Core.SendPmToUser
Автор: ClubViper 9.9.2009, 17:30
Цитата(Артём @ 9.9.2009, 0:48)
не катит, ошибку пишет
Автор: ClubViper 10.9.2009, 14:53
Итак выкладываю полностью рабочую версию:
- История чата теперь присылается в личку (отсутствие прятания хистори в строку статуса клиента)
- Исправлены некоторые неточности в переводе
Chat_History__clubviper_edition_.lua ( 16.34 килобайт )
: 113
Автор: Rapid_82 9.12.2009, 2:05
Всем привет.
Перехожу с PtokaX 0.3.6.0 на Ptokax 0.4.1.1. Установил скрипт хистори. Всё работает. Спасибо.
Только как бы убрать из юзерлиста бота История, не удаляя имя бота из скрипта, так как тогда в чате будет отображаться <>, вместо <История>?
Автор: Alexey 9.12.2009, 4:25
Закомментируй или удали строку, содержащую функцию Core.RegBot().
Автор: Rapid_82 9.12.2009, 5:34
спасибо =)
Автор: Panda 13.2.2010, 15:23
Цитата(ClubViper @ 10.9.2009, 15:53)
Итак выкладываю полностью рабочую версию:
- История чата теперь присылается в личку (отсутствие прятания хистори в строку статуса клиента)
- Исправлены некоторые неточности в переводе
Chat_History__clubviper_edition_.lua ( 16.34 килобайт )
: 113Перерыл весь форум в поисках скриптов истории, перепробовал наверное все, уже запутался в них ...
Собственно теперь появилась вот такая проблема, не хочет ни один скрипт работать под (с историей чата) Ptokax 0.4.1.2 (Ось Win7? пробовал и на ХР, такая же фигня). Скрипт как таковой запускается и ошибок в синтаксисе нет, но он не ведет история (не добавляет в базу сообщения). Могу предположить, что это из-за того, что используется Lua 5.1.4
Может кто поковырять и потестить на ptokax 0.4.1.2 данный скрипт?
Автор: Wariner 13.2.2010, 17:06
могу предположить что какой то скрипт стоящий выше истории чата блокирует сообщение и до истории оно не доходит))) пробуем менять местами или отключать скрипты!
Автор: Panda 13.2.2010, 17:26
Цитата(Wariner @ 13.2.2010, 18:06)
могу предположить что какой то скрипт стоящий выше истории чата блокирует сообщение и до истории оно не доходит))) пробуем менять местами или отключать скрипты!
Тестировался на чистом хабе где был только один скрипт (история чата)