Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Готовые скрипты для PtokaX _ История Чата + Антирекламма

Автор: rus.region78 28.6.2008, 18:19

Хороший скриптик, частично перевёл, но думаю нужно исправить. В него можно добавить и антимат... (API2)

 Chat_History.lua ( 14.51 килобайт ) : 637
 

Автор: 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

Где здесь есть ПОСМОТРЕТЬ ИСТОРИЮ ЛИЧКИ?

Вот скриншот:

Как здесь посмотреть историю лички? confident.gif

Автор: 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

big_smile.gif да, все мы иногда уверены на 100%, а потом... упс

Автор: mariner 21.7.2008, 14:05

Вот 203я строка.

Код
ToArrival = ChatArrival

И вы еще говорите, что он не логит лички? Может я чего-то не понимаю? PS Setuper у меня на хабе заметил логи личек big_smile.gif Строку удалили - все норм стало %-) Но в шапке то висит скрипт, что лички ловит!

Автор: DEM0N 10.8.2008, 13:07

как зделать чтобы кидало не в пм? напишите плис

Автор: Cjay 28.8.2008, 0:49

подправил этот скрипт и полностью перевёл на русский. Тест на птохе 0.4.1.1 пройден удачно
Антиреклама отключена, кому надо включите.
Ловите

 Chat_History.lua ( 14.81 килобайт ) : 397
 

Автор: 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-часовом формате. Спасибо КОСу big_smile.gif

 Chat_History.lua ( 14.65 килобайт ) : 223


З.Ы. в историю не записываются сообщения действий (которые написаны с помощью команды /me) можно ли это исправить?

Автор: Scorp86 4.12.2008, 10:31

Народ у меня такой Вопрос. В скриптологии LUA я не шарю: Как чтоб история чата отображалась на хабе в самом внизу. А то скриптов у меня многовасто. А получается что он показывается в самом верху хаба. А хотелось бы чтоб он показывался перед сообщениями... Спс заранее

Автор: Spongebob 4.12.2008, 10:51

подозрительно отношусь к скриптам такого рода...да, есть вещи которые можно для удобства обЪединить...но помоем это не тот случей...но всё равно спс за скрипт) victory.gif

Автор: Sephiroth_Lukaw 4.12.2008, 10:52

To: Scorp86
Перед выводом информации другими скриптами?. Тогда просто в самый низ его опусти.

Автор: Shadow 6.12.2008, 15:19

Цитата(Serx @ 12.11.2008, 0:06) *
Убраны лишние пустые строчки. 10 последних фраз выводятся в чат. отображение времени в 24-часовом формате. Спасибо КОСу big_smile.gif

 Chat_History.lua ( 14.65 килобайт ) : 223


З.Ы. в историю не записываются сообщения действий (которые написаны с помощью команды /me) можно ли это исправить?



не работает big_smile.gif под ptokah 0.4.1.1 , точней работают только команды которые начинаются с + те же команды которые из закладки хаба должны работать не работают ни одна


ну и собственно история в общее окно чата на хабе не появляется big_smile.gif

Автор: 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
(качал с самого первого поста)
big_smile.gif

Автор: 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: Если что, вот мой скрипт лог чата

Кому интересно, юзайте big_smile.gif

 chatlogs.lua ( 9.01 килобайт ) : 83
 

Автор: Артём 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).."|")

и будет тебе счастье

Заменил....но щастья нету...при входе на хаб не показует историю,показует только по запросу,а хотелось бы чтобы при входе... big_smile.gif

Автор: 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

Так то ошибки не мешают работать скрипту big_smile.gif , мне просто нужно, чтобы исправилось это:

Цитата
Заметил, после кика юзера и сообщения

<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.

 ИсторияЧата.lua ( 14.64 килобайт ) : 23
 

Автор: 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) *
Код
Core.SendPmToUser

не катит, ошибку пишет

Автор: 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 данный скрипт? beat_plaster.gif

Автор: Wariner 13.2.2010, 17:06

могу предположить что какой то скрипт стоящий выше истории чата блокирует сообщение и до истории оно не доходит))) пробуем менять местами или отключать скрипты!

Автор: Panda 13.2.2010, 17:26

Цитата(Wariner @ 13.2.2010, 18:06) *
могу предположить что какой то скрипт стоящий выше истории чата блокирует сообщение и до истории оно не доходит))) пробуем менять местами или отключать скрипты!

Тестировался на чистом хабе где был только один скрипт (история чата)