Marty Oehme
6905ce3ea7
When there are no new calendar events for the current day we do not display any whitespace after the icon.
39 lines
1.1 KiB
Python
Executable file
39 lines
1.1 KiB
Python
Executable file
#!/usr/bin/env python
|
|
# from https://gist.github.com/bjesus/178a9bd3453470d74803945dbbf9ed40
|
|
# List upcoming khal events in simple json container fit for waybar
|
|
#
|
|
# Hovering over the item displays all upcoming
|
|
# The icon changes if there are events today, and displays the
|
|
# closest upcoming one.
|
|
|
|
import datetime
|
|
import json
|
|
import subprocess
|
|
from html import escape
|
|
|
|
data = {}
|
|
|
|
today = datetime.date.today().strftime("%Y-%m-%d")
|
|
|
|
next_week = (datetime.date.today() + datetime.timedelta(days=10)).strftime("%Y-%m-%d")
|
|
|
|
output = subprocess.check_output("khal list now " + next_week, shell=True)
|
|
output = output.decode("utf-8")
|
|
|
|
lines = output.split("\n")
|
|
new_lines: list[str] = []
|
|
for line in lines:
|
|
clean_line = escape(line).split(" ::")[0]
|
|
if len(clean_line) and clean_line[0] not in ["0", "1", "2"]:
|
|
clean_line = "\n<b>" + clean_line + "</b>"
|
|
new_lines.append(clean_line)
|
|
output = "\n".join(new_lines).strip()
|
|
|
|
if today in output:
|
|
data["text"] = " " + output.split("\n")[1]
|
|
else:
|
|
data["text"] = ""
|
|
|
|
data["tooltip"] = output
|
|
|
|
print(json.dumps(data))
|