CalStats
Récupère les données de votre calendrier Google ou Apple et crée des statistiques qui pourraient vous être utiles (ou à votre patron ;) ) Mes statistiques sont diffusées en direct sur https://mickekring.se/stats/time2/ (en suédois)
Image ci-dessus montrant le frontal
Qu'est-ce que c'est? Et ça fait quoi ?
Je planifie tout ce qui concerne le travail dans mon calendrier et je nomme les événements du calendrier avec des préfixes tels que ; ' ADM : Planning' (ADM = Administration), ' WEB : Blogs' et ainsi de suite. Le script regroupe ensuite tous les « ADM : », « WEB : » et autres catégories (codées en dur dans le script), calcule le temps et le divise par le temps total pour obtenir des pourcentages et d'autres éléments qui me sont utiles. En termes simples, c'est un outil qui me permet de m'assurer de bien passer mon temps.
J'ai aussi un deuxième calendrier dans lequel je mets mes 8 heures par jour afin que mon script puisse comparer combien j'aurais dû travailler et combien j'ai réellement travaillé.
Le script Python s'exécute sur un Raspberry Pi et récupère et met à jour les statistiques toutes les 10 minutes, télécharge les fichiers php sur mon serveur Web via sftp.

Clause de non-responsabilité
Je ne suis pas codeur . J'aime juste créer des trucs. :)
Construit avec
- Python 3.x https://www.python.org/
- Bootstrap 5.x https://getbootstrap.com/
- Graphique JS https://www.chartjs.org/
- Police géniale https://fontawesome.com/
Voulez-vous l'exécuter vous-même ?
Ce script est en quelque sorte adapté à mes besoins, donc si vous souhaitez l'exécuter, vous devrez modifier quelques choses. Principalement les noms des catégories que vous souhaitez suivre et dans ce cas, certaines conditions. Comme je ne suis pas codeur, je n'ai pas (encore) pu définir tout ce que vous devez modifier sous forme de variables constantes ou de listes, mais je ferai de mon mieux pour vous guider.
CE DONT VOUS AVEZ BESOIN
- Un appareil capable d'exécuter Python 3.x
- Un serveur web avec support php
- Un serveur SFTP (sur votre serveur Web) que le script utilise pour télécharger des fichiers sur votre serveur Web
- Un calendrier Google public (ou un calendrier Apple)
INSTALLATION
- Téléchargez tous les fichiers dans un dossier de votre choix
- Ouvrez les informations d'identification.yml et modifiez les informations du compte sftp, les chemins - à la fois l'URL locale (où vous exécutez le script) et distante (sur votre serveur Web) et l'URL de votre fichier .ics de calendrier public.
- Ouvrez index.php et modifiez le titre et les en-têtes que vous souhaitez afficher sur votre front-end
- Téléchargez index.php et style.css sur votre serveur Web
- Ouvrez main.py et modifiez les éléments suivants :
- Ligne 36 | Lieu
- Ligne 41 | Date de début à partir de laquelle le script doit démarrer le suivi
- Ligne 100-123 | Entrez vos propres préfixes de catégorie et noms de catégorie que vous souhaitez suivre
- Ligne 129 | Exclure les événements de l'agenda comme le déjeuner et les événements inconnus
- Ligne 208 | Le nom de l'événement du calendrier dans le deuxième calendrier (les heures de travail "officielles" de votre travail
- Ligne 307 | Modifiez les catégories que vous souhaitez suivre
- Ligne 623 | Modifiez les catégories pour lesquelles vous souhaitez des statistiques sur 7 semaines et modifiez/créez des noms de listes
- Ligne 789 - 813 | Changer vos catégories
- Ligne 827 - 840 | Changer vos catégories
- Ligne 889 - 912 | Changer vos catégories
- Ligne 632 - 640 | Changer vos catégories
- Ligne 1027 | Modifiez la fréquence à laquelle vous souhaitez que la boucle principale s'exécute en secondes
- J'ai peut-être raté une chose ou deux... désolé d'avance...
INSTALLER DES MODULES PYTHON
- iCalevents - pip3 installe icalevents
- Pytz - pip3 installer pytz
- Paramiko - pip3 installer paramiko
- YAML - pip3 installer pyyaml
- TinyDB - pip3 installe tinydb
- Datetime - pip3 installe datetime
- Pandas - pip3 installe des pandas
COURIR
Historique des versions
- 1.0 Renommé certains fichiers et suppression de beaucoup de ballonnements.
- 0.6.1 Ajout d'un lien de téléchargement pour la base de données JSON sur le front-end généré par calstats.py
- 0.6 Ajout du téléchargement du fichier de base de données json sur le serveur Web et correction d'un bug qui se produit lorsqu'il n'y a pas de temps total travaillé (par exemple en vacances), ce qui entraîne une division nulle.
- 0.5 Ajout de dates pour l'axe des x sur les graphiques pour les 7 semaines. Petit nettoyage du code.
- 0.4 Ajout d'un graphique pour les heures travaillées, les 7 dernières semaines.
- 0.2 Téléchargement initial. Pourcentages par catégorie depuis une date que vous choisissez. Pourcentages par catégorie, dernières 7 semaines.
Crédits
La fonction d'importation de calendrier dans le script est basée sur le travail de Jeinarsson https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7