Chase_cmd, API2 | Показывает команды используемые юзерами |
Здравствуйте, гость ( Вход | Регистрация )
Chase_cmd, API2 | Показывает команды используемые юзерами |
23.3.2009, 23:39
Сообщение
#1
|
|
Я коварный Санта Клаус Группа: Пользователи Сообщений: 523 Регистрация: 4.11.2008 Из: Саратов Пользователь №: 985 Спасибо сказали: 54 раза |
Chase_Cmd_v.1.0.
Перенес в готовые скрипты т.к. никто не захотел больше. На авторство никак не претендую. Скрипт перехватывает команды которые используют юзеры на хабе. Информация приходит к тому чей ник прописан в скрипте. Перехватывать команды которые посылают юзеры удобно вот по какой причине: 1. Администрация видит если юзер пытается отправить запрещенные ему команды (или неизвестные) 2. Ну и конечно же чтобы в какой-то мере представлять какие скрипты нравятся пользователям. Api 2
Прикрепленные файлы
|
|
|
25.3.2009, 11:56
Сообщение
#2
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
API какой?
|
|
|
25.3.2009, 12:11
Сообщение
#3
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Автору просьба оформить тему подобающим образом.
Посмотри правила оформления тем! |
|
|
24.1.2010, 17:14
Сообщение
#4
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
А за что отвечает вот эта часть функции?
Код else local hFile = io.open ("log.txt" , "a+") if hFile then hFile:write("Послана команда хабу: "..sData.."\r\n") hFile:close() end Чё то ни как не врублюсь... |
|
|
24.1.2010, 19:26
Сообщение
#5
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
этот кусок отвечает за запись найденной команды в лог.
|
|
|
24.1.2010, 21:06
Сообщение
#6
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
этот кусок отвечает за запись найденной команды в лог. Тогда вопрос такой... Где этот лог? Я лично ничего не обнаружил =) Может надо добавить строчку типа... hFile = path.."log.txt" Если я туплю пните меня! P.S. Файл log.txt в директории scripts создавать пробовал, но он оставался пустым. Скрипт стоит в самом верху, т.к. иначе он не отлавливает команды скриптов, которые стоят выше него. Идеи? |
|
|
24.1.2010, 21:17
Сообщение
#7
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
посмотреть этот файл в папке с экзешником птоки))))
а вообще немного подредактировал))) вот: Раскрывающийся текст Код local sBot = SetMan.GetString(21) -- имя бота local sAdminNick = "Otshelnik-Fм" -- пишем ник хозяина хаба local sFile = Core.GetPtokaXPath().."scripts/Hub files/CmdLog.txt" function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([%!%+%-/%*]%S+)" if sCmd and tUser.sNick~=sAdminNick then if Core.GetUser(sAdminNick) then Core.SendPmToNick(sAdminNick,sBot,"Послана команда хабу: "..sData) else local hFile = io.open (sFile , "a+") if hFile then hFile:write("Послана команда хабу: "..sData.."\r\n") hFile:close() end end end end ToArrival=ChatArrival |
|
|
24.1.2010, 21:27
Сообщение
#8
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Не не пишет лог
Хоть убей И ошибок нет ни каких P.S. Рядом exe-шником тоже ничего |
|
|
24.1.2010, 21:33
Сообщение
#9
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
мда...
поясняю суть скрипта. он сканирует каждое написанное в чат сообщение. при нахождении команды он смотрит если админ(ник которого прописан в начале скррипта) на хабе, то посылает ему сообщение, если нет, то пишет в лог. PS: папочку прописаную в скрипте создать наверно забыл? |
|
|
24.1.2010, 21:51
Сообщение
#10
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Цитата PS: папочку прописаную в скрипте создать наверно забыл? Нет не забыл даже файл создал =) Вообщем действительно, если Админ отсутствует то пишет в лог А правильно я переправил скрипт что бы он и туда и туда вообщем информировал? Тыкай =)) Код local sBot = SetMan.GetString(21) -- Ник Бота local sAdminNick = "DrakonSP" -- Ник Админа local sFile = Core.GetPtokaXPath().."scripts/Chase_Cmd/CmdLog.txt" -- Путь к файлу лога function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([%!%+%-/%*]%S+)" if sCmd and tUser.sNick~=sAdminNick then if Core.GetUser(sAdminNick) then Core.SendToNick(sAdminNick,"<"..sBot.."> Послана команда хабу: "..sData) end local hFile = io.open (sFile , "a+") if hFile then hFile:write("Послана команда хабу: "..sData.."\r\n") hFile:close() end end end ToArrival=ChatArrival И какой код времени? Хочу что бы ещё время в лог закидывало... |
|
|
24.1.2010, 22:19
Сообщение
#11
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
Код os.date("%Y-%m-%d %H:%M:%S") Код %Y - год
%m - месяц %d - день %H - часы %M - минуты %S - секунды |
|
|
24.1.2010, 22:40
Сообщение
#12
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
|
|
|
16.2.2010, 11:21
Сообщение
#13
|
|
Продвинутый участник Группа: Пользователи Сообщений: 162 Регистрация: 19.8.2009 Из: Москва Пользователь №: 4 201 Спасибо сказали: 24 раза |
|
|
|
16.2.2010, 20:02
Сообщение
#14
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
Раскрывающийся текст Код local sBot = SetMan.GetString(21) -- Ник Бота local sAdminNick = "DrakonSP" -- Ник Админа local sFile = Core.GetPtokaXPath().."scripts/Chase_Cmd/CmdLog.txt" -- Путь к файлу лога function ChatArrival(tUser,sData) local sData = sData:sub(1,-2) local sCmd = sData:match"%b<>%s+([%+]%S+)" if sCmd and tUser.sNick~=sAdminNick then if Core.GetUser(sAdminNick) then Core.SendToNick(sAdminNick,"<"..sBot.."> *** Послана команда хабу: "..sData) end local hFile = io.open (sFile , "a+") if hFile then hFile:write("["..os.date("%d.%m.%Y в %H:%M").."] "..sData.."\n") hFile:close() end end end ToArrival=ChatArrival Так добавить меню и действие по команде Раскрывающийся текст Код local Prefix = "!" -- Префикс команды local tProfile = { -- Профили, которым доступно меню [0] = 1, -- Master [1] = 1, -- Operator [2] = 0, -- Vip [3] = 0, -- Reg [-1] = 0, -- UnReg } function UserConnected(tUser) if tProfile[tUser.iProfile] == 1 then Core.SendToUser(tUser, "$UserCommand 1 3 Команды хабу\\Лог$<%[mynick]> "..Prefix.."cmdlog|") end OpConnected = UserConnected RegConnected = UserConnected function ChatArrival(tUser, sData) local cmd = sData:match"%b<>%s+(%S+).*|" if cmd == ""..Prefix.."cmdlog" then Core.SendToUser(tUser,"<"..sBot.."> "..содержимое_текстового_файла) return true end end А вот как вывести содержимое файла я ещё пока незнаю =)) Может знатоки помогут =)) |
|
|
16.2.2010, 22:58
Сообщение
#15
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Вот, слепил из того что выше.
Прикрепленные файлы
|
|
|
17.2.2010, 2:20
Сообщение
#16
|
|
Продвинутый участник Группа: Пользователи Сообщений: 162 Регистрация: 19.8.2009 Из: Москва Пользователь №: 4 201 Спасибо сказали: 24 раза |
|
|
|
17.2.2010, 21:26
Сообщение
#17
|
|
Продвинутый участник Группа: Пользователи Сообщений: 107 Регистрация: 23.11.2008 Из: Сергиев Посад Пользователь №: 1 178 Спасибо сказали: 9 раз |
А как настроить так что бы он реагировал только на префикс +
Я не использую другие префиксы и хотелось бы избавиться от всяких не нужных. Он даже реагирует на =)) (смайл) |
|
|
17.2.2010, 22:01
Сообщение
#18
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Это уже моя вольность, простите, привычка. Чтобы сделать только + замени следующее
Код local sCmd = sData:match"^%b<>%s+%p(%S+)" наКод local sCmd = sData:match"^%b<>%s+%+(%S+)"
|
|
|
18.2.2010, 0:30
Сообщение
#19
|
|
Продвинутый участник Группа: Пользователи Сообщений: 162 Регистрация: 19.8.2009 Из: Москва Пользователь №: 4 201 Спасибо сказали: 24 раза |
Вот, слепил из того что выше. Думал с ограничением объема файла справлюсь сам, открыл скрипт История чата, посмотреть как там реализовано, оказалось все не так просто для меня... Таким образом опять пришел за помощью: - ограничить размер файла, если возможно писать отдельный файл на каждый день - и из меню выводить определенное количество строк...идеально по дате. |
|
|
19.2.2010, 12:17
Сообщение
#20
|
|
Продвинутый участник Группа: Пользователи Сообщений: 162 Регистрация: 19.8.2009 Из: Москва Пользователь №: 4 201 Спасибо сказали: 24 раза |
Это уже моя вольность, простите, привычка. Чтобы сделать только + замени следующее Код local sCmd = sData:match"^%b<>%s+%p(%S+)" наКод local sCmd = sData:match"^%b<>%s+%+(%S+)" Nickolya, а где найти таблицу значений переменных типа - %s %p ...? Ну вообще, если не сложно, систематизированный (или не очень) перечень ссылок по луа. Спасибо. |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
От: Chase_cmd От темы с ID: 1648 |
0 | степашка | 3 881 | 2.5.2009, 12:27 Посл. сообщение: степашка |
|
Сейчас: 27.11.2024, 1:58 |