Skip to content

Commit

Permalink
fix: decode unicode escape sequences (fixes emojis, Chinese, etc) (#6)
Browse files Browse the repository at this point in the history
* fix: Item name Chinese encoding

* Apply suggestions from code review

* Apply suggestions from code review

---------

Co-authored-by: Erik Bjäreholt <erik.bjareholt@gmail.com>
  • Loading branch information
yuhldr and ErikBjare authored Nov 1, 2024
1 parent c5f3106 commit b0be7c2
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion aw_notify/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,16 @@ def checkin(testing=False):
send_checkin()


def decode_unicode_escapes(s: str) -> str:
"""
Decodes any Unicode escape sequences present in the input string
and returns the decoded result.
"""
# see https://github.com/ActivityWatch/aw-notify/pull/6
# assert "工作" == decode_unicode_escapes("\\u5de5\\u4f5c")
return s.encode('utf-8').decode('unicode_escape')


def send_checkin(title="Time today", date=None):
"""
Sends a summary notification of the day.
Expand All @@ -346,7 +356,7 @@ def send_checkin(title="Time today", date=None):
][:4]

msg = ""
msg += "\n".join(f"- {c}: {t}" for c, t in top_categories)
msg += "\n".join(f"- {decode_unicode_escapes(c)}: {t}" for c, t in top_categories)
if msg:
notify(title, msg)
else:
Expand Down

0 comments on commit b0be7c2

Please sign in to comment.