Last active
April 8, 2022 13:06
-
-
Save airtonzanon/920d6bb6cce9fc8b55aa11f8d7231c24 to your computer and use it in GitHub Desktop.
Show languages used on the day and time spent on them - Pimorony Inky
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
import argparse | |
import socket | |
import requests | |
import datetime | |
from PIL import Image, ImageFont, ImageDraw | |
from datetime import date | |
from font_hanken_grotesk import HankenGroteskBold, HankenGroteskMedium | |
from font_intuitive import Intuitive | |
from inky.auto import auto | |
from base64 import b64encode | |
inky_display = auto() | |
inky_display.set_border(inky_display.WHITE) | |
scale_size = 1 | |
padding = 0 | |
img = Image.new("P", (inky_display.WIDTH, inky_display.HEIGHT)) | |
draw = ImageDraw.Draw(img) | |
font_footer = ImageFont.truetype(HankenGroteskMedium, 12) | |
font = ImageFont.truetype(HankenGroteskMedium, 20) | |
wakatime_api_key = "" | |
wakatime_user_id = "" | |
wakatime_api_key = wakatime_api_key.encode() | |
wakatime_headers = {"Authorization": "Basic " + | |
b64encode(wakatime_api_key).decode()} | |
today = date.today() | |
d1 = today.strftime("%Y-%m-%d") | |
wakatime_stats = requests.get( | |
"https://wakatime.com/api/v1/users/" + wakatime_user_id + "/durations?slice_by=language&date=" + d1, headers=wakatime_headers) | |
wakatime_languages = wakatime_stats.json()['data'] | |
language_time = {} | |
for wakadata in wakatime_languages: | |
try: | |
language_time[wakadata['language']] += wakadata['duration'] | |
except KeyError: | |
language_time[wakadata['language']] = wakadata['duration'] | |
language_time = dict(sorted(language_time.items(), key=lambda item: item[1], reverse=True)) | |
data = "" | |
for key, value in language_time.items(): | |
data += "{} - {}\n".format(key, str(datetime.timedelta(seconds=value)).split(".")[0]) | |
x = 0 | |
y = 0 | |
draw.text((x, y), data, inky_display.BLACK, font) | |
x = 0 | |
y = 110 | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
s.connect(("8.8.8.8", 80)) | |
local_ip = s.getsockname()[0] | |
draw.text((x, y), d1, inky_display.BLACK, font_footer) | |
x = 175 | |
draw.text((x, y), local_ip, inky_display.BLACK, font_footer) | |
inky_display.set_image(img) | |
inky_display.show() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment