myDC.ru

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

 

> TopSeachMySQL, API2 | Топ поисков на хабе

Теги
Wariner
сообщение 13.4.2009, 19:47
Сообщение #1


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

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




Название скрипта: TopSeachMySQL
Версия скрипта: 1.0 RC1
Версия API: API2
Автор: Wariner
Особенности: работа с MySQL
Описание скрипта:
- Оснавная возможность - ведёт топ поисков на хабе
- Вывод общего топа целиком или по категориям
- Вывод топов за сегодня месяц и год целиком или по категориям
- Для работы требуется библиотека MySQL( тема с библиотекой ) и соответственно MySQL сервер

v 1.0 RC2
- Добавлен лог ошибок
- В базу заносятся только поиски определённой длинны (в соответствии с настройками хаба)
- Поправлена пара ошибок

PS: тестим, отписываем комментарии и пожелания))))
PPS: БД надо создавать вручную! Таблицы создадутся сами!
Прикрепленные файлы
Прикрепленный файл  TopSeachMySQL.lua ( 17.62 килобайт ) Кол-во скачиваний: 210
 


Спасибо сказали:
Go to the top of the page
+Quote Post
3 страниц V   1 2 3 >  
Начать новую тему
Ответов
Setuper
сообщение 13.4.2009, 20:16
Сообщение #2


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

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




хм... а что так много одинаковых таблиц? Зачем?
Go to the top of the page
+Quote Post
Wariner
сообщение 13.4.2009, 20:22
Сообщение #3


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

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




в данном случае таблицы используются вместо условий.

по работе с MySQL есть замечания(оптимизация)?


Спасибо сказали:
Go to the top of the page
+Quote Post
Setuper
сообщение 13.4.2009, 20:41
Сообщение #4


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

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




Надо было не дробить, а просто завести ещё один атрибут и вставлять в таблицу с условием WHERE в этом атрибуте

Иначи создаётся и заполняется лишняя таблица
Go to the top of the page
+Quote Post
Wariner
сообщение 13.4.2009, 20:50
Сообщение #5


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

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




не понял о чём речь. можно поподробнее?

upd: понял. просто не про те таблицы подумал. попробую исправить.
Go to the top of the page
+Quote Post
BeN
сообщение 14.4.2009, 17:59
Сообщение #6


Участник
**

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




Хм.. интересно)
Go to the top of the page
+Quote Post
Wariner
сообщение 14.4.2009, 19:09
Сообщение #7


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

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




комментарий Ильи учтён, стало компактнее и удобнее! тестим)))
Go to the top of the page
+Quote Post
Setuper
сообщение 14.4.2009, 19:14
Сообщение #8


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

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




Ну вот, совсем другое дело. Азы mysql программирования освоены.
Теперь бы тебе ещё освоить структурированное программирование (классы) big_smile.gif тогда твоим скриптам цены бы не было big_smile.gif
Go to the top of the page
+Quote Post
Wariner
сообщение 14.4.2009, 19:22
Сообщение #9


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

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




буду стараться))))
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 14.4.2009, 21:25
Сообщение #10


Я коварный Санта Клаус
******

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




Ай да Wariner, ну и молодец! Спасибо тебе. Запустил скрипт - создал базу mysql, прописал ее в скрипте, пользователя, пароль - и всё заработало!
Цитата
[21:50:08] <SeachBot> Общиий топ поиска на хабе:

========================================
Текст Кол.
========================================
окна 1
шпаргалка 1
бумер 1
гр бумер 1
воздушная скорость avi lbgh2sn4zrracnz6dqeukazn224azbmtjmaryky 1
david vendetta 1
воздушная скорость avi 1
========================================

5 минут - полёт нормальный!Памяти кушает 140 килобайт.

Цитата
[22:17] Синтаксис ... Интернет\PtokaX 0.4.1.1\scripts\TopSeachMySQL.lua:144: bad argument #3 to 'format' (string expected, got nil)


Код
con:execute(("INSERT INTO `SeachDate` (`id_Seach`, `date_Seach`, `category`) VALUES ((SELECT `id` FROM `TopSeach` WHERE Seach = '%s'),'%s','%s')"):format(sSeach,os.date("%Y-%m-%d"),iNumber))
- вот она эта строчка

Вот что менял - добавлял только исключения:

Код
local tExceptions = {    -- Слова исключения которые в топ заносится не будут
    ["xxx"] = 1,
    ["порно"] = 1,
    ["малолетки"] = 1,
    ["porn"] = 1,
    ["анал"] = 1,
    ["ххх"] = 1,
            ["porno"] = 1,
}
Go to the top of the page
+Quote Post
Wariner
сообщение 14.4.2009, 21:28
Сообщение #11


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

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




Код
function SearchArrival(tUser, sData)
    sData = sData:sub(1,-2)
    local _,_,iNumber,sSeach = sData:find("$Search .-%s%u%p%u%p%d%p(%d+)%p(.*)")
    if iNumber and sSeach then
        sSeach = String2Lower(sSeach)
        sSeach = sSeach:gsub("%p", " ")
        local _,_,sTthseach = sSeach:find("^(%a%a%a)")
        if sTthseach ~= "tth" then
            if tExceptions[sSeach] ~= 1 then
                con:execute(("INSERT INTO `TopSeach` (`Seach`) VALUES ('%s')"):format(sSeach))
                con:execute(("UPDATE `TopSeach` SET `S%s` = `S%s` + 1 WHERE `Seach` = '%s'"):format(tostring(iNumber), tostring(iNumber), sSeach))
                con:execute(("INSERT INTO `SeachDate` (`id_Seach`, `date_Seach`, `category`) VALUES ((SELECT `id` FROM `TopSeach` WHERE Seach = '%s'),'%s','%s')"):format(sSeach,os.date("%Y-%m-%d"),iNumber))
            end    
        end    
    end
