myDC.ru

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

 

> CountGraphic, API2 | Диаграмма посещаемости хаба по запросу отправляется в приват

Рейтинг 5 V
Ksan
сообщение 6.9.2009, 5:54
Сообщение #21


Белый Волк
*********

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




Название скрипта: CountGraphic
Версия API: API 2
Автор: Trans (изм. на Ksan)
Описание: Каждые полчаса (по умолчанию) записывает в файл таблицу со столбцами графика посещаемости (наполнненности) хаба, при запросе через меню отправляет в приват график от 1 суток до 30 ( админ, ник которого вписан в настройках скрипта, может запросить график до 365 суток).
Запросы начнут удовлетворяться не ранее, чем через сутки. big_smile.gif
В силу особенностей текстового режима клиента столбцы графика добавляются сверху вниз и столбец расположен горизонтально. в начале столбца дата-время, в конце - число юзеров.
Для просмотра удобнее уменьшать масштаб содержания окна через CTRL+колесико_мышки.
Полагаю, что представляет интерес для анализа динамики наполнения хаба по времени суток, по дням и месяцам...и вообще, просто для интереса. big_smile.gif

PS Исправил ошибку, внесенную при корректировке скрипта, перезалил.

Апгрейд:
--- Версия 1.3 (08-09-09 20:20)
--- Теперь в таблицу записывается только дата-время и число, а столбцы строятся при отправке по запросу
--- При выдаче по запросу столбец за нулевой час суток строится из других элементов для выделения насыщенностью цвета, и рядом с числом юзеров пишется дата
--- Исправлена ошибка в условии с профилем юзера - вместо квадратных скобок были круглые big_smile.gif
--- Эта версия совместима с предыдущей, то есть, ранее созданная часть таблицы будет обрабатываться одинаково с последующими частями и выдаваться корректно по запросу.
Так что если у кого таблица уже есть, то не заменяйте пустой из моего архива.

--- (18-09-09 19:40)
--- Исправил 1 косячок (раньше при старте инициировал приват не того бота)
--- Добавил скрипт под API 1.
--- Теперь оба скрипта в 1 архиве.

Картинки ниже - из предыдущей версии.


Вот примеры (одна картинка без изменения масштаба, вторая - с уменьшением):
Прикрепленный файл  CountGraph_1.jpg ( 171.21 килобайт ) Кол-во скачиваний: 745
Прикрепленный файл  CountGraph_2.jpg ( 109.61 килобайт ) Кол-во скачиваний: 646


P.S.: У архивного файла расширение почему-то при скачивании оказывается не .RAR, а .ZIP (хотя я закачивал именно с .RAR). Так что если у кого-то архив не раскрывается с ошибкой, переименуйте расширение на .RAR (вместо .ZIP) и пробуйте снова.
Прикрепленные файлы
Прикрепленный файл  CountGraphic_1.3_api1___api2.rar ( 3.82 килобайт ) Кол-во скачиваний: 364
 
Go to the top of the page
+Quote Post
2 страниц V  < 1 2  
Начать новую тему
Ответов
Ksan
сообщение 18.9.2009, 2:20
Сообщение #22


Белый Волк
*********

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




Хорошо, уговорили, сегодня переведу и кину в первом сообщении переведенный на API 1 скрипт, вечерком (сейчас у меня 6 утра, спешу на работу). big_smile.gif

PS: Добавил в первый пост скрипт под API 1, предварительно исправив один косячок (раньше при старте инициировался приват не того бота). Теперь оба скрипта в одном архиве.
PSS: 2thehawk: Ты забыл, наверно, создать (или скопировать из архива) папку с первоначальным файлом для таблицы графика.


Спасибо сказали:
Go to the top of the page
+Quote Post
PRIZrak
сообщение 9.10.2009, 21:51
Сообщение #23


PRIZrak
***

Группа: Пользователи
Сообщений: 76
Регистрация: 22.7.2008
Пользователь №: 251
Спасибо сказали: 4 раза




Интересный скрипт, никогда не задумывался о сборе статистики, но наткнувшись на данный скрипт - проведу обязательно!!!! big_smile.gif
Go to the top of the page
+Quote Post
Sergey613
сообщение 14.10.2009, 23:22
Сообщение #24


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

