diff --git a/README.md b/README.md index db495ef..b3fe9a6 100644 --- a/README.md +++ b/README.md @@ -20,8 +20,6 @@ The CLI bard relies on your terminal using a font patched with the "Powerline" characters. The recommended fonts are the ones from the [Nerd font project](https://www.nerdfonts.com/). -You may also need to install the `libgirepository-2.0-dev` on your system. - Usage ===== diff --git a/pyproject.toml b/pyproject.toml index 3ca614c..b959cb2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,30 +1,15 @@ -[project] +[tool.poetry] name = "clibard" version = "0.1.0" description = "See all your notifications in the terminal" -authors = [ - { name = "nojhan", email = "nojhan@nojhan.net" }, -] +authors = ["nojhan "] readme = "README.md" -requires-python = ">3.11" -dependencies = [ - "faker>=0.7.4", - "humanize>=4.11", - "rich>=13.9", - "dbus-python>=1.3", - "PyGObject>=3.50", # You may need to install the system package for libgirepository-2.0-dev -] - -[project.scripts] -clibard = "clibard.clibard:main" - - -[build-system] -requires = ["setuptools>=68", "wheel"] -build-backend = "setuptools.build_meta" - -[tool.setuptools.packages.find] -where = ["src"] -include = ["clibard"] +[tool.poetry.dependencies] +python = "^3.11" +faker = "^0.7.4" +humanize = "^4.11" +rich = "^13.9" +dbus-python = "^1.3" +PyGObject = "^3.50" # You may need to install the system package for libgirepository1.0-dev diff --git a/src/clibard/clibard.py b/src/clibard/clibard.py index 45d05c8..0f1fb8f 100755 --- a/src/clibard/clibard.py +++ b/src/clibard/clibard.py @@ -3,10 +3,9 @@ import copy import signal import datetime -import humanize import collections -import rich +import humanize from rich.console import Console import dbus @@ -150,14 +149,6 @@ class Message: "body": 242, } - # 🚨🚩🚧🛎 🛈 🏲 🏴📌📳🗨 🗩 🗬 🗭 🗮 🗯 🧭⚠⚲✎ � ❓❔︖🯄 - self.icons = { - "low": "🛈 ", - "normal": "🗨 ", - "critical": "🚨", - "unknown": "🯄 ", - } - self._style = {} for k in self.color: self._style[k] = f"color({self.color[k]})" @@ -209,19 +200,6 @@ class Message: self.last_color = f"{self.style(key)}" - def auto_fg(self, bg): - # Automated black or white foreground. - if Color.ansi_lightness(bg) >= 50: - return "black" - else: - return "white" - - def hash_color(self, text, colors = None): - if not colors: - return hash(text) % 256 - else: - return colors[hash(text) % len(colors)] - class MessageLine(Message): def print_on(self, console = None, end = ""): @@ -257,37 +235,6 @@ class MessageParagraph(Message): return len(hdate) + len(self.app) + len(self.summary) + len(self.body) + 6 -class MessageBox(Message): - def print_on(self, console = None, end = ""): - hdate = self.date.strftime("%Y-%m-%d %H:%M") - if console != None: - # summ_color = f"{self.auto_fg(FIXME)} on color({self.color[self.urgency]})" - body_color = f"color({self.color['summary_'+self.urgency]})" - - bg = self.hash_color(self.summary) - sfg = f"{self.auto_fg(bg)} on color({bg})" - sfgi = f"color({bg})" - summ = f"─[{sfgi}][/][{sfg}]{self.summary}[/][{sfgi}][/]─" - - title = f"{self.icons[self.urgency]} {summ} {self.app}" - # title = f"[{summ_color}]{self.summary}[/]─ {self.app}" - - bs = self.hash_color(self.app) - - box = rich.panel.Panel( - f"[{body_color}]{self.body}[/]", - title=title, - title_align="left", - # subtitle = self.icons[self.urgency], - # subtitle_align = "left", - border_style=f"color({bs})", - safe_box = False, - ) - console.print(box) - - return len(hdate) + len(self.app) + len(self.summary) + len(self.body) + 6 - - class Broker: def __init__(self, max_msg = 100, bounds = "", msg_cls = Message): @@ -414,7 +361,7 @@ def test_messages(nb = 7): return notifs -def main(): +if __name__ == "__main__": import sys import argparse @@ -435,8 +382,8 @@ def main(): if asked.layout[0] == "h": broker = HorizontalBroker(bounds = "><") elif asked.layout[0] == "v": - broker = VerticalBroker(bounds = "><", msg_cls=MessageBox) - notifs = test_messages(int(asked.test)) + broker = VerticalBroker(bounds = "><") + notifs = test_messages(int(sys.argv[2])) for notif in notifs: broker.receive(None, notif) print("\n", end="") @@ -444,7 +391,7 @@ def main(): elif asked.send: import os import time - notifs = test_messages(int(asked.send)) + notifs = test_messages(int(sys.argv[2])) for notif in notifs: m = Message(notif) os.system(f"""notify-send "{m.summary}" "{m.body}" -u {m.urgency}""") @@ -455,9 +402,5 @@ def main(): broker.run() elif asked.layout[0] == "v": - broker = VerticalBroker(msg_cls=MessageBox) + broker = VerticalBroker() broker.run() - - -if __name__ == "__main__": - main()