myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> ChatLogsMySQL, API2 | Лог главного чата

Рейтинг 5 V
Теги
Wariner
сообщение 21.4.2009, 20:28
Сообщение #181


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




Название скрипта: ChatLogsMySQL
Версия скрипта: 1.0(финальная версия)
Версия API: API 2
Автор: Wariner
Особенности: работа с MySQL
Описание скрипта:

v 1.0
- Исправленны некоторые недочёты.

v 1.0 RC5
- Добавлен просмотр сообщений по IP
- Упорядочено тело скрипта
-Добавлена корректировка времени
-Добавленно шаблонность сообщений
-Добавлен реконект к БД
-Исправленно пару мелочей

v 1.0 RC4
- Поправленно несколько мелочей

v 1.0 RC3
- В настройку вынесено меню
- Добавлена возможность логировать команду "me" (опционально)
- Исправлено логирование смайлов

v 1.0 RC2
- Просмотр сообщений ника( за сегодня, за дату или за период )
- Просмотр общего лога( за период )
- Таблица исключений записи в лог
- Запись ошибок скрипта в таблицу + контроль неправильных запросов
- Теперь не логируются команды
- Исправлено пару мелочей

v 1.0 RC1
- Сохраняет в БД сообщение юзера время и дату его написания
- Можно посмотреть лог за число
- Опционально сделана посылка в чат n последних сообщений из БД

PS: БД надо создавать вручную! Таблицы создадутся сами!
PPS: Принимаются предложения по увеличению функционала скрипта!
Прикрепленные файлы
Прикрепленный файл  ChatLogsMySQL.lua ( 16.31 килобайт ) Кол-во скачиваний: 454
 
Go to the top of the page
+Quote Post
10 страниц V  « < 8 9 10  
Начать новую тему
Ответов
Setuper
сообщение 12.4.2010, 20:08
Сообщение #182


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Подобного рода ошибка может быть только в том случае, если в имени столбца содержится знак процента. По своей сути скрипт вроде как не создаёт таблиц со знаками процента в именах столбцов.

Попробуй вот такое решение:
Код
sMsg = sMsg:gsub(i, v:gsub("%%", "%%%%"))
Go to the top of the page
+Quote Post
whuru
сообщение 12.4.2010, 20:13
Сообщение #183


Участник
**

Группа: Пользователи
Сообщений: 40
Регистрация: 22.3.2009
Пользователь №: 2 696
Спасибо сказали: 0 раз




Так он не сохраняет в базу, вот что выводит:

Цитата
====================================================================================================
id Time Date Nick(IP) Msg
====================================================================================================
id 21:17:23 12.04.2010 Nick(IP) Msg
====================================================================================================
Go to the top of the page
+Quote Post
Setuper
сообщение 12.4.2010, 20:36
Сообщение #184


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
v = v:gsub("%%", "%%%%")
sMsg = sMsg:gsub(i, v)


или просто вот так:
Код
sMsg = sMsg:gsub(i, (v:gsub("%%", "%%%%")))


Спасибо сказали:
Go to the top of the page
+Quote Post
whuru
сообщение 18.4.2010, 21:39
Сообщение #185


Участник
**

Группа: Пользователи
Сообщений: 40
Регистрация: 22.3.2009
Пользователь №: 2 696
Спасибо сказали: 0 раз




Спасибо, помогло. Несколько суток работает не падает. Может имеет смысл обновить первый пост? Или в каждом конкретном случае по-разному будет написана эта строка?
Go to the top of the page
+Quote Post
_Deagle_Factory_
сообщение 1.5.2010, 20:53
Сообщение #186


Начинающий
*

Группа: Пользователи
Сообщений: 29
Регистрация: 12.3.2010
Пользователь №: 6 335
Спасибо сказали: 1 раз




У меня выходит ошибка

Синтаксис...Артем\\Рабочий стол\\птока\\scripts\\ChatlogsMYSQL.lua67:Error connecting to database. MYSQL:Acces denied for user 'root@localhost' ( using pasword YES )
Go to the top of the page
+Quote Post
Saymon21
сообщение 1.5.2010, 21:00
Сообщение #187


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Проверь правильно ли ввёл пароль.
Go to the top of the page
+Quote Post
Санёк
сообщение 11.6.2010, 20:00
Сообщение #188