Группа: Пользователи
Сообщений: 71
Регистрация: 8.4.2009
Пользователь №: 2 982
Спасибо сказали: 1 раз




/home/user/PtokaX/scripts/CountGraphic_1.2__API2.lua:81: attempt to get length of upvalue 'tCounts' (a boolean value)
:(
Go to the top of the page
+Quote Post
district
сообщение 15.10.2009, 2:40
Сообщение #25


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Цитата(Sergey613 @ 15.10.2009, 3:22) *
/home/user/PtokaX/scripts/CountGraphic_1.2__API2.lua:81: attempt to get length of upvalue 'tCounts' (a boolean value)
:(

Мало информации. Если ошибка возникла при первом запуске, нужно уточнить свой ник в константе
Код
local sAdm = ...

и посмотреть, какое сообщение об ошибке бот пишет при запуске ( отправлено будет этому нику в главном чате )
Цитата
*** Ошибка : "..(описание ошибки)
Go to the top of the page
+Quote Post
Ksan
сообщение 15.10.2009, 2:56
Сообщение #26


Белый Волк
*********

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




Мне кажется, пора уже привыкать сразу выкладывать и строку, на которую указывает сообщение об ошибке (в данном случае - 81). Если не слишком большая, то даже всю функцию, или хотя бы пару строк до и пару после. Потому как вопрошающий мог изменить расположение строк изменениями в скрипте, или это могли сделать те, кто мог бы ответить на вопрос, либо мы пользуемся другими версиями. Вот сейчас скачал и посмотрел оригинал из первого сообщения темы - в 81 строке нет ничего подобного (там только захват строки).
Go to the top of the page
+Quote Post
district
сообщение 15.10.2009, 3:02
Сообщение #27


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Тут речь про мой вариант, потому я и ответил big_smile.gif.
Вообще ситуация странная. Если нет файла, то он при старте создается, сохраняется и соответственно подключается (как пустая таблица). Получение длины #tCounts должно железно отрабатывать как 0. А тут выходит, что и файла нет, и он почему-то не создается.
Go to the top of the page
+Quote Post
Sergey613
сообщение 15.10.2009, 10:52
Сообщение #28


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

Группа: Пользователи
Сообщений: 71
Регистрация: 8.4.2009
Пользователь №: 2 982
Спасибо сказали: 1 раз




Ошибку выдало при первом запуске. Ручками создал файл!
Скрипт работает!
PtokaX 4.1.1 стоит на FreeBSD 7 lua 5.1.4

Почему прога его не создала незнаю, видимо косяк где то...
Go to the top of the page
+Quote Post
district
сообщение 15.10.2009, 11:10
Сообщение #29


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Цитата
PtokaX 4.1.1 стоит на FreeBSD 7 lua 5.1.4

Вот с этого надо было начинать ))
Скорее всего для Фри нужно немного иначе прописывать путь к файлу.
Go to the top of the page
+Quote Post
Sunlight
сообщение 3.1.2010, 23:26
Сообщение #30


Начинающий
*

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




Под апи1 поменял sNick на sName чтобы не возникало ошибки:
PtokaX\scripts\Graph.lua:77: attempt to concatenate field 'sNick' (a nil value)
Go to the top of the page
+Quote Post
Sergey613
сообщение 9.10.2012, 13:24
Сообщение #31


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

Группа: Пользователи
Сообщений: 71
Регистрация: 8.4.2009
Пользователь №: 2 982
Спасибо сказали: 1 раз




Синтаксис C:\0.4.2.0b401-Lua5.2.1\scripts\CountGraphic_1.3_api2.lua:55: attempt to index local 'f' (a nil value)