end
Go to the top of the page
+Quote Post
Setuper
сообщение 14.4.2009, 21:39
Сообщение #12


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

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




Достаточно было написать так:
Код
  local iNumber, sSeach = sData:match"$Search .-%s%u%p%u%p%d%p(%d+)%p(.*)"
  if iNumber then


Если iNumber будет равно nil, то и sSeach будет равно nil.
Если iNumber не nil, то и sSeach не nil.
Go to the top of the page
+Quote Post
Wariner
сообщение 14.4.2009, 21:39
Сообщение #13


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

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




исправлено несколько мелочей! скрипт перезалит!
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 17.4.2009, 20:04
Сообщение #14


Я коварный Санта Клаус
******

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




Топ поиска документов за месяц:
Цитата
[20:47] Синтаксис ... Интернет\PtokaX 0.4.1.1\scripts\TopSeachMySQL.lua:253: attempt to index field '?' (a nil value)

Скрипт от 14.4.2009, 22:39
Go to the top of the page
+Quote Post
Otshelnik-Fm
сообщение 20.4.2009, 19:58
Сообщение #15


Я коварный Санта Клаус
******

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




А возможно чтобы слова исключения (porn и им подобные) добавлялись через меню хаба в базу mysql (и хранились там) - а не прописывались в конфиге?

(конечно оффтоп - но может кто нибудь сделать на основе данных из базы mysql сделать статистику на сайт? просил в ветке про скрипт StatPX - сделать туда дополнительно но получил отказ. Хотя эти данные из таблиц базы носят ценный характер)
Go to the top of the page
+Quote Post
Wariner
сообщение 20.4.2009, 22:24
Сообщение #16


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

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




про слова сделаю)))
Go to the top of the page
+Quote Post
TMB
сообщение 30.4.2009, 16:30
Сообщение #17


Участник
**

Группа: Пользователи
Сообщений: 44
Регистрация: 25.7.2008
Из: г.Тамбов
Пользователь №: 263
Спасибо сказали: 1 раз




у меня у всех скриптов одна ошибка...библиотеки лежат в правельном месте!!! PtokaX\libs. так же в скрипте всё правельно прописано... beat_brick.gif
стоит xampp 1.6.8. Версия MySQL: 5.0.67
Прикрепленные файлы
Прикрепленный файл  Безимени_2.gif ( 20 килобайт ) Кол-во скачиваний: 238
 
Go to the top of the page
+Quote Post
Setuper
сообщение 30.4.2009, 16:49
Сообщение #18


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

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




1) Библиотека libmysql.dll должна лежать в папке libs, а папка libs должна быть создана в директории, откуда запускается ptokax, а не в директории scripts.

Вообще говоря, конфигурация папок и файлов должна быть такой:
Цитата
"корневая папка ptokax"/libs/libmysql.dll
"корневая папка ptokax"/libs/luasql/mysql.dll
"корневая папка ptokax"/scripts/TopSeachMySQL.lua


2) Откуда ptokax подгружает библиотеки можно посмотреть с помощью скрипта:
Код
Core.SendToAll(tostring(package.cpath))

3) Если все равно не загружается, то попробуй перенести содержимое папки libs в корневую папку, в которой находится ptokax.exe

4) Подобного рода ошибки могут также возникать если mysql сервер остановлен или вовсе отсутствует!
Go to the top of the page
+Quote Post
TMB
сообщение 30.4.2009, 17:52
Сообщение #19


Участник
**

Группа: Пользователи
Сообщений: 44
Регистрация: 25.7.2008
Из: г.Тамбов
Пользователь №: 263
Спасибо сказали: 1 раз




[18:50] Синтаксис error loading module 'luasql.mysql' from file 'H:\PtokaX\libs\luasql\mysql.dll':
Не найден указанный модуль.
в Ptokax такие ошибки..!
мускул включён...трекер то нормально работает... beat_brick.gif

а если перенести то так:
[18:55] Синтаксис H:\PtokaX\scripts\RankingScript.lua:46: LuaSQL: Error connecting to database. MySQL: Unknown database 'chatrang'
типа не может приконектится!!!
Прикрепленные файлы
Прикрепленный файл  Безимени_3.gif ( 26.01 килобайт ) Кол-во скачиваний: 232
 
Go to the top of the page
+Quote Post
Setuper
сообщение 30.4.2009, 18:08
Сообщение #20


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

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




Конечно. Нужно сначала создать базу данных, а потом уже к ней коннектиться
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts От: TopSeachMySQL
От темы с ID: 1765
0 exxxx 1 810 20.2.2010, 15:00 Посл. сообщение: exxxx
No New Posts От: TopSeachMySQL
От темы с ID: 1765
0 Lesh™ 1 075 7.10.2009, 19:27 Посл. сообщение: Lesh™

 



RSS Сейчас: 24.6.2018, 10:07