CalStats
ดึงข้อมูลจากปฏิทิน Google หรือ Apple ของคุณและสร้างสถิติบางอย่างที่อาจเป็นประโยชน์กับคุณ (หรือเจ้านายของคุณ ;) ) สถิติของฉันเผยแพร่สดที่ https://mickekring.se/stats/time2/ (ในภาษาสวีเดน)
ภาพด้านบนแสดงส่วนหน้า
นี่คืออะไร? แล้วมันทำอะไร?
ฉันวางแผนงานทุกอย่างที่เกี่ยวข้องในปฏิทินของฉัน และตั้งชื่อกิจกรรมในปฏิทินด้วยคำนำหน้า เช่น ' ADM: กำหนดการ' (ADM = การดูแลระบบ), ' เว็บ: บล็อก' และอื่นๆ จากนั้นสคริปต์จะจัดกลุ่ม 'ADM:', 'WEB:' และหมวดหมู่อื่น ๆ ทั้งหมด (ฮาร์ดโค้ดในสคริปต์) คำนวณเวลาและหารด้วยเวลาทั้งหมดเพื่อให้ได้เปอร์เซ็นต์และสิ่งอื่น ๆ ที่เป็นประโยชน์สำหรับฉัน พูดง่ายๆ ก็คือเป็นเครื่องมือสำหรับฉันเพื่อให้แน่ใจว่าฉันใช้เวลาอย่างดี
ฉันยังมีปฏิทินที่สองที่ฉันใส่ 8 ชั่วโมงต่อวันเพื่อให้สคริปต์ของฉันสามารถเปรียบเทียบว่าฉันควรจะทำงานมากแค่ไหนและจริงๆ แล้วฉันทำงานไปมากแค่ไหน
สคริปต์ Python ทำงานบน Raspberry Pi และดึงข้อมูลและอัปเดตสถิติทุกๆ 10 นาที อัปโหลดไฟล์ php ไปยังเว็บเซิร์ฟเวอร์ของฉันผ่าน sftp
ข้อสงวนสิทธิ์
ฉันไม่ใช่คนเขียนโค้ด ฉันแค่ชอบที่จะสร้างสิ่งต่างๆ -
สร้างด้วย
- หลาม 3.x https://www.python.org/
- Bootstrap 5.x https://getbootstrap.com/
- แผนภูมิ JS https://www.chartjs.org/
- แบบอักษรสุดเจ๋ง https://fontawesome.com/
ต้องการที่จะดำเนินการด้วยตัวเอง?
สคริปต์นี้ได้รับการปรับแต่งให้เหมาะกับความต้องการของฉัน ดังนั้นหากคุณต้องการใช้งาน คุณจะต้องเปลี่ยนแปลงบางสิ่ง ส่วนใหญ่เป็นชื่อของหมวดหมู่ที่คุณต้องการติดตาม และในกรณีนั้น ก็คือเงื่อนไขบางประการ เนื่องจากฉันไม่ใช่ผู้เขียนโค้ด ฉันจึง (ยัง) ไม่สามารถตั้งค่าทุกสิ่งที่คุณต้องเปลี่ยนแปลงเป็นตัวแปรหรือรายการคงที่ได้ แต่ฉันจะพยายามอย่างเต็มที่เพื่อแนะนำคุณ
สิ่งที่คุณต้องการ
- อุปกรณ์ที่สามารถรัน Python 3.x ได้
- เว็บเซิร์ฟเวอร์ที่รองรับ PHP
- เซิร์ฟเวอร์ sftp (บนเว็บเซิร์ฟเวอร์ของคุณ) ที่สคริปต์ใช้ในการอัปโหลดไฟล์ไปยังเว็บเซิร์ฟเวอร์ของคุณ
- ปฏิทิน Google สาธารณะ (หรือปฏิทิน Apple)
การตั้งค่า
- ดาวน์โหลดไฟล์ทั้งหมดไปยังโฟลเดอร์ที่คุณเลือก
- เปิด credentials.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
- Paramiko - pip3 ติดตั้ง paramiko
- YAML - pip3 ติดตั้ง pyyaml
- TinyDB - pip3 ติดตั้ง TinyDB
- วันที่และเวลา - pip3 ติดตั้ง datetime
- Pandas - pip3 ติดตั้งแพนด้า
วิ่ง
ประวัติเวอร์ชัน
- 1.0 เปลี่ยนชื่อไฟล์บางไฟล์และกำจัดส่วนที่บวมจำนวนมาก
- 0.6.1 เพิ่มลิงค์ดาวน์โหลดสำหรับฐานข้อมูล JSON ที่ส่วนหน้าที่สร้างโดย calstats.py
- 0.6 เพิ่มการอัปโหลดไฟล์ฐานข้อมูล json ไปยังเว็บเซิร์ฟเวอร์ และแก้ไขข้อบกพร่องที่เกิดขึ้นเมื่อมีเวลาทำงานทั้งหมดเป็นศูนย์ (เช่น เมื่อลาพักร้อน) ซึ่งทำให้การแบ่งเป็นศูนย์
- 0.5 เพิ่มวันที่สำหรับแกน x บนแผนภูมิสำหรับ 7 สัปดาห์ การล้างโค้ดเล็กน้อย
- 0.4 เพิ่มกราฟชั่วโมงทำงาน 7 สัปดาห์ที่ผ่านมา
- 0.2 การอัปโหลดครั้งแรก เปอร์เซ็นต์ต่อหมวดหมู่ตั้งแต่วันที่ที่คุณเลือก เปอร์เซ็นต์ต่อหมวดหมู่ 7 สัปดาห์ที่ผ่านมา
เครดิต
ฟังก์ชั่นการนำเข้าปฏิทินในสคริปต์นั้นขึ้นอยู่กับงานของ jeinarsson https://gist.github.com/jeinarsson/989329deb6906cae49f6e9f979c46ae7