カルスタッツ
Google または Apple カレンダーからデータを取得し、あなた (または上司 ;) に役立つ可能性のある統計を作成します。私の統計は https://mickekring.se/stats/time2/ (スウェーデン語) でライブで実行されています。
フロントエンドを示す上の画像
これは何ですか?そしてそれは何をするのでしょうか?
仕事に関連するすべてのことをカレンダーで計画し、カレンダーのイベントに次のような接頭辞を付けて名前を付けます。 「 ADM:スケジュール」(ADM=管理)、「 WEB:ブログ」など。次に、スクリプトはすべての「ADM:」、「WEB:」、およびその他のカテゴリ (スクリプトにハードコードされている) をグループ化し、時間を計算して合計時間で割って、パーセンテージやその他の役立つ情報を取得します。簡単に言うと、時間を有効に使うためのツールです。
また、1 日 8 時間を記入する 2 番目のカレンダーもあり、スクリプトでどれだけ働くべきだったか、実際にどれだけ働いたかを比較できるようにしています。
Python スクリプトは Raspberry Pi 上で実行され、10 分ごとに統計を取得して更新し、sftp 経由で php ファイルを Web サーバーにアップロードします。
免責事項
私はコーダーではありません。ただ物を作るのが好きなんです。 :)
で構築
- Python 3.x https://www.python.org/
- ブートストラップ 5.x https://getbootstrap.com/
- チャートJS https://www.chartjs.org/
- Font Awesome https://fontawesome.com/
自分で実行してみませんか?
このスクリプトは私のニーズに合わせて調整されているため、実行したい場合は、いくつかの点を変更する必要があります。主に追跡したいカテゴリの名前と、その場合はいくつかの条件です。私はプログラマーではないので、変更する必要があるものをすべて定数変数またはリストとして設定することは (まだ) できていませんが、最善を尽くしてガイドします。
必要なもの
- Python 3.x を実行できるデバイス
- PHPをサポートするWebサーバー
- スクリプトがファイルを Web サーバーにアップロードするために使用する SFTP サーバー (Web サーバー上)
- 公開されている Google カレンダー (または Apple カレンダー)
設定
- すべてのファイルを選択したフォルダーにダウンロードします
- credentials.yml を開いて、SFTP アカウント情報、パス (ローカル URL (スクリプトを実行する場所) とリモート URL (Web サーバー上) の両方)、およびパブリック カレンダーの .ics ファイルへの URL を変更します。
- Index.php を開き、フロントエンドに表示するタイトルと見出しを編集します。
- Index.php と style.css を Web サーバーにアップロードします
- main.py を開いて次のように変更します。
- 36 行目 |ロケール
- 41 行目 |スクリプトのトラックを開始する開始日
- 100~123行目 |追跡する独自のカテゴリプレフィックスとカテゴリ名を入力します
- 129行目 |ランチや不明なカレンダーイベントなどを除外する
- 208行目 | 2 番目のカレンダーのカレンダー イベントの名前 (仕事の「正式な」労働時間)
- 307 行目 |追跡するカテゴリを変更します
- 623行目 | 7 週間の統計情報が必要なカテゴリを変更し、リスト名を変更/作成します
- 789 ~ 813 行目 |あなたのカテゴリーに変更してください
- 827 ~ 840 行目 |あなたのカテゴリーに変更してください
- 889 ~ 912 行目 |あなたのカテゴリーに変更してください
- 632 ~ 640 行目 |あなたのカテゴリーに変更してください
- 1027行目 |メインループを実行する頻度を秒単位で変更します。
- 何かを見逃しているかもしれません...申し訳ありません...
Pythonモジュールをインストールする
- iCalevents - pip3 インストール icalevents
- Pytz - pip3 インストール pytz
- Paramiko - pip3 インストール paramiko
- YAML - pip3 インストール pyyaml
- TinyDB - pip3 で tinydb をインストールする
- 日時 - pip3 インストール日時
- パンダ - pip3 パンダをインストールする
走る
バージョン履歴
- 1.0 いくつかのファイルの名前が変更され、大量のファイルが削除されました。
- 0.6.1 calstats.py によって生成されたフロントエンドの JSON データベースのダウンロード リンクを追加しました
- 0.6 json データベース ファイルの Web サーバーへのアップロードを追加し、合計労働時間がゼロの場合 (休暇中など) に発生してゼロ除算が発生するバグを修正しました。
- 0.5 7 週間のチャートの X 軸に日付を追加しました。コードの軽微なクリーンアップ。
- 0.4 過去 7 週間の労働時間のグラフを追加しました。
- 0.2 初期アップロード。選択した日付以降のカテゴリごとの割合。過去 7 週間のカテゴリごとの割合。
クレジット
スクリプト内のカレンダーのインポート機能は、jeinarsson の作品 https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7 に基づいています。