Калстатс
Получает данные из вашего календаря Google или Apple и создает некоторую статистику, которая может быть полезна вам (или вашему начальнику;)) Моя статистика доступна в реальном времени по адресу https://mickekring.se/stats/time2/ (на шведском языке).
Изображение выше, показывающее интерфейс
Что это? И что это делает?
Я планирую все, что связано с работой, в своем календаре и называю события календаря с префиксами, например; « ADM: Расписание» (ADM = Администрирование), « ВЕБ: Блоги» и так далее. Затем сценарий группирует все «ADM:», «WEB:» и другие категории (жестко запрограммированные в сценарии), вычисляет время и делит его на общее время, чтобы получить некоторые проценты и другие полезные для меня данные. Проще говоря, для меня это инструмент, позволяющий хорошо проводить время.
Еще у меня есть второй календарь, куда я записываю свои 8 часов в день, чтобы мой сценарий мог сравнить, сколько я должен был работать, и сколько я действительно работал.
Скрипт Python работает на Raspberry Pi, извлекает и обновляет статистику каждые 10 минут, загружает php-файлы на мой веб-сервер через sftp.
Отказ от ответственности
Я не кодер . Мне просто нравится создавать вещи. :)
Построен с
- Python 3.x https://www.python.org/
- Bootstrap 5.x https://getbootstrap.com/
- Диаграмма JS https://www.chartjs.org/
- Шрифт Awesome https://fontawesome.com/
Хотите запустить его самостоятельно?
Этот сценарий как бы адаптирован под мои нужды, поэтому, если вы захотите его запустить, вам придется изменить пару вещей. В основном это названия категорий, которые вы хотите отслеживать, и, в данном случае, некоторые условия. Поскольку я не программист, мне (пока) не удалось задать все, что вам нужно изменить, в виде постоянных переменных или списков, но я сделаю все возможное, чтобы помочь вам.
ЧТО ВАМ НУЖНО
- Устройство, на котором может работать Python 3.x
- Веб-сервер с поддержкой PHP
- sftp-сервер (на вашем веб-сервере), который сценарий использует для загрузки файлов на ваш веб-сервер.
- Общедоступный календарь Google (или календарь Apple)
НАСТРАИВАТЬ
- Загрузите все файлы в папку по вашему выбору.
- Откройте Credition.yml и измените информацию об учетной записи sftp, пути — как локальный URL-адрес (где вы запускаете сценарий), так и удаленный (на вашем веб-сервере), а также URL-адрес вашего общедоступного календаря .ics-файла.
- Откройте index.php и отредактируйте заголовок и заголовки, которые вы хотите отображать на вашем сайте.
- Загрузите index.php и style.css на свой веб-сервер.
- Откройте main.py и измените следующее:
- Линия 36 | Языковой стандарт
- Линия 41 | Дата начала, с которой сценарий должен начать отслеживаться
- Линия 100-123 | Введите свои собственные префиксы категорий и названия категорий, которые вы хотите отслеживать.
- Линия 129 | Исключить события календаря, такие как обед и неизвестное.
- Линия 208 | Название календарного события во втором календаре (ваше «официальное» рабочее время).
- Линия 307 | Измените категории, которые вы хотите отслеживать
- Линия 623 | Измените категории, по которым вы хотите получать статистику за 7 недель, и измените/создайте названия списков.
- Линия 789 – 813 | Перейти к своим категориям
- Линия 827 – 840 | Перейти к своим категориям
- Линия 889 – 912 | Перейти к своим категориям
- Линия 632 – 640 | Перейти к своим категориям
- Линия 1027 | Измените частоту выполнения основного цикла в секундах.
- Возможно я что-то пропустил... заранее извиняюсь...
УСТАНОВКА МОДУЛЕЙ PYTHON
- iCalevents — установка pip3 icalevents
- Pytz — установка pip3 pytz
- Парамико — pip3 установить парамико
- YAML — pip3 установить pyyaml
- TinyDB — pip3 установить tinydb
- Datetime — дата и время установки pip3
- Панды — установка панд с помощью pip3
БЕГАТЬ
История версий
- 1.0 Переименованы некоторые файлы и избавлены от лишнего раздувания.
- 0.6.1 Добавлена ссылка для скачивания базы данных JSON во внешнем интерфейсе, созданная Calstats.py.
- 0.6 Добавлена загрузка файла базы данных json на веб-сервер и исправлена ошибка, которая возникала при нулевом общем отработанном времени (например, во время отпуска), что вызывало нулевое деление.
- 0.5 Добавлены даты по оси X на графиках за 7 недель. Небольшая чистка кода.
- 0.4 Добавлен график отработанных часов за последние 7 недель.
- 0.2 Первоначальная загрузка. Проценты по категориям с выбранной вами даты. Проценты по категориям за последние 7 недель.
Кредиты
Функция импорта календаря в скрипте основана на работе Джейнарссона https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7