Название скрипта: CountGraphic
Версия API: API 2
Автор: Trans (изм. на Ksan)
Описание: Каждые полчаса (по умолчанию) записывает в файл таблицу со столбцами графика посещаемости (наполнненности) хаба, при запросе через меню отправляет в приват график от 1 суток до 30 ( админ, ник которого вписан в настройках скрипта, может запросить график до 365 суток).
Запросы начнут удовлетворяться не ранее, чем через сутки.
В силу особенностей текстового режима клиента столбцы графика добавляются сверху вниз и столбец расположен горизонтально. в начале столбца дата-время, в конце - число юзеров.
Для просмотра удобнее уменьшать масштаб содержания окна через CTRL+колесико_мышки.
Полагаю, что представляет интерес для анализа динамики наполнения хаба по времени суток, по дням и месяцам...и вообще, просто для интереса.
PS Исправил ошибку, внесенную при корректировке скрипта, перезалил.
Апгрейд:
--- Версия 1.3 (08-09-09 20:20)
--- Теперь в таблицу записывается только дата-время и число, а столбцы строятся при отправке по запросу
--- При выдаче по запросу столбец за нулевой час суток строится из других элементов для выделения насыщенностью цвета, и рядом с числом юзеров пишется дата
--- Исправлена ошибка в условии с профилем юзера - вместо квадратных скобок были круглые
--- Эта версия совместима с предыдущей, то есть, ранее созданная часть таблицы будет обрабатываться одинаково с последующими частями и выдаваться корректно по запросу.
Так что если у кого таблица уже есть, то не заменяйте пустой из моего архива.
--- (18-09-09 19:40)
--- Исправил 1 косячок (раньше при старте инициировал приват не того бота)
--- Добавил скрипт под API 1.
--- Теперь оба скрипта в 1 архиве.
Картинки ниже - из предыдущей версии.
Вот примеры (одна картинка без изменения масштаба, вторая - с уменьшением):
Аналитические инструменты - это здорово )) И прогресс, как говорится, налицо.
Есть пожелание : сделать горизонтальные разделители для суток и умолчательное суток, например, 5.
Такой график, по-моему, называют гистограммой... если ничего не путаю.
Идея хороша. Самое главное - реализовать её гораздо проще, чем горизонтальный вариант, который у меня есть (выдрал из древнейшего анонимного скрипта, так что сейчас уж и не установишь, кто папа).
Автору в догонку: оригинальная идея Ваша?
[21:06] Синтаксис D:\Program Files\0.4.1.1\scripts\CountGraphic_1.2_api2.lua:37: 'then' expected near '='
Trans
вот теперь запустился.
Сегодня весь день на работе думал про то, что надо в таблице хранить только число юзеров, а диаграмму строить при запросе только....с такими мыслями и завалился спать после работы. и тут бац, встал и узнаю, что district уже у себя в хабе сделал такое..
Короче, тоже надо сделать. Будет хорошая экономия памяти.
Да, взял на себя смелость подшаманить немного.
Вот вариант для API1 со следующими изменениями :
1.Добавлены суточные разделители (см. картинку)
2.Сделана жесткая привязка к получасовым отрезкам
3.Изменен формат сохраняемых данных
4.Сделан безусловный вывод всех имеющихся последних данных, т.е. нет отбоя
в случае, если не накоплена база за хотя бы 1 сутки или данных меньше,
чем соответствовало бы запрошенному кол-ву суток.
Можно тестировать.
Изменение от 02.11.09 Поддержка моей версии этого скрипта прекращена
Обновил версию до 1.3, переделав под новый формат таблицы.
Выделил слегка столбец нулевого часа суток, плюс добавил число-месяц отдельно к этому столбцу.
Исправил ошибку с профилем (была опечатка - вместо квадратных скобок - круглые).
Для сомневающихся - код изменений свой, не от district'а
Хотя надо бы тоже сделать этот пункт:
классный скрипт! спасибо. поставил. тащусь. ошибок не выскакивает. апи1
district
При запросе кем либо 99 строк и более скрипт вылетает с ошибкой scripts\CountGraphic_1.2__API1.lua:97: attempt to call global 'tProfiles' (a table value)
Как сказал бы М.Задорнов, "я всегда говорил и буду говорить".."таблицы профилей это мракобесие"
Переправлено и передобавлено в обоих версиях.
district
теперь по профилям изменений нету
tProfiles = {
[-1] = 0, --"Незарегистрированные пользователи"
[0] = 1, --"Мастер"
[1] = 1, --"Оп"
[2] = 1, --"Вип"
[3] = 0, --"Зарегистрированные пользователи"
... и еще раз передобавлено.
9 сентября 2009
... и еще раз передобавлено, устранена еще кучка недочетов.
Конвертнул на Api 1 с помощью ридми в объявлениях (добавки Core. и т.п.) и теперь выдает такое
Хорошо, уговорили, сегодня переведу и кину в первом сообщении переведенный на API 1 скрипт, вечерком (сейчас у меня 6 утра, спешу на работу).
PS: Добавил в первый пост скрипт под API 1, предварительно исправив один косячок (раньше при старте инициировался приват не того бота). Теперь оба скрипта в одном архиве.
PSS: 2thehawk: Ты забыл, наверно, создать (или скопировать из архива) папку с первоначальным файлом для таблицы графика.
Интересный скрипт, никогда не задумывался о сборе статистики, но наткнувшись на данный скрипт - проведу обязательно!!!!
/home/user/PtokaX/scripts/CountGraphic_1.2__API2.lua:81: attempt to get length of upvalue 'tCounts' (a boolean value)
:(
Мне кажется, пора уже привыкать сразу выкладывать и строку, на которую указывает сообщение об ошибке (в данном случае - 81). Если не слишком большая, то даже всю функцию, или хотя бы пару строк до и пару после. Потому как вопрошающий мог изменить расположение строк изменениями в скрипте, или это могли сделать те, кто мог бы ответить на вопрос, либо мы пользуемся другими версиями. Вот сейчас скачал и посмотрел оригинал из первого сообщения темы - в 81 строке нет ничего подобного (там только захват строки).
Тут речь про мой вариант, потому я и ответил .
Вообще ситуация странная. Если нет файла, то он при старте создается, сохраняется и соответственно подключается (как пустая таблица). Получение длины #tCounts должно железно отрабатывать как 0. А тут выходит, что и файла нет, и он почему-то не создается.
Ошибку выдало при первом запуске. Ручками создал файл!
Скрипт работает!
PtokaX 4.1.1 стоит на FreeBSD 7 lua 5.1.4
Почему прога его не создала незнаю, видимо косяк где то...
Под апи1 поменял sNick на sName чтобы не возникало ошибки:
PtokaX\scripts\Graph.lua:77: attempt to concatenate field 'sNick' (a nil value)
Синтаксис C:\0.4.2.0b401-Lua5.2.1\scripts\CountGraphic_1.3_api2.lua:55: attempt to index local 'f' (a nil value)
Код:
Sergey613, прочтите тему с начала. Ответ дан выше.
Кстати...
..У архивного файла в первом сообщении темы расширение почему-то при скачивании оказывается не .RAR, а .ZIP (хотя я закачивал туда именно с .RAR). Так что если у кого-то архив не раскрывается с ошибкой, переименуйте расширение на .RAR (вместо .ZIP) и пробуйте открыть снова.
Скрипт работает!
Только графика не видно, наверно юзеров на хабе мало.
UPну тему.
У функции