MyDC.ru _ Скрипты с MySQL [PtokaX] _ ChatLogsMySQL
Автор: Wariner 21.4.2009, 20:28
Название скрипта: 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: Принимаются предложения по увеличению функционала скрипта!
Это и было написано за 5 минут, в любом случае то что Стрелок просил я сделал. Эти скрипты лишь заготовка для полноценной, хорошо оформленной страницы. ГНУ лицензию на скрипты ставлю - берите и модифицируйте как хотите)))
Какие возможности скрипта:
Войдя на страницу, появится 3 вида поиска: Показать последние N фраз чата Показать сообщения нужного вам ника Показать лог за нужное вам число
ппц на такую ерунду лицензию ставить, да к тому же лицензия должна быть оформлена (краткое описание и ссылка на полное описание).
Это тоже пишется не более чем за 5 минут. К чему весь этот пафос?
Автор: OtshelnikFm 25.4.2009, 23:22
Хаб в локалке оао Волготелеком. Доступ с диапазонов на 88.... 78... и 95... из инета не открывал - на трафик людей чтобы не сажать.
Вопрос PomanoBу и знатокам - выводится крякозябрами лог чата на сайт:
хотя движок wordpress с кодировкой utf-8. База mysql (таблицы тоже). 3 файла из chatlogs.zip - преобразовал в notepad ++ в utf-8 без bom всё равно крякозябры.
p.s - не актуально - т.к. с новой таблицей выводится ошибка
Цитата
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in www\........................\send.php on line 32 cообщений всего
может ты просто не так прописал название таблиц? посмотри внимательнее там ещё префикс есть! ибо структуру таблицы я не менял и запросы должны остаться теже!
Автор: OtshelnikFm 26.4.2009, 0:25
Точно префикс в файле send.php MainLogs (там их 2) надо заменить на chatlogs_MainLogs
По поводу кодировки базы mysql ссылку на которую дал setuper - база в utf-8 (как раз она и используется для вордпресса) - т.е. всё нормально
Посмотрел записи в таблице chatlogs_MainLogs - там крякозябры. Получается от птоки до базы mysql - проблема где-то тут. Вопрос - как передавать данные от хаба в базу в utf-8?
Автор: Setuper 26.4.2009, 1:08
PtokaX в скриптах использует кодировку cp1251, поэтому нужно либо менять кодировку на лету в utf8, либо делать базу данных также в кодировке cp1251.
По ссылке, которую я дал, вроде всё ясно написано!
Автор: OtshelnikFm 26.4.2009, 8:51
Я понимаю это. Но базу блога вордпреса менять на 1251 не хочу. Как сделать "на лету" перевод в utf-8?
Вот новая версия Бд обязательно должна быть в cp1251, но в config.php можно поставить кодировку вывода на utf-8 viewerror.php - просмотр ошибок скрипта, логин и пароль задаются в config.php, попытка войти при неправильном пароле заносится в таблицу ошибок вместе с ип адресом) chatlogs.zip ( 34.41 килобайт )
: 69
Автор: OtshelnikFm 26.4.2009, 18:53
Большое спасибо за скрипты всё работает!
PomanoB - забыл кнопку входа в viewerror.php (энтер тоже не работает)
А по поводу:
Цитата
Бд обязательно должна быть в cp1251,
- необязательно - сейчас она в utf-8 и вот результат ( выбрал только
Цитата
Использовать при выводе кодировку UTF-8 или нет; использовать - true:
Это видно на скриншоте сверху. Но на скриншоте фраза "Молодцы мужики качественный хаб!!! (для админов):орден:" - заканчивается смайлом. А как видно по выведении командой в чат - тут этого смайла нет
local sMenu = "Ваше меню" -- Меню local sSubMenu = "История чата" --Подменю
Всетаки стоит такое добавить!
Автор: OtshelnikFm 26.4.2009, 19:33
Браузер opera ac 3.6.5. Добавил исправления - помогло
Автор: serrrios 26.4.2009, 20:49
Огромное спасибо Wariner и PomanoB.
Прикрутил себе на джумлу + к стате StatPX. Работает отлично..
Автор: Nickolya 27.4.2009, 13:08
Выражу небольшую просьбу к тов. PomanoB'у, простите, не знаю как величать Премного буду благодарен, да и не я один, если напишите мануальчик по работе с выводом данных на страницу, а именно аякусу, тем библиотекам, как я понимаю, стандартным, что применяются в Вашем скрипте.
Автор: Serx 27.4.2009, 13:43
При попытке запуска скрипта появляется табличка ошибки:
Код
PtokaX DC Hub 0.4.1.1:PtokaX.exe - Не удалось найти компонент Приложению не удалось запуститься, поскольку LIBMYSQL.DLL не был найденю Повторная установка приложения может исправить эту проблему.
А в окне скриптов надпись: [16:39] Синтаксис error loading module 'luasql.mysql' from file 'C:\Program Files\Ptokax_0.4.1.1\libs\luasql\mysql.dll': Не найден указанный модуль.
чего нехватает?
Автор: Setuper 27.4.2009, 14:02
в папке libs должны быть файл libmysql.dll и папка luasql с файлом mysql.dll
Автор: OtshelnikFm 27.4.2009, 14:12
Присоединяюсь к Nickolya. Очень хочется такой мануал по выводу из бд
Предлагаю закрепить эту библиотеку в ветке "Скрипты с MySQL"
Автор: Setuper 27.4.2009, 14:35
Создал и закрепил тему. А файлы аттачить по нескольку раз не нужно. Достаточно дать ссылку на уже приаттаченный файл. Нужно экономить память форума, да и путаницы не будет с файлами.
Автор: Serx 27.4.2009, 15:01
Библиотеки в папке libs в папке птоки есть. База и пользователь в MySQL созданы. Старая версия скрипта тоже отказывается запускаться. MySQL входит в состав XAMPP и работает. В чем проблема не понимаю :(
Автор: Setuper 27.4.2009, 15:09
http://mydc.ru/topic1851.html
Проблема в недоступности библиотеки LIBMYSQL.DLL проверь есть ли данная библиотека в твоём mysql сервере. Если есть, то попробуй её скопировать в папку libs. Возможно ты используешь mysql сервер старой версии. Или скачай и установи новый сервер http://mydc.ru/r/?http://www.mysql.ru/download/
Автор: Serx 27.4.2009, 17:22
Скрипт включился когда я файлы из libs положил в корневую директорию PtokaX (т.е. без папки libs)
Автор: Setuper 27.4.2009, 17:40
2Serx: Можешь выложить свой файл PtokaX.exe? Что-то не верится, что папка libs не работает. P.S. Папку libs следует создавать в папке, где лежит ptokax.exe, а не в папке scripts
Автор: Serx 27.4.2009, 18:20
Предлагаю сделать в скрипте выбор вывода лога в чат или в приват и возможность (ещё лучше если она будет отключаемой) логирования строчек действий (начинающихся с /me !me +me)
2 Setuper: Не думаю что у меня какая-то особенная Ptokax... никакими HEX-редакторами я в ней не ковырялся... но я также не представляю с чем это могло быть связано.
Автор: Setuper 27.4.2009, 19:27
Ты где создаёшь папку libs? У меня всё работает.
Автор: Serx 27.4.2009, 21:43
У меня сейчас тоже все прекрасно работает. Создавал в папке Ptokax_0.4.1.1 там-же где и Ptokax.exe
Ещё бы неплохо сделать фильтр лога по IP (есть товарищи которые иногда меняют ники)
Автор: fixx 28.4.2009, 16:39
возвращаясь к кодировке. Ничего непомогает . Либо ?????????????????????? вместо слов по-русски, либо вообще ничего. И ники с разным регистром букв тоже "???", независимо от латиницы или русского. Тему прочитал, все ссылки посмотрел, все сделал, как написано, но "????????????????????" - лучший результат. Если просто создавать базу по умолчанию UTF-8, то русские буквы просто отсутствуют в таблице. Есть решение? Сам никак недопру, в чем дело.
произошло обновление версии до RC3, смотрите первый пост!
Автор: Setuper 28.4.2009, 20:46
Сразу нашёл опечатку и лишние скобки))))
Код
if (not sCmd or iMe == 1 and (sCmd == "!me" or sCmd == "+me" or sCmd == "/me") or sCmd == "[!+/]me") and not sMsg:match"is kicking" and tExNick[tUser.sNick] ~= 1 then
Зачем ставить лишние скобки, когда достаточно знать приоритеты выполнения операций: http://mydc.ru/r/?http://www.lua.ru/doc/2.5.6.html
Автор: OtshelnikFm 28.4.2009, 22:00
Можно исправить - (выбираю смотреть ошибки скрипта) - когда таблица ошибок пуста выкидывает в чат команду !errorsmainlogs и в отладчике птохи пишет:
Цитата
[22:46] Синтаксис ... Интернет\PtokaX 0.4.1.1\scripts\ChatLogsMysql.lua:273: bad argument #1 to 'format' (string expected, got nil)
Повторный запрос выдает все в чат:
Цитата
==================================================================================================== № Дата и время Ошибка ==================================================================================================== 1. 2009-04-28 22:46:32 :273: bad argument #1 to 'format' (string expected, got nil) ====================================================================================================
Но юзверям команда спалилась (понимаю что они не могут ее использовать - но все равно как то не по себе) а можно в меню добавить еше "посмотреть лог чата за вчера" неудобно вводить дату когда приходишь домой в 3 ночи...или отсутствуешь с вечера , а утром хочется с больной головой глянуть лог... и начинаешь вспоминать дату
А еще можно было бы воткнуть сюда лог команд хаба (хотя это уже другой скрипт-и отбор по рейтингу команд за сутки)
Автор: Wariner 28.4.2009, 22:36
исправлено перезалито. Насчёт скобок, я их использую для большей наглядности, иногда сам не разберёшь что понавертел.
Автор: Setuper 28.4.2009, 23:31
Наоборот получается не наглядно. Когда много скобок сложно уследить где какая закрывается, да вообще получается какая-то непонятная куча скобок. Если запомнить, что в самую последнюю очередь выполняются операторы and и or, то можно значительно упростить и не ставить лишние скобки.
Автор: Serx 28.4.2009, 23:57
Скрипт работает на ура... Поскольку я не разбираюсь в построении HTML (или других) страниц, то появилась только небольшая "проблема" которая связана с отображением лога на странице...
2 PomanoB После пары дней в логе накопилось больше 1000 сообщений... при выборе в настройках вывода по 20 строк на странице появляется больше 50 ссылок на следующие. И если так пойдет и дальше они будут загромождать страницу. Если возможно сделайте пожалуйста удобную навигацию вроде такой:
или если не затруднит такой:
Автор: Setuper 29.4.2009, 0:00
Самая удобная навигация - это как на данном форуме
Вот новая версия, фильтр по ип, более удобный фильтр по нику и дате Новая навигация, как в SMF, ихняя версия мне больше всех нравится)
Автор: Serx 29.4.2009, 22:04
Спасибо интересная возможность нажатием по нику или дате сразу фильтровать по этим параметрам... логичным продолжением по-моему был бы показ IP с такой-же удобной фильтрацией.
И вот у меня появилось ещё 1 предложение: кол-во показываемых сообщений на страницу жестко задается в конфиге... а может предоставить этот выбор пользователю? Чтобы он мог выбрать как ему удобно по сколько сообщений на странице выдавать.
Автор: OtshelnikFm 30.4.2009, 1:06
Цитата
\scripts\ChatLogsMysql.lua:273: bad argument #1 to 'format' (string expected, got nil)
вот что...
Автор: PomanoB 30.4.2009, 21:48
Вот, показывается ип, и поле для выбора количества собщений на страницу chatlogs.zip ( 38.26 килобайт )
: 51
Автор: fixx 30.4.2009, 22:30
И еще раз. Кодировка не проходит ни при каких обстоятельствах. Помогите, плиз. Все русские буквы отображаются (в базе ) вот так: ???????????? ???? ???? мне посоветовали в библиотеках ковыряться, но если у всех работает, а у меня нет, то дело не в библиотеках. Птока у меня 4.1.1 сервис, сервер апач+мускул. До мускула идут только ???????, если вернуть к кодировке по умочанию (ют8), то вообще ничего не отображается. ЛЮДИ ДОБРЫЕ, ПОМОГИТЕ
Автор: PomanoB 30.4.2009, 22:34
Добавь в my.ini в после [mysqld] skip-character-set-client-handshake
Автор: fixx 30.4.2009, 22:53
Цитата(PomanoB @ 30.4.2009, 22:34)
Добавь в my.ini в после [mysqld] skip-character-set-client-handshake
непомогает. Я и сетупера почитал, и весь форум, но неполучает база русского, в лучшем случае "???????????????" Я щас расплачусь, даже мой друг - веб программист - пишет:
Цитата
mysql_connect($adress, $user, $passwd);
mysql_query("SET NAMES cp1251");
типа так должно быть где-то. Но где, я так и непонял (он говорит, что в библиотеке, однако у всех работают библиотеки, а я один - рыжий?) ПОМОГИТЕ ПЛИЗ! :(
Автор: Wariner 30.4.2009, 23:04
я в пастерянности.... впервый раз я запустил пшпмайадмин нажал создать базу cp1251 и всё работает... не понимаю почему проблемы такие.....
Автор: Setuper 30.4.2009, 23:08
Да потому что руки не оттуда растут. 10 раз уже написали что да как.
Автор: fixx 30.4.2009, 23:09
Цитата(Wariner @ 30.4.2009, 23:04)
я в пастерянности.... впервый раз я запустил пшпмайадмин нажал создать базу cp1251 и всё работает... не понимаю почему проблемы такие.....
Вот. И я тоже в растерянности. Все так и сделал. (Хм.. может че перемудрил? .. А где там кнопочка создать базу cp1251? , а то я, следуя мануалу сетупера, создавал из командной строки..)
Автор: Wariner 30.4.2009, 23:24
я соврал. у меня они создаются автоматически в cp1251.
Автор: fixx 30.4.2009, 23:39
Ну вот, нашел я кнопку, вывесил там cp1251, все создалось, но таблицы несоздаются, подозреваю, что им пароль нужен, но при создании базы он не запросился. Вобщем мы с вами на разных планетах, видимо обитаем
Цитата(Setuper @ 30.4.2009, 23:08)
Да потому что руки не оттуда растут.
Их нет
Автор: mariner 30.4.2009, 23:48
Цитата(fixx @ 1.5.2009, 0:39)
Ну вот, нашел я кнопку, вывесил там cp1251, все создалось, но таблицы несоздаются, подозреваю, что им пароль нужен, но при создании базы он не запросился. Вобщем мы с вами на разных планетах, видимо обитаем
Их нет
http://mydc.ru/topic1828.html Читаем и делаем. Способ с консолью подходит для венды.
Автор: fixx 1.5.2009, 0:42
Цитата(mariner @ 30.4.2009, 23:48)
http://mydc.ru/topic1828.html Читаем и делаем. Способ с консолью подходит для венды.
Молодец! Только это читано перечитано, сделано и так и по-другому, однако воз и ныне там. Повторяю. Вебпрограммист - уважаемый в нашей Ивановской области - и тот грешит на библиотеки, что вы от меня хотите? Просто, прошу дайте мне, пожалуйста что-нибудь, учитывая что пользователя зовут chat и базу зовут chat . Ну не хочет она читать русский с хаба, хоть убей. Читает с пхп, с сайта, который на 1251 - четко, проверил, а с хаба - куй! :( Кстати создаю базу с кодировкой cp1251_general_ci может не то?
Автор: Setuper 1.5.2009, 1:21
Сделай запрос:
Код
SHOW VARIABLES LIKE 'char%';
и посмотри какие у тебя кодировки.
Есть ли у твоего пользователя chat привилегия SUPER ?
В самом скрипте, после соединения с базой данных (env:connect), можно дописать строку:
Соответствующие пути до папки charsets свои надо прописать!
Уже в сотый раз пишу об этом. Уже надоело.
Автор: OtshelnikFm 1.5.2009, 20:16
В первый пост добавьте - "Нужно чтобы скрипт стоял в самом верху"
Романов - скрипт на сайте не фильтрует по нику пишет
Цитата
0 сообщений всего
Автор: PomanoB 1.5.2009, 20:35
Странно... У меня всё фильтрует) Какая версия у тебя? Посмотри может есть ошибки JavaScript'а ? По остальным параметрам фильтрует?
Автор: OtshelnikFm 1.5.2009, 20:41
Блин - опера. в ней проблема. под интернет эксплорером все гуд на 100%. А опера почемуто не хочет именно по нику фильтровать, а под ip фильтрует
еще чуть-чуть и перейду на мозилу...
Автор: PomanoB 1.5.2009, 20:49
Переходи на Google Chrome ) Посмотри может ошибки какие-то есть на страничке ?
Автор: Wariner 1.5.2009, 21:07
Цитата(OtshelnikFm @ 1.5.2009, 21:16)
В первый пост добавьте - "Нужно чтобы скрипт стоял в самом верху"
С какой целью?
Автор: OtshelnikFm 1.5.2009, 21:39
Нет - ошибок нет.. ну можно добавить кнопку - "обновить чат" (хотя с этим кнопка "применить" справляется). А в остальном - огромное спасибо - работает отлично!
Wariner - при загадочных обстоятельствах - вчера писал о ошибке - перестал логировать чат. Перезагрузка не помогла тогда я удалил таблицу и запустил скрипт и в самый верх его засунул. Логи идут
Автор: OtshelnikFm 4.5.2009, 8:32
1 числа писал - перестал логировать чат (тогда я подумал что может скрипт надо в самый верх). Сегодня обнаружил что на 3 день после сноса таблиц - перестал вновь записывать чат (31 сообщение записал и в ступор встал).
Автор: Wariner 4.5.2009, 17:30
ошибок нет? сегодня поставлю скрипт у себя.
Автор: OtshelnikFm 4.5.2009, 19:35
ошибок небыло никаких.
Сейчас перезапустил скрипт - логироваться чат начал.
Автор: fixx 6.5.2009, 19:13
Спасибо всем, с кодировками разобрался. Дело было в том, что я забыл в my.ini дефолтные строчки закомментировать. Незнал, что они там есть . Да и немудрено, у меня этот файл весь в каментах, правда на английском. 480 строк с каментами. Трудно сразу разглядеть.
Автор: Wariner 6.5.2009, 21:36
скрипт работает 3 день(правда с отключением на ночь). Полёт нормальный!
Автор: OtshelnikFm 6.5.2009, 23:38
В том то и дело что отключаешь на ночь. Парни - кто тестирует, просьба ответьте, при постоянной работе хаба 3-4 дня без перезагрузки и отключения скриптов - логи у вас продолжает писать? У меня на хабе присутствует тишина как правило. Поэтому за 3 дня бывает только 30-40 сообщений. После скрипт перестаёт записывать чат... Может быть у вас он пишет 1000 сообщений в день - но проблема именно в длительном бесперебойном логе. У меня он так обрывал запись 2 раза и эти 2 раза я сносил таблицы и ставил все заново. Сейчас снесу 3 раз. Отпишусь позже что происходит.
p.s. - на базе mysql работает веб сервер на движке вордпресса - с ним ниразу такого не происходило. И еще - кодировка только utf-8!
1 запись 1 мая 2009 года. последняя была 5 мая 2009 - т.е. 4 дня закончилась она смайлом (дословно из записи:
Цитата
:curtsy:
)
в таблице ошибок - 0 записей!
Автор: mariner 6.5.2009, 23:52
работает. Ныне онлайн 6 дней. Система - линукс
Автор: Serx 7.5.2009, 0:06
Работает без перерыва чуть больше 9 дней... в базе 7749 сообщений... система Windows XP SP3 Не записываются фразы которые обрабатываются скриптами стоящими выше него (например антимат,антикапс и.т.п.) - это не проблема а просто как примечание )) Пока что все отлично.
Автор: Wariner 7.5.2009, 6:37
конечно не обрабатывается, ведь эти скрипты после нахождения запретной фразы возвращают true, т.е. не пропускают сообщение!
Автор: fixx 7.5.2009, 12:08
Цитата(PomanoB @ 30.4.2009, 21:48)
Вот, показывается ип, и поле для выбора количества собщений на страницу chatlogs.zip ( 38.26 килобайт )
: 51
При выводе на странице, помимо того, что должно быть, появляется сообщение:
Цитата
Strict Standards: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for '4.0/DST' instead in C:\AppServ\www\chatlogs\send.php on line 60
А так все работает, только бы это как-то поправить.. ---------------------------------------------------------------- ---------------------------------------------------------------- трое суток, скрипт работает. ошибок нет.
Автор: PomanoB 7.5.2009, 17:35
Строку 60 if (strtotime($_GET['i_date'])) меняем на if (@strtotime($_GET['i_date']))
Автор: fixx 7.5.2009, 23:00
Цитата(PomanoB @ 7.5.2009, 18:35)
Строку 60 if (strtotime($_GET['i_date'])) меняем на if (@strtotime($_GET['i_date']))
=) Спасибо. Вот теперь все как надо. Еще 3 месяца назад только в мечтах (без мускула) было, но вижу, что еще полгода, а то и меньше, и связка "хаб-сайт-форум" и, возможно, трекер будет реализована на уровне регистрации, раздач, чата и еще Бог знает чего. Спасибо Всем еще раз. =)
Автор: Setuper 7.5.2009, 23:15
Насчёт регистрации - это наврятли. Уж слишком не оптимизированное дело получается с этой регистрацией. Надо переписывать хаб, для корректной работы регистрации через базу данных.
Автор: OtshelnikFm 8.5.2009, 2:02
хм...
что будет если строку
Код
local sBot = "logger" -- Имя бота
заменить
Код
local sBot = "" -- Имя бота
- т.е. не указывать имя бота?
дело наверное в ней было.
Автор: OtshelnikFm 8.5.2009, 22:14
Всю голову сломал уже.
Цитата
Произошла ошибка в тексте запроса! Команда не будети выполнена! Сообщите администратору!
скачивал отсюда самую последнюю версию. изменял только пароль и логин - т.е. только то что с mysql связано. Таблицы сносил. MySQL Server 5.0 версия... Что делать?
Автор: Wariner 11.5.2009, 22:06
при этом сообщении он записывает данные в лог ошибок. посмотри что там!
Автор: OtshelnikFm 12.5.2009, 0:24
Цитата
Произошла ошибка в тексте запроса! Команда не будети выполнена! Сообщите администратору!
- это пишет если выбираю посмотреть лог ошибок... и показывает это на все команды скрипта.
в таблице chatlogs_errors - пусто. Понятия не имею что произошло - как ведь все хорошо начиналось (комп и птоку не буду перегружать - иду на рекорд онлайна -но думаю что проблема где-то тут.. хотя комп и птока работают в штатном режиме) Сорри конечно за маниакальный настрой, но все работают с веб скриптом Романова? - сейчас его уберу и посмотрю (вдруг блокирует или мешает...)
Автор: OtshelnikFm 12.5.2009, 17:47
Цитата
Произошла ошибка в тексте запроса! Команда не будети выполнена! Сообщите администратору!
:( всего 3 сообщения в базе и больше не идут. лог ошибок пуст. Снова работает только после перезапуска.
Все проблемы, кстати, начались когда у скриптов появилась одна общая база только разые таблицы (базу назвал PtokaX, таблицы chatlogs_mainlogs и statist_userstats (ну и таблицы ошибок chatlogs_errors и statist_errors)) - тоесть когда 2 скрипта на mysql работают в общей базе (скрипт статистики поиска и лог чата).
Автор: Vizunchik 20.5.2009, 20:58
Народ хотелось бы такой скрпт на VerliHub version 0.9.8c. Сможите переделать под VerliHub плизз если вам конешьно не трудно
Автор: Wariner 20.5.2009, 21:04
чтоб конкретно я смог переделать мне нужно устанавливать верлик на винду, чего делать мне не очень хочется.... а без этого вряд ли получится что то дельное....
Автор: Vizunchik 20.5.2009, 21:10
Очень жаль конешно. Но у меня при установки этого скрипта на птоку 0,4,1,1, выдаёт ошибку
Код
[00:09] Синтаксис ... ВИНДЕ\Сервак хаба\0.4.1.1\scripts\ChatLogsMySQL.lua:57: LuaSQL: Error connecting to database. MySQL: Can't connect to MySQL server on 'localhost' (10061)
Автор: Wariner 20.5.2009, 21:22
хм а у тебя MySQL сервер на каком адресе(порте)?
Автор: Setuper 20.5.2009, 21:22
такая ошибка говорит, что сервер не установлен или не запущен
Автор: Vizunchik 20.5.2009, 21:36
вот ошибочка ещё одна [01:04] Синтаксис ... ВИНДЕ\Сервак хаба\0.4.1.1\scripts\ChatLogsMySQL.lua:57: LuaSQL: Error connecting to database. MySQL: Unknown database 'ptokascripts'
Автор: mariner 20.5.2009, 22:00
эмм, а вэбсервер есть? ваще ты что-нитть в чат напиши и переподключись. Ага =)
Автор: Vizunchik 20.5.2009, 22:22
веб есть денвер запустил его запускаю хаб и хочу запустить скрипт и он выдаёт эту ошибку
Автор: mariner 20.5.2009, 22:24
создай базу ручками, а. Я писал в подфоруме про скрипты
Автор: Setuper 20.5.2009, 22:28
денвер для лузеров. Лучше всё поотдельности поставить.
Автор: OtshelnikFm 21.5.2009, 14:58
Эх раз, еще раз... http://mydc.ru/topic1828.html
Автор: fixx 28.5.2009, 11:28
Вобщем вот. Для тех, кто хотел бы вывести N количество (в скрипте стоит 10 (LIMIT 0,10 )) последних сообщений чата, на страницу. Подключить скрипт (кто незнает) можно, добавив в нужное место, например в сайдбар, контент или пост код:
Код
<?php require "dbchat.php"; ?>
Можно использовать, как самостоятеоьную страницу, только добавить стиль надо, так как скрипт только генерирует таблицу с полями Время, Ник, Сообщение. Скрипт php полностью прокомментирован, потому разобраться можно даже новичку, каковым я сам и являюсь Написан с помощью фака по php www.php.su - я и тут, и там учусь. Незабываем подставить Свои значения переменных:
реквестую возможность настройки виды вывода информации в таблице истории чата. По тэгам. Чтобы в шапке скрипта было описание тэгов и строка , для ввода. ВВод через пробел Тэги: %NUM - номер %TIME - время, когда сказано %IP - айпи %NICK - ник %TEXT - сама фраза
ну и еще что можно выдумать
Автор: Дениска 12.6.2009, 14:10
Цитата(mariner @ 11.6.2009, 22:29)
реквестую возможность настройки виды вывода информации в таблице истории чата. По тэгам. Чтобы в шапке скрипта было описание тэгов и строка , для ввода. ВВод через пробел Тэги: %NUM - номер %TIME - время, когда сказано %IP - айпи %NICK - ник %TEXT - сама фраза
ну и еще что можно выдумать
тоесть нужна php-ная страница?
Автор: mariner 12.6.2009, 14:16
Цитата(Дениска @ 12.6.2009, 15:10)
тоесть нужна php-ная страница?
неа, это я предлагаю идею тэгов для вывод строки истории. Типо: %NUM % TIME %NICK %TEXT Это сочетание выведет в таблицу строки в формате
Цитата
3124 18:05:43 <mariner> всем привет
А если будет так: %NUM % TIME %NICK %IP %TEXT То строка станет такой
Цитата
3124 18:05:43 79.120.84.207 <mariner> всем привет
Автор: Дениска 12.6.2009, 14:26
может кто нибудь скинут sql-ку? ибо нет возможности на птоке затестить
Автор: Wariner 12.6.2009, 15:02
скинуть чего?
Автор: mariner 12.6.2009, 15:34
базу скинуть
Автор: Wariner 25.6.2009, 23:29
Итак вышла новая версия. вроде бы потестил всё должно работать! особенно проверьте корректировку времени!
Автор: Wariner 26.6.2009, 16:16
посмотрел комент Сетапера в другой теме и перезалил ещё раз!
Автор: Setuper 26.6.2009, 16:28
Исправил, но не везде))
Автор: STRELOK 26.6.2009, 17:04
И ещё. Скачал новую версию, поставил. Не работают некоторые команды, такие как посмотреть лог Ип`а, или лог за сегодня
Автор: Wariner 28.6.2009, 13:24
Исправил работу сортировки по ип и нику! Доправил работу с курсорами ещё в двух местах!
на тестовой БД работал. на основном хабе работал частично. вылечил сносом БД. Если при наборе сообщений повторится будем копать)))
Автор: STRELOK 28.6.2009, 14:45
Не, базу сносить не буду))) Просто уберу менюшку, по идеи, этот скрипт у меня логирует чат только для веб интерфейса, на хабе им не пользуюсь
Автор: Uncle_Dif 2.7.2009, 10:45
Скачал- незапускается. Пишет:'D:\Аврора-хаб\Uncle_Dif-Hub\InstaHub-0.23\InstaHub\scripts\libs\luasql.dll' Что делать?
Автор: mariner 2.7.2009, 11:09
Ну наверное поставить mysql и плагин для хаба
Автор: Uncle_Dif 2.7.2009, 11:31
Цитата(mariner @ 2.7.2009, 11:09)
Ну наверное поставить mysql и плагин для хаба
Поставил mysql и теперь пишет:[14:24] Синтаксис ...InstaHub-0.23\InstaHub\scripts\ЛогированиеГлЧата.lua:67: LuaSQL: Error connecting to database. MySQL: Can't connect to MySQL server on 'localhost' (10061) Это я перевел[14:24] Синтаксис... InstaHub-0.23\InstaHub\scripts\ЛогированиеГлЧата.lua:67: LuaSQL: Ошибка, соединяющаяся с базой данных. MySQL: Не может соединиться с MySQL сервером на 'localhost' (10061)
Отсюда вопросы: 1.Подробнее про плагин, пжлст.. 2.Объясни про "сервер на 'localhost', плизз
Автор: mariner 2.7.2009, 11:59
неужто тебя на гугле забанили. ну ладно, расскажу - сервер на локалхосте - это ты должен установить MySQL сервер себе на машинку. Без него работать не будет. Ну а потом почитать в шапке этого раздела, как создавать базу.
Автор: eXrnd 2.7.2009, 12:32
Благодарю. Хороший скрипт. Поставил себе. Никто не хочет сделать генерацию лога в html? С разделениями по дате/месяцу
Автор: Wariner 2.7.2009, 13:11
а для чего сие нужно? в теме уже есть пара написанных скриптов берущих из базы логи и выводящих на сайт!
Автор: Uncle_Dif 2.7.2009, 13:22
Цитата(mariner @ 2.7.2009, 12:59)
неужто тебя на гугле забанили. ну ладно, расскажу - сервер на локалхосте - это ты должен установить MySQL сервер себе на машинку. Без него работать не будет. Ну а потом почитать в шапке этого раздела, как создавать базу.
1.Этот самый сервер, MySQL сервер, имхо здесь скачать? http://mydc.ru/r/?http://www.softportal.com/get-65-mysql.html ;-)
Вот установил сервер, и снова не запускается, пишет: [17:53] Синтаксис... InstaHub-0.23\InstaHub\scripts\ЛогированиеГлЧата.lua:67: LuaSQL: Ошибка, соединяющаяся с базой данных. MySQL: Запрещенный доступ для пользовательского 'корня' 'localhost' (использование пароля: ДА)
Где-то надо ввести пароль? Где?
Автор: Wariner 2.7.2009, 16:28
открой скрипт там всё написано!
Автор: Uncle_Dif 2.7.2009, 16:34
Цитата(Wariner @ 2.7.2009, 17:28)
открой скрипт там всё написано!
Я эту 67 строку тока по диогонали не считал, нет там её... а-то б yes на no иправил бы... здесь спрашиваю потому, что уперся и понять не могу
Автор: Serx 2.7.2009, 17:08
а пароли то вводил в где-то в 30х строчках?
Автор: Uncle_Dif 2.7.2009, 17:34
Цитата(Serx @ 2.7.2009, 17:08)
а пароли то вводил в где-то в 30х строчках?
Есть такая строка - local sPasswordDB = "пароль"
Что сделать? стереть пароль ?
Автор: exxxx 2.7.2009, 18:12
Цитата(PomanoB @ 30.4.2009, 22:48)
Вот, показывается ип, и поле для выбора количества собщений на страницу chatlogs.zip ( 38.26 килобайт )
: 51
Не работает фильтр с русскими никами :( И для чего в конфиге строчки
Цитата
$ev_user = 'admin'; $ev_passwd = 'pck64grt';
Автор: mariner 2.7.2009, 18:25
Цитата(Uncle_Dif @ 2.7.2009, 18:34)
Есть такая строка - local sPasswordDB = "пароль"
Что сделать? стереть пароль ?
Еще раз скажу - читай шапку раздела! http://mydc.ru/topic1828.html
Автор: Uncle_Dif 2.7.2009, 19:41
Спасибо за минуту твоего внимания.
Установил и запустил (суток не прошло)) я этот скрипт. Тьфу-тьфу... Вопрос: лог выдается только в окно гл.чата? в окно бота нельзя перевести?
Автор: Wariner 2.7.2009, 20:09
можно и в приват... для этого в нужном месте надо заменить
Код
Core.SendToUser
на
Код
Core.SendPmToUser
синтаксис смотрим в скрипт-интерфейсе
Автор: Uncle_Dif 2.7.2009, 22:50
Цитата(Wariner @ 2.7.2009, 20:09)
можно и в приват... для этого в нужном месте надо заменить
Код
Core.SendToUser
на
Код
Core.SendPmToUser
синтаксис смотрим в скрипт-интерфейсе
Во всех местах исправил, как сказано. Ставлю галку на скрипте- пишет: Нет синтаксических ошибок в файле скрипта ЛогированиеГлЧата.lua Далее пишу в чате, чтоб создать лог и тут же проверяю, что выдаст скрипт. В чате появляется - !mainlogs, а галка со скрипта пропадает. Пишет: [01:47] Синтаксис ...InstaHub-0.23\InstaHub\scripts\ЛогированиеГлЧата.lua:144: bad argument count to 'SendPmToUser' (3 expected, got 2) Вот тут, перевожу:[01:47] Синтаксис... InstaHub-0.23\InstaHub\scripts\ЛогированиеГлЧата.lua:144: плохой счет(граф) параметра к 'SendPmToUser' (3 ожидаемый, добрался 2) ..... и тупо не понимаю, что делать. Помоги плизз.
Автор: Wariner 2.7.2009, 23:34
Цитата(Wariner @ 2.7.2009, 21:09)
синтаксис смотрим в скрипт-интерфейсе
Автор: Uncle_Dif 2.7.2009, 23:51
Спасибо, что уделил минуту.
Автор: Serx 4.7.2009, 18:15
не логируются строчки начинающиеся с /
и команды просмотра общего лога тож в чат почему-то начали проскакивать... и не выполняться, хотя вчера работали нормально.
update: сейчас проверил... не только с / а ещё и с + * ! вначале... т.е. похоже он их считает за команды :(
Автор: Wariner 4.7.2009, 18:16
да замечено... поправлю!
Автор: Serx 4.7.2009, 19:41
исправил у себя упрощением строчки:
Код
if ((not sCmd or ((iMe == 1) and (sCmd == "!me" or sCmd == "+me" or sCmd == "/me"))) or (sCmd == "[!+/]me")) and (not (sMsg:match("is kicking"))) and (tExNick[tUser.sNick] ~= 1) then
на
Код
if (not (sMsg:match("is kicking"))) and (tExNick[tUser.sNick] ~= 1) then
но команда !mainlogs не срабатывает и идет в чат (хотя и не логируется)
Автор: Wariner 5.7.2009, 8:10
странно что он вообще запустился... ищи лишнюю скобку ;)
Автор: Setuper 5.7.2009, 12:59
Ошибка так и не исправлена))
строка sMsg = sMsg:gsub(i, v) функции GsubText
Код
sMsg = sMsg:gsub(i, "%%s"):format(v)
Автор: mariner 2.8.2009, 0:45
потому, что это уже в друйго раздел. предупреждение!
Автор: KraSav4EK 14.8.2009, 19:20
CODE
local TypeInMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения (при входе) local TypeTodayMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог за сегодня) local TypeDataMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог за дату) local TypePeriodMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог за период) local TypeTodayMsgNick = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за сегодня) local TypeDataMsgNick = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за дату) local TypePeriodMsgNick = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за период) local TypeTodayMsgIP = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за сегодня) local TypeDataMsgIP = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за дату) local TypePeriodMsgIP = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за период)
народ если у ково нормально скрипт ровно всё выводит в чат дайте эти строки плиз 2 часа сидел ставил \t не чево лудше не стало кинте строки плиз а всё сам разобрался
Автор: KraSav4EK 15.8.2009, 11:30
Цитата(THE STRELOK @ 24.4.2009, 18:57)
Со слов автора скрипта(st.FILA):
Какие возможности скрипта:
Войдя на страницу, появится 3 вида поиска: Показать последние N фраз чата Показать сообщения нужного вам ника Показать лог за нужное вам число
а куда эти файлы кидать я не пойму
Автор: Serx 29.8.2009, 11:18
в базу не записываются сообщения заканчивающиеся на \ и этот символ иногда записывается если стоит в середине строчки, а иногда нет... отчего это происходит?
Автор: STRELOK 29.8.2009, 11:35
Цитата(KraSav4EK @ 15.8.2009, 12:30)
а куда эти файлы кидать я не пойму
На свой веб сервер
Автор: Setuper 29.8.2009, 11:43
Символ \ нужно экранировать так: \\
Также этот символ используется для переноса строки:
Код
"какая-то строка \ что-то после переноса"
Автор: Cjay 7.9.2009, 18:00
блин да здравствуют русские символы...значит создаю я БД. И если создаю с кодировкой utf-8, то русских букв вообще не видно в истории...если создаю с cp1251, то все русские буквы отображаются как '?????????" и что меня спасёт?)
Соответствующие пути до папки charsets свои надо прописать!
Уже в сотый раз пишу об этом. Уже надоело.
Просто измени настройки вот так.
Автор: Cjay 7.9.2009, 19:23
это сделано...один фиг с рашен проблема
Автор: fixx 8.9.2009, 9:23
Сделано. А как сделано? Добавлены эти строчки? Нужно закомментировать строчки, которые там по дефолту.
Автор: Cjay 12.9.2009, 20:43
поколдовал тут чуть-чуть...в общем теперь вот такая ошибка сам lua не менял, кроме пароля, логина и т.п. [00:41] Синтаксис E:\....\scripts\ChatLogsMySQL.lua:291: attempt to index local 'cur' (a nil value) fixx, добавлены, закоментированы...создаю базу в cp1251 тогда вместо русского вопросы...
P.S. кстати дайте плиз скрипт полностью...сам луа то вижу в топике, а где все остальное к этой версии скрипта взять?...
Автор: Setuper 12.9.2009, 20:59
http://mydc.ru/topic1851.html
Автор: Cjay 12.9.2009, 21:05
Setuper, я имел ввиду что весь скрипт же не только в lua файле заключается, запостеным на первой странице? вроде бы должен быть архивчик еще...так где его взять? какой из всех архивов которые кидали в теме мне нужен?
Автор: Alexey 12.9.2009, 23:39
Только. Все.
Автор: Cjay 17.9.2009, 15:10
как всё?....насколько понимаю этот скрипт и на веб-страничке лог чата показывать должен, значит папка с php еще должна бы быть вместе с луа....вот я запутался, какой из архивов качать?
Автор: Setuper 17.9.2009, 16:17
Нет. Веб страничку нужно делать самому))) Скрипт только заносит лог в базу данных.
Автор: Cjay 18.9.2009, 18:46
Setuper, так бы сразу и сказали =) спс, понятно
Автор: 333333 19.9.2009, 21:53
Поработал несколько дней и выл это :
CatLogsMSQL.lua:276 invalid capture index
Автор: Setuper 19.9.2009, 22:16
Исправление данной ошибки описано тут: http://mydc.ru/index.html?showtopic=1823&view=findpost&p=17961
Автор: 333333 22.9.2009, 21:22
Теперь так :
CatLogsMSQL.lua:276 bad argument #2 to 'format' (string expected, got no value )
Автор: Setuper 22.9.2009, 22:44
Раз такая ошибка, значит ты не так её исправил. Если написать то, написано по выше указанной ссылке, то такой ошибки в принципе не может получиться)))
Автор: evg 10.11.2009, 16:31
Пытаюсь сделать "на лету" перевод в utf-8, используя функцию http://mydc.ru/ipb.html?s=&showtopic=334&view=findpost&p=2276 , база в UTF-8
вставил AnsiToUtf8(tUser.sNick) и AnsiToUtf8(sMsg)) :
Код
local _,_,sMsg = sData:find("%b<>%s+(.*)") if ((not sCmd or ((iMe == 1) and (sCmd == "!me" or sCmd == "+me" or sCmd == "/me"))) or (sCmd == "[!+/]me")) and (not (sMsg:match("is kicking"))) and (tExNick[tUser.sNick] ~= 1) then 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"), AnsiToUtf8(tUser.sNick), tUser.sIP, AnsiToUtf8(sMsg))) end
получаю:
подскажите, пожалуйста, где грабли?
Автор: EW ХАБЫЧ 12.12.2009, 21:56
А можно к нему сделать к примеру такое меню?:
Меню хаба\\История чата\\Показывать при входе\\Да Меню хаба\\История чата\\Показывать при входе\\Нет Меню хаба\\История чата\\Посмотреть лог за сегодня
Автор: Wariner 12.12.2009, 22:01
за сегодня там вроде и так есть, а вот по поводу показывать не показывать, то это конечно можно, но как нибудь позже, если никто не сделает...
Автор: EW ХАБЫЧ 12.12.2009, 23:54
да это только для меню админа "за сёдня", но думаю смогу сам переделать чтобы было и юзерам. а так зарание спасибо
Автор: alcorp 15.12.2009, 9:31
Код
1. 2009-12-15 09:25:26 :290: attempt to index local 'cur' (a nil value)
Код
chatlogsmysql.lua:297: invalid capture index
Интересная такая финалка получается...
Код
Команда не будетИ выполнена!
Код
Введите коррИктировку (пропущена запятая) например (пропущена запятая)
Не забывайте, что русский язык тоже имеет синтаксис.
Вывод последних фраз происходит снизу вверх, а не сверху вниз. Ребят, Вы что, китайцы?
Код
sMsg = sMsg:gsub(i, "%%s"):format(v)
invalid option '%D' to 'format'
И никто ничего, интересно как у других работает, и автор наверно этим скриптом не пользуется вообще.
Автор: Хабыч 16.12.2009, 17:42
Думаю хорошо бы было если в скрипте который выводит лог на сайт все ссылки отображались по человечески Сейчас они как обычный текст.
Автор: fixx 26.12.2009, 21:56
Хабыч, если разрешить теги, то я смогу через чат хаба написать тебе очень большими буквами и неестевственным цветом на странице с чатлогом. Очень хорошо, что это делать нельзя. Проверки моих юзеров на это я вижу чуть ли не ежедневно. Сидит молодежь, узнала азы хтмл и пробует силы. ;) Но даже это ничто, по сравнению с тем, что можно разместить через чат на ТВОЕЙ странице, если страница будет реагировать на теги... Так что со ссылками пока никак. Думается, что магнеты можно было бы разрешить, а вот хттп... здесь бы я не рискнул.
Автор: Хабыч 18.1.2010, 3:02
Wariner Подскажи пожалуйста что и как надо изменить чтоби при заходе на хаб было не Time Nick Msg а по-русски Время, Ник Сообщение.
Цитата
а вот по поводу показывать не показывать
Забыли
Автор: Wariner 18.1.2010, 18:19
Цитата(Хабыч @ 18.1.2010, 3:02)
Wariner Подскажи пожалуйста что и как надо изменить чтоби при заходе на хаб было не Time Nick Msg а по-русски Время, Ник Сообщение.
Код
local TypeInMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения (при входе) local TypeTodayMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог за сегодня) local TypeDataMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог за дату) local TypePeriodMsg = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог за период) local TypeTodayMsgNick = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за сегодня) local TypeDataMsgNick = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за дату) local TypePeriodMsgNick = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за период) local TypeTodayMsgIP = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за сегодня) local TypeDataMsgIP = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за дату) local TypePeriodMsgIP = "id \t Time \t Date \t Nick(IP) \t\t\t Msg" -- Настройка вида сообщения ( лог ника за период)
Цитата(alcorp @ 15.12.2009, 9:31)
Не забывайте, что русский язык тоже имеет синтаксис.
Вывод последних фраз происходит снизу вверх, а не сверху вниз. Ребят, Вы что, китайцы?
И никто ничего, интересно как у других работает, и автор наверно этим скриптом не пользуется вообще.
Русский язык думаю вы и сами в состоянии поправить!
Вывод сделан в той последовательности в котором сообщения шли в чат и когда ты заходишь первое увиденное тобой сообщение и последнее сообщения лога были как раз по по рядку!
Автор не юзает этот скрипт, потому что у автора нет хаба!
PS: когда комментируете достаточно ёмкие по написанию скрипты думайте головой что пишите, а то такое ощущение что вы все прям такое же напишите с закрытыми глазами!!!
Автор: Хабыч 18.1.2010, 18:36
Это я пробовал. Только получилось вместо показа времени например слово "время"
точнее это...
........................................................................................................................ Время Date Nick Msg ........................................................................................................................
Время 18.01.2010 Saymon тест ........................................................................................................................ ..
Код
local TypeInMsg = "Время \t Date \t Nick \t\t\t Msg"
Автор: Wariner 18.1.2010, 18:42
Хм да извиняюсь. достаточно давно уже не открывал его.
Странно по идеи должен русскими писать.... А во всех остальных режимах как?
Автор: Хабыч 18.1.2010, 18:49
в отстальных ничего такова не замечал.
Автор: sergius 21.1.2010, 17:42
Изменить последовательность отображения сообщений как?
Автор: Nickolya 21.1.2010, 20:19
Что-то мне говорит что надо приписать в строке сортировку, вот в этой:
Код
local cur = con:execute(("SELECT * FROM `%sMainLogs` WHERE (%s)"):format(sPrefixTable, sWhere))
и сделать ее вот такой:
Код
local cur = con:execute(("SELECT * FROM `%sMainLogs` WHERE (%s) ORDER BY `id` DESC"):format(sPrefixTable, sWhere))
Информация не проверенная, так что не ручаюсь...
Автор: sergius 22.1.2010, 0:32
Афтор, прошу комментария
Автор: Nickolya 22.1.2010, 0:45
По поводу? Работает эта замена или что, ты расскажи что тебе надо, логично и просто, пожалуйста.
Автор: sergius 22.1.2010, 1:35
Сообщения выводить сверху вних, от старого к свежему
нужно на уменьшение id
Автор: Wariner 22.1.2010, 7:31
Тебе ответили несколькими постами выше! чё не понятно?!
PS: история чата должна выводится именно так, чтобы зашедший на хаб человек пролистал её как чат(как будто он был на хабе) и первое сообщение при его присутствии было тесно связанно по смыслу с последним сообщением истории!
Автор: sergius 22.1.2010, 13:56
Wariner всё верно ты говоришь, только почему же так не работает? Есть мнение что скрипту пофигу в каком порядке выборка из базы...
толи лыжи не едут то ли... в скрипте же так и сделано! Вот рабочий скрипт с нашего хаба dchub://hub.mydc.ru
Цитата
- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [18:52:47] <ChatLogBot> Последние 20 сообщений главного чата: - <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
- [22.01.2010] [16:38:49] < ».†.« Хомячёк хрум хрум ».†.« > В лучших традициях))) ахха, наша раша - абсолютно полное отсутствие юмора! - [22.01.2010] [16:39:28] < ».†.« Хомячёк хрум хрум ».†.« > как и ожидал ничего интересного и смешного, некоторые моменты улыбнуло, но чтоб посмеяться от души моментов нет. разок глянуть можно, но ждать мега фильма не стоит. оценка 3- - [22.01.2010] [16:39:54] < ».†.« Хомячёк хрум хрум ».†.« > шутки такие же как и в камеди клаб ... - [22.01.2010] [16:40:17] < ».†.« Хомячёк хрум хрум ».†.« > к тому же камрип? смотреть? беее.. я досихпор аватар не посмотрел - [22.01.2010] [16:40:39] < ».†.« Хомячёк хрум хрум ».†.« > завтро покажу какие тапки купил - [22.01.2010] [17:03:38] <Saymon> HackFresse, норм фильм? или опять байда какая нибудь - [22.01.2010] [17:04:08] <Nexx_&_All> да сто пудов байда - [22.01.2010] [17:15:52] < ».†.« Хомячёк хрум хрум ».†.« > неужели ты из тех кто смотрит камрип? - [22.01.2010] [17:20:28] < ».†.« Хомячёк хрум хрум ».†.« > кто хочет фундука? у мну 3кг есть ) нахрумкаться до посинения - [22.01.2010] [18:24:53] <ParaSite> фтопку - [22.01.2010] [18:36:18] <evg> Доброго времени суток хабберы - [22.01.2010] [18:37:18] <evg> У грея, как и у некоторых других клиентов есть возможность использовать теги, например: [url] и [img] как их можно обойти? - [22.01.2010] [18:37:24] <evg> что бы клиент видел именно теги ) - [22.01.2010] [18:39:17] <FallenAngel> d yfcnhjqrf[ vj;yj dhjlt jnrk.xbnm ghbvtytybt ntujd - [22.01.2010] [18:39:20] <FallenAngel> в настройках можно вроде отключить применение тегов - [22.01.2010] [18:42:06] <evg> FallenAngel: не, надо что бы те, у кого клиент такой видели теги, а не резултат парсера тегов - [22.01.2010] [18:47:31] <FallenAngel> Ну, я и гворю что их отключить можно и вместо цветного текста будет видно теги - [22.01.2010] [18:47:38] <FallenAngel> ТОк каг-я хз, давно не юзал грей - [22.01.2010] [18:51:41] <evg> FallenAngel: угу, не заставишь ведь всех юзеров теги отключить - [22.01.2010] [18:52:07] <evg> думал может клиентами предусмотрено что то...
Значит у меня MySQL неверный или Ptokax не та =) Кстати у вас скрипт переработанный, во всяком случае внешне визуально он более симпатично выводит. Если лыжы не едут намекните что неверно в моём MySQL или PtokaX, или всё же что то не было учтено при создании скрипта?
Скрипт постоянно виснет [09:29] Синтаксис ChatLogsMySQL.lua:276: invalid capture index
Автор: Cjay 6.4.2010, 21:39
хм где-то косячек чтоли...почему-то не залогировалось сообщение с виду вроде обычное... там кроме букв разве что были =) - и \. вот \ как раз на конце предложения и в середине было.. в общем я написал пару слов поставил смайл и кинул адрес сайта в чат. в итоге сообщения в логе нет
нашел причину, действительно, если в конце сообщения поставить \ то оно не логируется, как поправить это? вывод лога чата тоже как-то криво выводится...шапка таблицы очень сдвинута...
вообще не логируется символ \ если он стоит в начале или середине сообщения то всё более или менее хорошо, в логе просто нет этого символа, всё остальное сообщение на месте. если же он стоит последним в сообщении, то в логе нет всего сообщения.. если написать \\ то в логе будет \ как это вылечить?
Автор: Serx 7.4.2010, 9:17
Цитата(Setuper @ 29.8.2009, 14:43)
Символ \ нужно экранировать так: \\ Также этот символ используется для переноса строки:
Код
"какая-то строка \ что-то после переноса"
Я пытался это сделать строчкой
Код
string.gsub (sMsg, "\", "\\")
но скрипт при запуске выдал ошибку: [12:10] Синтаксис C:\Program Files\PtokaX\scripts\ChatLogs__MySQL.lua:275: ')' expected near '\'
Автор: Cjay 7.4.2010, 18:58
вот если бы он работал как перенос строк то я полагаю мы бы вместо "при\вет" получали не "привет" а "при вет" что-тов этом духе, а тут просто этот символ не логируется...а в конце строки если он стоит вообще что-то не понятное со всем сообщением происходит
Автор: whuru 10.4.2010, 18:57
Цитата
Синтаксис F:\Ptokax\scripts\ChatLogsMySQL.lua:276: invalid capture index
С завидной регулярностью отваливается. Куда копать?
БД в утф8 ибо в цп1251 одни вопросы.
Автор: Cjay 11.4.2010, 20:27
whuru, и у меня тоже эта ошибка с завидным постоянством вываливаться стала бд в цп1251 =) так что там не в кодировке дело явно) ошибка на строке: sMsg = sMsg:gsub(i, v)
Автор: Setuper 11.4.2010, 20:38
данная ошибка обсуждалась на хабе форума (28.06.2009)
Решение проблемы:
Код
sMsg = sMsg:gsub(i, "%%s"):format(v)
Автор: whuru 11.4.2010, 21:50
Не помогло, теперь другая ошибка:
Цитата
Синтаксис F:\Ptokax\scripts\ChatLogsMySQL.lua:276: invalid option '%D' to 'format'
Спасибо, долго работал, почти сутки, и в итоге ошибка
Цитата
Синтаксис F:\Ptokax\scripts\ChatLogsMySQL.lua:276: bad argument #2 to 'format' (string expected, got no value)
и теперь отваливается каждую минуту
Автор: Setuper 12.4.2010, 20:08
Подобного рода ошибка может быть только в том случае, если в имени столбца содержится знак процента. По своей сути скрипт вроде как не создаёт таблиц со знаками процента в именах столбцов.
Попробуй вот такое решение:
Код
sMsg = sMsg:gsub(i, v:gsub("%%", "%%%%"))
Автор: whuru 12.4.2010, 20:13
Так он не сохраняет в базу, вот что выводит:
Цитата
==================================================================================================== id Time Date Nick(IP) Msg ==================================================================================================== id 21:17:23 12.04.2010 Nick(IP) Msg ====================================================================================================
Автор: Setuper 12.4.2010, 20:36
Код
v = v:gsub("%%", "%%%%") sMsg = sMsg:gsub(i, v)
или просто вот так:
Код
sMsg = sMsg:gsub(i, (v:gsub("%%", "%%%%")))
Автор: whuru 18.4.2010, 21:39
Спасибо, помогло. Несколько суток работает не падает. Может имеет смысл обновить первый пост? Или в каждом конкретном случае по-разному будет написана эта строка?
Автор: _Deagle_Factory_ 1.5.2010, 20:53
У меня выходит ошибка
Синтаксис...Артем\\Рабочий стол\\птока\\scripts\\ChatlogsMYSQL.lua67:Error connecting to database. MYSQL:Acces denied for user 'root@localhost' ( using pasword YES )
Автор: Saymon 1.5.2010, 21:00
Проверь правильно ли ввёл пароль.
Автор: Санёк 11.6.2010, 20:00
Спасибо, отличный скрипт!
Единственное, вопрос. Как сделать отступ после последней выведенной строки. Если кто-то приходит или уходит сообщение об этом пишется без переноса в последней строке истории чата.
- [2010-06-11] [11:29:31] <Ник> Последнее сообщение в истрии чата[11:30:48] *** Ушёл: Ник
Крайне нестабильный скрипт какой-то. Пересоздал БД подчитсую, перезапустил скрипт. Теперь вроде всё ОК!
Автор: Санёк 13.6.2010, 14:44
Скрипт очень уязвим! У меня он ломается от смайлов клиента. Когда пользователь пишет сообщение с 1 смайлом и скрипт в последующем выводит историю только до этого сообщения без переноса следующей строки, о чём я расписывал. Новые сообщения пишутся в БД, но выводить он будет всё равно до этого сообщения со смалом. Если удалить эту мессагу с БД, то скрипт продолжает нормально функционировать дальше, выводить все сообщения. Смайлы имееют код: \001
Как поправить ?
Автор: Serx 15.6.2010, 19:56
Цитата(Cjay @ 7.4.2010, 0:39)
хм где-то косячек чтоли...почему-то не залогировалось сообщение с виду вроде обычное... там кроме букв разве что были =) - и \. вот \ как раз на конце предложения и в середине было.. в общем я написал пару слов поставил смайл и кинул адрес сайта в чат. в итоге сообщения в логе нет
нашел причину, действительно, если в конце сообщения поставить \ то оно не логируется, как поправить это? вывод лога чата тоже как-то криво выводится...шапка таблицы очень сдвинута...
вообще не логируется символ \ если он стоит в начале или середине сообщения то всё более или менее хорошо, в логе просто нет этого символа, всё остальное сообщение на месте. если же он стоит последним в сообщении, то в логе нет всего сообщения.. если написать \\ то в логе будет \ как это вылечить?
Помогает замена последней функции (метода) или если точнее одной строчки по примеру в http://mydc.ru/index.html?showtopic=1508&view=findpost&p=23495 Спасибо, Setuper.
Автор: Liakmad 16.6.2010, 16:01
Всем доброго времени суток. Приучил этот скрипт работать с полностью UTF-ной базой. Строка конвертится в UTF-8 при инсерте в базу, а при выводе в хаб обратно конвертируются в cp1521 Ник и Сообщение Для этого использовались функции конвертации от http://mydc.ru/index.html?showtopic=334&view=findpost&p=2276. Если кому пригодится - ниже привожу дифф и готовую скрипту.
Код
< 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]
Заметил ошибку скрипта.При введении магнетки скрипт накрывается.В базе появляется ошибка.Лечится с очистки в базе.Прошу автора перебрать скрипт.
СПС.
Автор: Dimon21 23.8.2010, 10:25
Добрый день всем кто посещает этот форум.У меня возник вопрос.Что можно зделать в этом скрипте,чтоб не проходила реклама,хотя антиреклама стоит.Скрипт злостно записывает всё.
Автор: Nickolya 23.8.2010, 12:01
Поставить скрипт ниже антирекламы...
Автор: Naum_Off 21.11.2010, 12:02
Доброго времени суток. Подскажите как по аккуратнее почистить бд. Скажем удалить последние 10к сообщений.
Автор: Saymon 21.11.2010, 13:02
PhpMyAdmin в помощь
Автор: Nickolya 22.11.2010, 17:04
Saymon, жестко ты. Все же просто:
Код
DELETE FROM `имя_таблицы` ORDER BY `id` DESC LIMIT 10000
Автор: Kingston 21.12.2010, 8:14
Сообщения перевалили за 10к. Через меню перестало работать удаление сообщений. Ошибок скрипта нет, при неверном значении ошибок нет и нет сообщения. Незнаю куда копать
Автор: Nickolya 22.12.2010, 1:08
Мы перешли на переделанный скрипт Алекса, чего и вам советую: http://mydc.ru/topic3682.html, ибо этот уже не поддерживается. В базе нашего хаба уже приближается к 300000 записей и всё работает на ура
Автор: Kingston 23.12.2010, 9:05
Блин... я прогнался... У меня стоит тот скрипт, ChatHistorySQL.. Извиняйте