-
Notifications
You must be signed in to change notification settings - Fork 0
/
notification-center-menubar.py
38 lines (28 loc) · 1.08 KB
/
notification-center-menubar.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import sqlite3
import os
import rumps
class NotificationCounter(rumps.App):
def __init__(self):
super().__init__("NotificationCounter", title="Counting", icon=None)
def get_notification_count(self):
user_dir = os.popen("getconf DARWIN_USER_DIR").read().strip()
file_path = os.path.join(user_dir, "com.apple.notificationcenter/db2/db")
if not os.path.exists(file_path):
return 0
with sqlite3.connect(f'file:{file_path}?mode=ro', uri=True) as db:
cursor = db.cursor()
cursor.execute("SELECT count(1) FROM record")
count = cursor.fetchone()[0]
return count
@rumps.timer(5)
def a(self, _):
notification_count = self.get_notification_count()
circled_zero = ord("⓿")
circled_one = ord("➊")
if notification_count == 0:
circled_number = chr(circled_zero)
else:
circled_number = min(chr(circled_one + notification_count - 1), "➓")
self.title = circled_number
if __name__ == "__main__":
NotificationCounter().run()