Код:
Код
    if loadfile(sGraphFile) == nil then  -- если нет файла
        local f,e = io.open( sGraphFile, "w+" )  -- создаём пустой файл для записи
        f:write( "return {\n}" )  -- пишем начало и конец таблицы
        f:close()  -- закрываем файл
    end  -- у нас есть файл для сохранения графика
    sMsg = dofile(sGraphFile)  -- открываем наш файл как таблицу для дальнейшей работы скрипта
    if bPMadm == true then -- если в настройках скрипта разрешена отправка админу столбцов
        Core.SendPmToNick(sAdm, sBotGraphAdm, "Старт диаграммы...")  -- это отправляется при запуске скрипта админу для инициализации привата, иначе после первого столбика диаграммы напищет офф-сообщение такого типа: "[00:33:58]  *** Юзер ушёл [] *** "  А так хоть и будет то же, но зато не будет перерыва между первым и вторым столбиком. (эту строку можно закомментить, если не хотите получать в приват график каждый отрезок времени)
    end


55 строка третья сверху.
Go to the top of the page
+Quote Post
Ksan
сообщение 9.10.2012, 13:27
Сообщение #32


Белый Волк
*********

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




Sergey613, прочтите тему с начала. Ответ дан выше.
Go to the top of the page
+Quote Post
Sergey613
сообщение 9.10.2012, 19:39
Сообщение #33


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

Группа: Пользователи
Сообщений: 71
Регистрация: 8.4.2009
Пользователь №: 2 982
Спасибо сказали: 1 раз




Цитата(Ksan @ 9.10.2012, 14:27) *
Sergey613, прочтите тему с начала. Ответ дан выше.

Спасибо. Папку добавил. Скрипт запустился. Ждём сутки big_smile.gif

P.S. Запустился из под PtokaX 0.4.2.0-x64 Lua 5.2.1 (v. 0.4.2.0b401-Lua5.2.1)
Go to the top of the page
+Quote Post
Ksan
сообщение 9.10.2012, 20:32
Сообщение #34


Белый Волк
*********

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




Кстати...
..У архивного файла в первом сообщении темы расширение почему-то при скачивании оказывается не .RAR, а .ZIP (хотя я закачивал туда именно с .RAR). Так что если у кого-то архив не раскрывается с ошибкой, переименуйте расширение на .RAR (вместо .ZIP) и пробуйте открыть снова.
Go to the top of the page
+Quote Post
Sergey613
сообщение 13.10.2012, 11:24
Сообщение #35


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

Группа: Пользователи
Сообщений: 71
Регистрация: 8.4.2009
Пользователь №: 2 982
Спасибо сказали: 1 раз




Скрипт работает!
Только графика не видно, наверно юзеров на хабе мало.
Go to the top of the page
+Quote Post
SCALOlaz
сообщение 10.6.2023, 15:12
Сообщение #36


Начинающий
*

Группа: Пользователи
Сообщений: 21
Регистрация: 17.11.2008
Пользователь №: 1 116
Спасибо сказали: 9 раз




UPну тему.

У функции
Код
function GetGraph(tUser, iColumns)
неиспользуемый второй параметр, на деле достаточно чуть ниже в этой же функции заменить iDays на iColumns в двух строках, тогда при попытке юзера ввести число дней, выходящих за диапазон доступных, можно просто выводить график за жёстко указанное число дней, ну и ругаться.

Код
function ChatArrival(tUser, sData)
                ...
                ...
            GetGraph(tUser, iDays)  -- обращение к функции отправки в приват графика по запросу
            return true  -- скрываем команду
        end
        Core.SendToUser(tUser, "<"..sBotGraph.."> "..tUser.sNick..": Вводите только целые положительные числа (а не буквы или иные нецифровые символы, у чисел с дробями принимаются только целые части!")  -- учимся правильно запрашивать :)

        GetGraph(tUser, 3)  -- ДОБАВЛЯЕМ вывод графика на 3 дня. Эдакое по-дефолту.

        return true  -- скрываем команду
добавлена команда GetGraph(tUser, 3), где 3 - жёстко установленное кол-во дней.

Однако, всё-равно будет неясность, поэтому в функции вывода, можно заменить строку
Код
Вы затребовали слишком много дней - в базе ещё нет столько данных.
на
Код
Вы затребовали слишком много дней ("..iColumns..") - в базе ещё нет столько данных.
но это уже чисто визуальные дрючки big_smile.gif
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsCountGraphic
Диаграмма посещаемости хаба по запросу отправляется в приват
0 Saymon21 4 365 24.8.2010, 18:38 Посл. сообщение: Saymon21

 



RSS Сейчас: 23.11.2024, 4:24