Автор: Alexey 10.2.2016, 17:35
Название скрипта: ChatHistorySQLite
Версия скрипта: 1.2 (2016-02-10)
Хабсофт: PtokaX 0.4.1.1 и новее (под более ранними не проверялся).
Версия Lua: 5.1/5.3
Зависимости: библиотеки http://mydc.ru/topic1468.html (lua-sql-sqlite3), http://mydc.ru/topic5738.html (lua-iconv)
Автор: Alexey
Описание: Скрипт сохраняет сообщения чата в базу данных и показывает сохранённые сообщения по команде и при входе в хаб. За основу взят скрипт http://mydc.ru/topic5619.html.
Возможности:
- Может хранить сотни тысяч сообщений чата.
- При этом не требует установки и запуска системы управления базами данных.
- Определение сообщений, ошибочно отправленных в чат в кодировке UTF-8 и сохранение их в читаемом виде.
- Команды: поиска сообщений по нику, IP, времени написания или фразе в тексте, просмотра топа пользователей по количеству сообщений, просмотра истории чата, удаления сообщений по образцу, удаления сообщений по нику автора, удаления сообщений по номеру, полной очистки истории чата и справки по командам.
- Меню для команд.
- Возможность логирования сообщений от третьего лица (команд +me).
- Возможность при сохранении обреза́ть длинные сообщения (при этом не обрезает сообщения с ссылками).
- Не сохраняет сообщения кика (is kicking Spamer because: spam).
- Не сохраняет сообщения, похожие на команды.
- Возможность установить корректировку времени сохраняемых сообщений (если время на сервере отличается от реального).
- Сохранение в файл при выключении скрипта (или хаба) и по таймеру (по умолчанию, каждую минуту, если были новые сообщения).
- Возможность использовать разный язык сообщений скрипта в зависимости от страны пользователя (по IP).
Ограничения:- Так как для оригинальной версии PtokaX под Windows нет сборки LuaSQL SQLite3, то скрипт не сможет работать в таком окружении.
- Команды удаления сообщений и очистки истории удаляют сообщения только в Луа-таблице и не затрагивают сообщения в базе данных.
ch_sqlite.lua ( 42.5 килобайт )
: 53
Автор: dimetro 16.2.2016, 20:56
Так как под Windows нет сборки LuaSQL SQLite3, то скрипт не сможет работать под этой ОС.
на Ptokax mod 9 win 32
CODE
[19:52:23] *** Подключена библиотека.
[19:52:23] *** Драйвер базы данных LuaSQL 2.1.0 загружен успешно.
[19:52:23] *** Версия SQLite: 3.3.17.
История чата ведётся с nil. В ней сохранено 0 сообщений от 0 ников с 0 IP-адресов.
[19:52:42 | 127.0.0.1 | [loc] Находится на хабе] <Dimon> ха ха
[19:52:57] <PtokaX> Последние 1 [+0] сообщений, отправленных от ников, удовлетворяющих маске 'dimon':
127.0.0.1 [2016-02-16 19:52:42] <Dimon> ха ха
Работает и на винде но с ошибкой при перезапуске скрипта [20:06:18] <OpChat> ...\hubs_scripts\0.5.0.1_mod9_x86\scripts\ch_sqlite.lua:538: LuaSQL: there are open cursors
Автор: Alexey 16.2.2016, 22:20
Цитата(dimetro @ 16.2.2016, 20:56)
Работает и на винде
Это просто праздник какой-то! Порой приятно ошибиться
Цитата(dimetro @ 16.2.2016, 20:56)
но с ошибкой при перезапуске скрипта [20:06:18] <OpChat> ...\hubs_scripts\0.5.0.1_mod9_x86\scripts\ch_sqlite.lua:538: LuaSQL: there are open cursors
Я тестировал под Линуксом, там ошибка не воспроизводится. Проверять работу под Windows временно(?) не имею возможности. Есть вероятность, что эта ошибка не скажется на работе скрипта. Продолжай наблюдения.
Автор: dimetro 16.2.2016, 23:30
На птоках 0.5.0.3 и выше с библиотеками под эти версии не получилось запустить.
на птоках мод 9 вроде Ок полет.
Автор: KCAHDEP 29.8.2017, 19:28
ptokax 0.5.2.2 с lua5.3 ругаеццо на
Код
return self:format(unpack(t))
заменил на
Код
return self:format(table.unpack(t))
вроде пашид
Код
[19:26:07] <PtokaX> Error /etc/ptokax/scripts/ch_sqlite.lua:1148: attempt to call a nil value (global 'unpack')
stack traceback:
/etc/ptokax/scripts/ch_sqlite.lua:1148: in function 'string.dbformat'
/etc/ptokax/scripts/ch_sqlite.lua:506: in function 'OnStartup'
[19:26:07] <PtokaX> *** KCAHDEP перезапустил скрипт: ch_sqlite.lua.
[19:26:07] *** Подключена библиотека iconv 7.
[19:26:07] *** Драйвер базы данных LuaSQL 2.3.5 (for Lua 5.3) загружен успешно.
Автор: =Alexandr= 29.8.2017, 19:43
Alexey, в историю чата при выводе можно же добавить IP и страну ?
[17:04:41] <#[Robot]> Последние 3 сообщений из истории общего чата:
16:01 29/08 l 185.204.0.205 l ??<CyberGhost404> :-)
16:03 29/08 l 31.23.183.105 l RU<KCAHDEP> :lol: почистил называется. нет бы нормальный скрипт поставить http://mydc.ru/topic5773.html
16:04 29/08 l 185.204.0.205 l ??<CyberGhost404> поставю позже
сделать вывод типа такого ?