Активный участник
***

Группа: Пользователи
Сообщений: 83
Регистрация: 14.3.2009
Из: Belarus', Minsk
Пользователь №: 2 593
Спасибо сказали: 0 раз




Спасибо, отличный скрипт!

Единственное, вопрос.
Как сделать отступ после последней выведенной строки. Если кто-то приходит или уходит сообщение об этом пишется без переноса в последней строке истории чата.

- [2010-06-11] [11:29:31] <Ник> Последнее сообщение в истрии чата [11:30:48] *** Ушёл: Ник

Крайне нестабильный скрипт какой-то. Пересоздал БД подчитсую, перезапустил скрипт. Теперь вроде всё ОК!
Go to the top of the page
+Quote Post
Санёк
сообщение 13.6.2010, 14:44
Сообщение #189


Активный участник
***

Группа: Пользователи
Сообщений: 83
Регистрация: 14.3.2009
Из: Belarus', Minsk
Пользователь №: 2 593
Спасибо сказали: 0 раз




Скрипт очень уязвим!
У меня он ломается от смайлов клиента.
Когда пользователь пишет сообщение с 1 смайлом и скрипт в последующем выводит историю только до этого сообщения без переноса следующей строки, о чём я расписывал. Новые сообщения пишутся в БД, но выводить он будет всё равно до этого сообщения со смалом. Если удалить эту мессагу с БД, то скрипт продолжает нормально функционировать дальше, выводить все сообщения.
Смайлы имееют код:
\001

Как поправить ?
Go to the top of the page
+Quote Post
Serx
сообщение 15.6.2010, 19:56
Сообщение #190


Продвинутый участник
****

Группа: Пользователи
Сообщений: 153
Регистрация: 21.9.2008
Из: Челябинск
Пользователь №: 574
Спасибо сказали: 54 раза




Цитата(Cjay @ 7.4.2010, 0:39) *
хм где-то косячек чтоли...почему-то не залогировалось сообщение с виду вроде обычное...
там кроме букв разве что были =) - и \.
вот \ как раз на конце предложения и в середине было.. в общем я написал пару слов поставил смайл и кинул адрес сайта в чат. в итоге сообщения в логе нет

нашел причину, действительно, если в конце сообщения поставить \ то оно не логируется, как поправить это?
вывод лога чата тоже как-то криво выводится...шапка таблицы очень сдвинута...

вообще не логируется символ \
если он стоит в начале или середине сообщения то всё более или менее хорошо, в логе просто нет этого символа, всё остальное сообщение на месте. если же он стоит последним в сообщении, то в логе нет всего сообщения..
если написать \\ то в логе будет \
как это вылечить?

Помогает замена последней функции (метода) или если точнее одной строчки по примеру в этом сообщении Спасибо, Setuper.
Go to the top of the page
+Quote Post
Liakmad
сообщение 16.6.2010, 16:01
Сообщение #191


Абсолютный новичок


Группа: Пользователи
Сообщений: 1
Регистрация: 7.6.2010
Пользователь №: 7 008
Спасибо сказали: 3 раза




