Webstats, API2 | Веб-статистика для хаба |
Здравствуйте, гость ( Вход | Регистрация )
Webstats, API2 | Веб-статистика для хаба |
14.7.2009, 17:15
Сообщение
#401
|
|
AmxModx Scripter Группа: Пользователи Сообщений: 302 Регистрация: 2.12.2008 Из: Королев Пользователь №: 1 283 Спасибо сказали: 127 раз |
Название скрипта: WebStats
Версия скрипта: 0.3 Версия API: API 2 Автор: PomanoB Описание скрипта: Скрипт предназначен для вывода некоторой информации о хабе на сайт. Основные функции: - Вывод общей статистики хаба - Гибко настраиваемый юзербар с поддержкой анимации: можно выбрать фон, шрифт, анимацию, размер, цвет, текст и координаты надписи/двух надписей Пример юзербара можно посмотреть у меня в подписи - RSS с информацией о текущей шаре хаба и количества пользователей - Список хабов - Построение диаграммы распределения пользователей по объему шары - Построение графика распределения пользователей по клиентам - Топ пользователей по шаре и времени онлайн - Информация о всех пользователях с удобным поиском - Поиск по нику, IP, профилю и клиенту - Индивидуальная расширенная информация о каждом пользователе - Система шаблонов позволят легко настраивать внешний вид Файл block.php в папке inc предназначен для вывода информации в центральный блок сайта на главной странице Пользователям lighttpd нужно подключить lighttpd-hub.conf Пользователям Apache нужно найти в конфиге AllowOverride и написать там AllowOverride All Необходимо запускать файл inc/cli.php с нужной периодичностью для обновления информации о хабах RSS доступно по адресу hubstats/hub<номер_хаба>.xml Пример работы скрипта можно посмотреть Пример главной страницы статистики - Небольшое обновление - быстрая сортировка по клику на соответвующей надписи в заголовке таблицы списка пользователей V 0.1.2.1 - Исправлена ошибка поиска при множестве находимых элементов - Более удобный поиск по профилю V 0.2.0 - Переход на XSLT-преобразования - Отделение графиков от информации о хабе - Новый дизайн - Поддержка ланг-файлов - Новый формат таблицы пользователей - Изменение поиска - Устранение багов v 0.2.0.1 - Оптимизация - Исправление багов v 0.2.0.2 - Исправлена ошибка с русскими ссылками v 0.3 - Переработан юзербар и добавлена возможность анимации юзербара - Добавлен список хабов - RSS - отбор пользователей по онлайн
Прикрепленные файлы
Спасибо сказали: Nickolya, intlive, Invisible, mariner, LyaKich, fixx, Lesh™, Otshelnik-Fm, Vizunchik, -=Alexandr=-, truth, HackFresse, Parad0x, KT315, Andrew Frost, Kingston, PSIX, Saymon21, exxxx, Dimon21, SergeySV, TiGRpp, KamoK, Pro009, shmeks, UnFeeLing, DEN 007, Underconstruction, ke(x)one, dj_crazy_joker, мамин_парень |
|
|
14.9.2010, 23:00
Сообщение
#402
|
|
Постоялец Группа: Пользователи Сообщений: 403 Регистрация: 4.11.2008 Из: Город Уфа Пользователь №: 994 Спасибо сказали: 115 раз |
Эх эти ошибки
Код Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free result sets which were requested using mysql_query() in Unknown on line 0 И да ещё определяет шару Rin 94.41.19.182 UnReg 2.05 Пб. а на самом деле 2.05 Гб
Прикрепленные файлы
|
|
|
15.9.2010, 18:34
Сообщение
#403
|
|
AmxModx Scripter Группа: Пользователи Сообщений: 302 Регистрация: 2.12.2008 Из: Королев Пользователь №: 1 283 Спасибо сказали: 127 раз |
Это такая ошибка когда возникает?
|
|
|
15.9.2010, 19:50
Сообщение
#404
|
|
Постоялец Группа: Пользователи Сообщений: 403 Регистрация: 4.11.2008 Из: Город Уфа Пользователь №: 994 Спасибо сказали: 115 раз |
Эту ошибку можно исправить изменив в php.ini
Код mysql.trace_mode On на Код mysql.trace_mode Off Я вот не пойму почему он шару не правильно определяет |
|
|
15.9.2010, 22:09
Сообщение
#405
|
|
AmxModx Scripter Группа: Пользователи Сообщений: 302 Регистрация: 2.12.2008 Из: Королев Пользователь №: 1 283 Спасибо сказали: 127 раз |
Когда возникает такая ошибка?
|
|
|
15.9.2010, 22:28
Сообщение
#406
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
PomanoB, по некоторым слухам и догадкам, это перепиленный на верли скрипт, так что тут возможно что угодно...
|
|
|
16.9.2010, 8:05
Сообщение
#407
|
|
AmxModx Scripter Группа: Пользователи Сообщений: 302 Регистрация: 2.12.2008 Из: Королев Пользователь №: 1 283 Спасибо сказали: 127 раз |
понятно
|
|
|
18.9.2010, 16:41
Сообщение
#408
|
|
Участник Группа: Пользователи Сообщений: 31 Регистрация: 13.1.2010 Пользователь №: 5 672 Спасибо сказали: 0 раз |
Скиньте плиз lua скрипт под verlihub всю тему переломатил не смог найти :(
|
|
|
18.9.2010, 16:50
Сообщение
#409
|
|
Постоялец Группа: Пользователи Сообщений: 403 Регистрация: 4.11.2008 Из: Город Уфа Пользователь №: 994 Спасибо сказали: 115 раз |
Раскрывающийся текст Код -- WebStats v 0.3.0.2 (Версия для VerliHub) local iTime=20 --время в минутах для обновления local sHostDB="127.0.0.1" local sNameDB="verlihub" local sUserDB="" local sPassDB="" local sPrefixTable="ws_" _G.string.dbformat = function(self, ...) local t = {...} for k, v in _G.ipairs(t) do t[k] = _G.tostring(v):gsub("(['\\\"])", "\\%1")--'" end return self:format(_G.unpack(t)) end function Main() assert(VH:SQLQuery("SET sql_mode='';")) assert(VH:SQLQuery( ("CREATE TABLE IF NOT EXISTS %susers (".. "ip VARCHAR(16) NOT NULL, ".. "nick VARCHAR(32) NOT NULL, ".. "description VARCHAR(128) NOT NULL, ".. "profile TINYINT NOT NULL, ".. "email VARCHAR(30) NOT NULL, ".. "login_time BIGINT UNSIGNED NOT NULL,".. "disconnect_time BIGINT UNSIGNED NOT NULL, ".. "online_time BIGINT UNSIGNED NOT NULL, ".. "share_size BIGINT UNSIGNED NOT NULL, ".. "hubs TINYINT UNSIGNED NOT NULL, ".. "slots TINYINT UNSIGNED NOT NULL, ".. "client VARCHAR(15) NOT NULL, ".. "client_version VARCHAR(15) NOT NULL, ".. "tag VARCHAR(32) NOT NULL, ".. "UNIQUE (nick))"):format(sPrefixTable))) assert(VH:SQLQuery( ("CREATE TABLE IF NOT EXISTS `%shubs` (".. "`id` int(16) unsigned NOT NULL AUTO_INCREMENT,".. "`addr` text NOT NULL,".. "`port` int(6) unsigned NOT NULL DEFAULT '411',".. "`users` int(16) unsigned NOT NULL,".. "`share` bigint(20) unsigned NOT NULL,".. "`last_online` int(10) unsigned NOT NULL,".. "`name` text NOT NULL,".. "`online` int(1) unsigned NOT NULL,".. "`type` text NOT NULL,".. "PRIMARY KEY (`id`))" ):format(sPrefixTable))) assert(VH:SQLQuery( ("CREATE TABLE IF NOT EXISTS %sprofiles (".. "profile_number TINYINT NOT NULL,".. "profile_name VARCHAR(32) NOT NULL, ".. "UNIQUE (profile_number))" ):format(sPrefixTable))) local tProfiles = {"Reg","VIP","OP","Cheef","Master","Master","Master","Master","Master","Admin"} local sQSP = ("INSERT INTO %sprofiles (profile_number, profile_name) VALUES "):format(sPrefixTable) for i = 0,10 do sQSP = sQSP.."("..i..", '"..(tProfiles[i] or "UnReg").."'), " end sQSP = sQSP.."(-1, 'UnReg') ON DUPLICATE KEY UPDATE profile_name = VALUES(profile_name)" assert(VH:SQLQuery(sQSP)) assert(VH:SQLQuery( ("CREATE TABLE IF NOT EXISTS %shub (".. "version VARCHAR(16) NOT NULL,".. "topic VARCHAR(128) NOT NULL,".. "uptime BIGINT UNSIGNED NOT NULL,".. "max_user INT UNSIGNED NOT NULL,".. "user INT UNSIGNED NOT NULL,".. "ops INT UNSIGNED NOT NULL,".. "max_share BIGINT UNSIGNED NOT NULL,".. "share BIGINT UNSIGNED NOT NULL)" ):format(sPrefixTable))) local res,cur = VH:SQLQuery(("SELECT * FROM %shub"):format(sPrefixTable)) local row = VH:SQLFetch(0) if not row then assert(VH:SQLQuery( ("INSERT %shub SET ".. "uptime = 0,".. "max_user = 0,".. "user = 0,".. "ops = 0,".. "max_share = 0,".. "share = 0" ):format(sPrefixTable))) end end OnStartup=Main function isOp(user) if GetUsrClass(user) >= 3 then return true end return false end -- проверка на Op -- OP check function GetCurTopic() local _,curtop=VH:GetConfig("config", "hub_desc") return curtop or "" end --получить текущий топик --getting current topic function GetOPs() local UsrTab={} local _, OnlineUsers = VH:GetNickList() for name in OnlineUsers:gmatch("(%S-)%$%$") do if isOp(name)==true then table.insert(UsrTab,name) end end return UsrTab end TimerCount = iTime*60 -- количество секунд для триггера таймера -- Quantity of seconds for the timer trigger CurrentTickCount = 0 -- счетчик тиков -- The counter of tics TickIncrement = 1 -- приращение за тик -- Increment for a tic starttime=os.time() function VH_OnTimer() CurrentTickCount = CurrentTickCount + TickIncrement if CurrentTickCount < TimerCount then return end CurrentTickCount = 0 TickIncrement = 0 local sVersion = '0.9.8e-r2' local sTopic = GetCurTopic() local iMaxUser local iMaxShare local _,iUser = VH:GetUsersCount() local _,iShare = VH:GetTotalShareSize() local iUptime = os.time()-starttime local iOps=#GetOPs() local res,cur = VH:SQLQuery(("SELECT max_user,max_share FROM %shub"):format(sPrefixTable)) local _,max_user,max_share = VH:SQLFetch(0) iMaxUser = tonumber(max_user) iMaxShare = tonumber(max_share) iShare = iShare / (1024 * 1024) if iMaxUser < iUser then iMaxUser = iUser end if iMaxShare < iShare then iMaxShare = iShare end if not sTopic then sTopic = "NO-TOPIC" end assert(VH:SQLQuery(("UPDATE %shub SET ".. "version = '%s',".. "topic = '%s',".. "uptime = %d,".. "max_user = %d,".. "user = %d,".. "ops = %d,".. "max_share = %d, ".. "share = %d" ):dbformat(sPrefixTable,sVersion,sTopic,iUptime,iMaxUser,iUser,iOps,iMaxShare,iShare))) -- cur:close() collectgarbage("collect") TickIncrement = 1 end --таймер Verlihub --timer function GetUsrClass(user) local ucr, usercl = VH:GetUserClass(user) usercl=tonumber(usercl) or 0 if usercl==-1 then usercl=0 end return usercl end -- получение класса пользователя -- getting user class function GetIP(user) local _,tmpIP = VH:GetUserIP(user) return tmpIP or "" end --получить IP пользователя (строка) --getting user IP function GetMyInfo(user) local _,sMyinfo = VH:GetMyINFO(user) return sMyinfo or "" end --получить полный MyINFO --getting user MyINFO function GetHubs(user) local a1,a2,a3=(GetMyInfo(user) or ""):match("<.-H:(%d+)/(%d+)/(%d+).->") return (a1 or 0)+(a2 or 0)+(a3 or 0) end function VH_OnUserLogin(user) local sEmail = (GetMyInfo(user) or "NONE"):match("%$MyINFO $ALL %S+.-%$.-%$.-%$(.-)%$") or "NONE" local sDescription = (GetMyInfo(user) or ""):match("%$MyINFO $ALL %S+ (.-)[<%$]") or "" local sClientVersion = (GetMyInfo(user) or ""):match("%$MyINFO $ALL %S+.-<.-V:(%S+)[,%$]") or "" local sTag = (GetMyInfo(user) or ""):match("%$MyINFO $ALL %S+.-(<.->)") or "" local iShareSize = tonumber((GetMyInfo(user) or ""):match("(%d+)%$$") or 0) assert(VH:SQLQuery( ("INSERT INTO %susers (".. "ip, `nick`, `description`, `profile`, `email`, login_time, share_size, hubs, slots, `client`, `client_version`, `tag`".. ") VALUES ('%s', '%s', '%s', %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s')".. " ON DUPLICATE KEY UPDATE ".. "`ip` = VALUES(`ip`), `profile` = VALUES(`profile`), `email` = VALUES(`email`), `login_time` = VALUES(`login_time`), ".. "`share_size` = VALUES(`share_size`), `hubs` = VALUES(`hubs`), `slots` = VALUES(`slots`), `client` = VALUES(`client`), `tag` = VALUES(`tag`)" ):dbformat(sPrefixTable, GetIP(user), user, sDescription, GetUsrClass(user), sEmail, os.time(), iShareSize, GetHubs(user), tonumber((GetMyInfo(user) or ""):match("<.-S:(%d+).->") or 0), (GetMyInfo(user) or ""):match("%$MyINFO $ALL %S+.-<(.-)V:%S+") or "???", sClientVersion, sTag))) VH:SQLQuery("UPDATE "..sPrefixTable.."users SET ".. "`share_size` = "..iShareSize.." WHERE `nick` LIKE '"..user:gsub("[\\'\"]","\\%1").."'" ) --заплатка end function VH_OnUserLogout(user) assert(VH:SQLQuery( ("UPDATE %susers SET disconnect_time = %d, online_time = online_time + (disconnect_time - login_time) WHERE nick = '%s'" ):dbformat(sPrefixTable, os.time() ,user))) end на |
|
|
28.11.2010, 19:17
Сообщение
#410
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 26.10.2010 Пользователь №: 7 959 Спасибо сказали: 0 раз |
помогите у меня такая ошибка
Синтаксис C:\Program Files\cshub\scripts\stats.lua:11: module 'luasql.mysql' not found: no field package.preload['luasql.mysql'] no file 'C:\Program Files\cshub\luasql\mysql.lua' no file 'C:\Program Files\cshub\libs\luasql\mysql.lua' no file 'C:\Program Files\cshub\scripts\libs\luasql\mysql.lua' no file 'C:\Program Files\cshub\luasql\mysql.dll' no file 'C:\Program Files\cshub\libs\luasql\mysql.dll' no file 'C:\Program Files\cshub\scripts\libs\luasql\mysql.dll' no file 'C:\Program Files\cshub\luasql.dll' no file 'C:\Program Files\cshub\libs\luasql.dll' no file 'C:\Program Files\cshub\scripts\libs\luasql.dll' |
|
|
28.11.2010, 19:27
Сообщение
#411
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
а библиотеку mysql кто установит?
|
|
|
28.11.2010, 22:06
Сообщение
#412
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 26.10.2010 Пользователь №: 7 959 Спасибо сказали: 0 раз |
|
|
|
28.11.2010, 22:09
Сообщение
#413
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
|
|
|
6.1.2011, 6:10
Сообщение
#414
|
|
Активный участник Группа: Пользователи Сообщений: 85 Регистрация: 19.3.2009 Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре Пользователь №: 2 652 Спасибо сказали: 39 раз |
Обновил хаб до 0.4.1.2c. теперь в стате в списке хабов мой хаб отображает кол-во юзеров и шару в двое больше )) а на главной странице статы нормально все.
|
|
|
6.1.2011, 14:28
Сообщение
#415
|
|
AmxModx Scripter Группа: Пользователи Сообщений: 302 Регистрация: 2.12.2008 Из: Королев Пользователь №: 1 283 Спасибо сказали: 127 раз |
Весьма странно, попробуй из бд его удалить и заново добавить
|
|
|
7.1.2011, 15:22
Сообщение
#416
|
|
Активный участник Группа: Пользователи Сообщений: 85 Регистрация: 19.3.2009 Из: Россия, Хабаровский край, г.Комсомольск-на-Амуре Пользователь №: 2 652 Спасибо сказали: 39 раз |
Это что то у меня с хабом, попробую пересобрать.
|
|
|
19.1.2011, 14:59
Сообщение
#417
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
Может данная проблема уже решалась но я пропустил как всегда.
После перехода на убунту заметил, что в бд некорректное отображение символов русского алфавита. Хотя в венде было всё нормально. Лечить так: В функции OnStartup перед: Код assert(conn:execute("SET sql_mode=''")) Добавляем: Код assert(conn:execute("SET NAMES cp1251"))
|
|
|
21.1.2011, 10:54
Сообщение
#418
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 15.2.2010 Пользователь №: 6 083 Спасибо сказали: 0 раз |
А может кто нибудь скинет ссылку, что бы посмотреть как это выглядит (Web интерфейс).
|
|
|
15.3.2011, 16:34
Сообщение
#419
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 6 Регистрация: 28.12.2010 Пользователь №: 8 403 Спасибо сказали: 0 раз |
Писал в личку автору,но пока тишина...
Может кто объяснит,как его ставить? На что его ставить? Короче нужна инструкция |
|
|
15.3.2011, 17:05
Сообщение
#420
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
|
|
|
15.3.2011, 19:06
Сообщение
#421
|
|
AmxModx Scripter Группа: Пользователи Сообщений: 302 Регистрация: 2.12.2008 Из: Королев Пользователь №: 1 283 Спасибо сказали: 127 раз |
>Писал в личку автору,но пока тишина...
Сорри, хотел ответить да забыл Делай все как Саймон написал |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
Webstats Веб-статистика для хаба |
33 | Saymon21 | 35 458 | 12.3.2017, 15:29 Посл. сообщение: 000000 | |
От: Webstats От темы с ID: 2193 |
0 | Win32 | 4 770 | 10.11.2009, 6:28 Посл. сообщение: Win32 | |
От: Webstats От темы с ID: 2193 |
0 | mariner | 4 947 | 26.7.2009, 10:44 Посл. сообщение: mariner |
|
Сейчас: 23.11.2024, 5:22 |