CalStats
Google 또는 Apple 캘린더에서 데이터를 검색하고 귀하(또는 귀하의 상사에게 유용할 수 있는 몇 가지 통계를 생성합니다. ;) 내 통계는 https://mickekring.se/stats/time2/(스웨덴어)에서 실시간으로 실행되고 있습니다.
위의 이미지는 프런트 엔드를 보여줍니다.
이게 뭔가요? 그리고 그것은 무엇을 합니까?
나는 내 캘린더와 관련된 모든 작업을 계획하고 다음과 같은 접두사를 사용하여 캘린더 이벤트 이름을 지정합니다. ' ADM: 일정'(ADM = 관리), ' WEB: 블로그' 등. 그런 다음 스크립트는 모든 'ADM:', 'WEB:' 및 기타 범주(스크립트에 하드 코딩됨)를 그룹화하고 시간을 계산한 다음 이를 총 시간으로 나누어 일부 백분율과 나에게 유용한 기타 항목을 얻습니다. 간단히 말해서, 내가 시간을 잘 보낼 수 있도록 도와주는 도구입니다.
또한 하루에 8시간을 입력하는 두 번째 달력도 있어서 스크립트를 통해 내가 얼마나 일했어야 했는지, 실제로 얼마나 일했는지 비교할 수 있습니다.
Python 스크립트는 Raspberry Pi에서 실행되며 10분마다 통계를 가져오고 업데이트하며 sftp를 통해 PHP 파일을 내 웹 서버에 업로드합니다.
부인 성명
나는 코더가 아닙니다 . 나는 단지 물건을 만드는 것을 좋아합니다. :)
다음으로 제작됨
- 파이썬 3.x https://www.python.org/
- 부트스트랩 5.x https://getbootstrap.com/
- 차트 JS https://www.chartjs.org/
- 멋진 글꼴 https://fontawesome.com/
직접 실행하고 싶으신가요?
이 스크립트는 내 요구 사항에 맞춰져 있으므로 실행하려면 몇 가지 사항을 변경해야 합니다. 주로 추적하려는 카테고리의 이름이며, 이 경우 일부 조건이 있습니다. 저는 코더가 아니기 때문에 (아직) 변경해야 할 모든 항목을 상수 변수나 목록으로 설정할 수는 없지만 최선을 다해 안내해 드리겠습니다.
당신에게 필요한 것
- Python 3.x를 실행할 수 있는 장치
- PHP를 지원하는 웹 서버
- 스크립트가 웹 서버에 파일을 업로드하는 데 사용하는 SFTP 서버(웹 서버에 있음)
- 공개 Google 캘린더(또는 Apple 캘린더)
설정
- 원하는 폴더에 모든 파일을 다운로드하세요.
- credential.yml을 열고 sftp 계정 정보, 경로(로컬 URL(스크립트를 실행하는 위치) 및 원격(웹 서버)) 및 공개 캘린더 .ics 파일의 URL을 변경합니다.
- 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
- Paramiko - pip3 설치 paramiko
- YAML - pip3 설치 pyyaml
- TinyDB - pip3 설치tinydb
- 날짜/시간 - pip3 설치 날짜/시간
- 팬더 - pip3 설치 팬더
달리다
버전 기록
- 1.0 일부 파일의 이름을 변경하고 많은 부풀림을 제거했습니다.
- 0.6.1 calstats.py에 의해 생성된 프런트 엔드에 JSON 데이터베이스에 대한 다운로드 링크가 추가되었습니다.
- 0.6 웹 서버에 json 데이터베이스 파일 업로드를 추가하고 총 작업 시간이 0일 때(예: 휴가 중) 발생하는 버그를 수정하여 0 분할을 발생시켰습니다.
- 0.5 7주 차트의 x축 날짜를 추가했습니다. 사소한 코드 정리.
- 0.4 지난 7주간 근무 시간 그래프가 추가되었습니다.
- 0.2 초기 업로드. 선택한 날짜 이후의 카테고리별 백분율입니다. 지난 7주간 카테고리별 백분율입니다.
크레딧
스크립트의 캘린더 가져오기 기능은 jeinarsson 작업 https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7을 기반으로 합니다.