Всем доброго времени суток. Приучил этот скрипт работать с полностью UTF-ной базой. Строка конвертится в UTF-8 при инсерте в базу, а при выводе в хаб обратно конвертируются в cp1521 Ник и Сообщение Для этого использовались функции конвертации от Setuper'а.
Если кому пригодится - ниже привожу дифф и готовую скрипту.
Код
<         con:execute(("INSERT INTO `%sMainLogs` (`Date`, `Time`,`Nick`,`IP`,`Msg`) VALUES ('%s','%s','%s','%s','%s')"):dbformat(sPrefixTable, os.date("%Y-%m-%d"),os.date("%H:%M:%S"), tUser.sNick, tUser.sIP, sMsg))
---
>         con:execute(("INSERT INTO `%sMainLogs` (`Date`, `Time`,`Nick`,`IP`,`Msg`) VALUES ('%s','%s','%s','%s','%s')"):dbformat(sPrefixTable, os.date("%Y-%m-%d"),os.date("%H:%M:%S"), tUser.sNick, tUser.sIP, AnsiToUtf8(sMsg)))
276a279,284
>                 if i == "Nick" then
>                     sMsg = Utf8ToAnsi(sMsg)
>                 elseif i == "Msg" then
>                     sMsg = Utf8ToAnsi(sMsg)
>                 end
>
305a314
>
322a332,408
>
> local ansi_decode={
>   [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166',
>   [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185',
>   [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152',
>   [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148',
>   [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156',
>   [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136',
>   [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169',
>   [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135',
>   [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181',
>   [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187',
>   [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151'
> }
> local utf8_decode={
>   [128]={[147]='\150',[148]='\151',[152]='\145',[153]='\146',[154]='\130',[156]='\147',[157]='\148',[158]='\132',[160]='\134',[161]='\135',[162]='\149',[166]='\133',[176]='\137',[185]='\139',[186]='\155'},
>   [130]={[172]='\136'},
>   [132]={[150]='\185',[162]='\153'},
>   [194]={[152]='\152',[160]='\160',[164]='\164',[166]='\166',[167]='\167',[169]='\169',[171]='\171',[172]='\172',[173]='\173',[174]='\174',[176]='\176',[177]='\177',[181]='\181',[182]='\182',[183]='\183',[187]='\187'},
>   [208]={[129]='\168',[130]='\128',[131]='\129',[132]='\170',[133]='\189',[134]='\178',[135]='\175',[136]='\163',[137]='\138',[138]='\140',[139]='\142',[140]='\141',[143]='\143',[144]='\192',[145]='\193',[146]='\194',[147]='\195',[148]='\196',
>     [149]='\197',[150]='\198',[151]='\199',[152]='\200',[153]='\201',[154]='\202',[155]='\203',[156]='\204',[157]='\205',[158]='\206',[159]='\207',[160]='\208',[161]='\209',[162]='\210',[163]='\211',[164]='\212',[165]='\213',[166]='\214',
>     [167]='\215',[168]='\216',[169]='\217',[170]='\218',[171]='\219',[172]='\220',[173]='\221',[174]='\222',[175]='\223',[176]='\224',[177]='\225',[178]='\226',[179]='\227',[180]='\228',[181]='\229',[182]='\230',[183]='\231',[184]='\232',
>     [185]='\233',[186]='\234',[187]='\235',[188]='\236',[189]='\237',[190]='\238',[191]='\239'},
>   [209]={[128]='\240',[129]='\241',[130]='\242',[131]='\243',[132]='\244',[133]='\245',[134]='\246',[135]='\247',[136]='\248',[137]='\249',[138]='\250',[139]='\251',[140]='\252',[141]='\253',[142]='\254',[143]='\255',[144]='\161',[145]='\184',
>     [146]='\144',[147]='\131',[148]='\186',[149]='\190',[150]='\179',[151]='\191',[152]='\188',[153]='\154',[154]='\156',[155]='\158',[156]='\157',[158]='\162',[159]='\159'},[210]={[144]='\165',[145]='\180'}
> }
>
> local nmdc = {
>   [36] = '$',
>   [124] = '|'
> }
>
> function AnsiToUtf8(s)
>   local r, b = ''
>   for i = 1, s and s:len() or 0 do
>     b = s:byte(i)
>     if b < 128 then
>       r = r..string.char(b)
>     else
>       if b > 239 then
>         r = r..'\209'..string.char(b - 112)
>       elseif b > 191 then
>         r = r..'\208'..string.char(b - 48)
>       elseif ansi_decode[b] then
>         r = r..ansi_decode[b]
>       else
>         r = r..'_'
>       end
>     end
>   end
>   return r
> end
>
> function Utf8ToAnsi(s)
>   local a, j, r, b = 0, 0, ''
>   for i = 1, s and s:len() or 0 do
>     b = s:byte(i)
>     if b < 128 then
>       if nmdc[b] then
>         r = r..nmdc[b]
>       else
>         r = r..string.char(b)
>       end
>     elseif a == 2 then
>       a, j = a - 1, b
>     elseif a == 1 then
>       a, r = a - 1, r..utf8_decode[j][b]
>     elseif b == 226 then
>       a = 2
>     elseif b == 194 or b == 208 or b == 209 or b == 210 then
>       j, a = b, 1
>     else
>       r = r..'_'
>     end
>   end
>   return r
> end[/font]

Прикрепленные файлы
Прикрепленный файл  ChatLogsMySQL.v1.0utf8.lua ( 20.08 килобайт ) Кол-во скачиваний: 15
 


Спасибо сказали:
Go to the top of the page
+Quote Post
Dimon21
сообщение 16.8.2010, 18:20
Сообщение #192


Активный участник
***

Группа: Пользователи
Сообщений: 65
Регистрация: 23.7.2009
Пользователь №: 3 945
Спасибо сказали: 7 раз




Заметил ошибку скрипта.При введении магнетки скрипт накрывается.В базе появляется ошибка.Лечится с очистки в базе.Прошу автора перебрать скрипт. secret_smile.gif

СПС.
Go to the top of the page
+Quote Post
Dimon21
сообщение 23.8.2010, 10:25
Сообщение #193


Активный участник
***

Группа: Пользователи
Сообщений: 65
Регистрация: 23.7.2009
Пользователь №: 3 945
Спасибо сказали: 7 раз




Добрый день всем кто посещает этот форум.У меня возник вопрос.Что можно зделать в этом скрипте,чтоб не проходила реклама,хотя антиреклама стоит.Скрипт злостно записывает всё.

still_dreaming.gif
Go to the top of the page
+Quote Post
Nickolya
сообщение 23.8.2010, 12:01
Сообщение #194


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Поставить скрипт ниже антирекламы...
Go to the top of the page
+Quote Post
Naum_Off
сообщение 21.11.2010, 12:02
Сообщение #195


Начинающий
*

Группа: Пользователи
Сообщений: 25
Регистрация: 1.10.2009
Из: Самара
Пользователь №: 4 611
Спасибо сказали: 0 раз




Доброго времени суток. Подскажите как по аккуратнее почистить бд. Скажем удалить последние 10к сообщений.
Go to the top of the page
+Quote Post
Saymon21
сообщение 21.11.2010, 13:02
Сообщение #196


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




PhpMyAdmin в помощь
Go to the top of the page
+Quote Post
Nickolya
сообщение 22.11.2010, 17:04
Сообщение #197


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Saymon, жестко ты. Все же просто:
Код
DELETE FROM `имя_таблицы` ORDER BY `id` DESC LIMIT 10000


Спасибо сказали:
Go to the top of the page
+Quote Post
Kingston
сообщение 21.12.2010, 8:14
Сообщение #198


Активный участник
***

Группа: Пользователи
Сообщений: 85
Регистрация: 19.3.2009
Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре
Пользователь №: 2 652
Спасибо сказали: 39 раз




Сообщения перевалили за 10к. Через меню перестало работать удаление сообщений. Ошибок скрипта нет, при неверном значении ошибок нет и нет сообщения. Незнаю куда копать
Go to the top of the page
+Quote Post
Nickolya
сообщение 22.12.2010, 1:08
Сообщение #199


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Мы перешли на переделанный скрипт Алекса, чего и вам советую: ChatHistorySQL, ибо этот уже не поддерживается. В базе нашего хаба уже приближается к 300000 записей и всё работает на ура big_smile.gif


Спасибо сказали:
Go to the top of the page
+Quote Post
Kingston
сообщение 23.12.2010, 9:05
Сообщение #200


Активный участник
***

Группа: Пользователи
Сообщений: 85
Регистрация: 19.3.2009
Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре
Пользователь №: 2 652
Спасибо сказали: 39 раз




Блин... я прогнался... beat_plaster.gif
У меня стоит тот скрипт, ChatHistorySQL.. Извиняйте
Go to the top of the page
+Quote Post

10 страниц V  « < 8 9 10
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No new Topic has attachmentsChatLogsMySQL
версия 4.3d
54 Accelerator 51 120 23.8.2011, 17:53 Посл. сообщение: Angel_D
No New Posts От: ChatLogsMySQL
От темы с ID: 1823
0 Санёк 4 449 13.6.2010, 14:44 Посл. сообщение: Санёк
No New Posts От: ChatLogsMySQL
От темы с ID: 1823
1 Wariner 5 575 2.8.2009, 0:22 Посл. сообщение: Saymon21
No new Topic has attachmentsОт: ChatLogsMySQL
От темы с ID: 1823
45 Setuper 33 395 27.4.2009, 17:44 Посл. сообщение: Wariner

 



RSS Сейчас: 28.3.2024, 22:55