refactor printing
This commit is contained in:
parent
524ea5d9ce
commit
66fc4f3b3e
1 changed files with 37 additions and 4 deletions
|
|
@ -3,6 +3,7 @@
|
||||||
import collections
|
import collections
|
||||||
# import rich
|
# import rich
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
|
from rich.style import Style
|
||||||
import humanize
|
import humanize
|
||||||
import datetime
|
import datetime
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
|
|
@ -28,6 +29,7 @@ class N:
|
||||||
},
|
},
|
||||||
-1
|
-1
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_member(self):
|
def get_member(self):
|
||||||
return self.member
|
return self.member
|
||||||
|
|
||||||
|
|
@ -37,6 +39,7 @@ class N:
|
||||||
def get_args_list(self):
|
def get_args_list(self):
|
||||||
return self.args_list
|
return self.args_list
|
||||||
|
|
||||||
|
|
||||||
class Message:
|
class Message:
|
||||||
def __init__(self, notification):
|
def __init__(self, notification):
|
||||||
# print("Notification")
|
# print("Notification")
|
||||||
|
|
@ -53,11 +56,40 @@ class Message:
|
||||||
self.expire_timeout = int(args[7])
|
self.expire_timeout = int(args[7])
|
||||||
|
|
||||||
self.date = datetime.datetime.now()
|
self.date = datetime.datetime.now()
|
||||||
self.hdate = humanize.naturaltime(self.date)
|
self.urgencies = {0: "low", 1: "normal", 2: "critical", None: "unknown"}
|
||||||
self.urgency = {0: "low", 1: "normal", 2: "critical", None: "unknown"}
|
self.urgency = self.urgencies[self.hints["urgency"]]
|
||||||
|
|
||||||
|
self.last_color = "black"
|
||||||
|
|
||||||
|
self.color = {
|
||||||
|
# Urgencies
|
||||||
|
"low": "105",
|
||||||
|
"normal": "33",
|
||||||
|
"critical": "220",
|
||||||
|
"unknown": "69",
|
||||||
|
"date": "21",
|
||||||
|
"summary": "254",
|
||||||
|
"body": "242",
|
||||||
|
}
|
||||||
|
|
||||||
|
self.style = {"none": "black"}
|
||||||
|
for k in self.color:
|
||||||
|
self.style[k] = f"color({self.color[k]})"
|
||||||
|
|
||||||
|
def print_segment(self, key, text, console):
|
||||||
|
console.print("", style=f"{self.last_color} on {self.style[key]}", end="")
|
||||||
|
# FIXME automated black or white
|
||||||
|
console.print(text, style=f"black on {self.style[key]}", end="")
|
||||||
|
self.last_color = f"{self.style[key]}"
|
||||||
|
|
||||||
def print_on(self, console = Console()):
|
def print_on(self, console = Console()):
|
||||||
console.print(f"[color(33)][white on color(33)]{self.hdate}:[bold black on color(33)]{self.app}[color(33) on color(254)][not bold black on color(254)]{self.summary}[color(254) on color(239)][white on color(239)]{self.body}[reset][color(239)]", end="")
|
hdate = humanize.naturaltime(self.date)
|
||||||
|
self.print_segment("date", hdate, console)
|
||||||
|
self.print_segment(self.urgency, self.app, console)
|
||||||
|
self.print_segment("summary", self.summary, console)
|
||||||
|
self.print_segment("body", self.body, console)
|
||||||
|
# console.print(f"[color(21)][white on color(21)]{hdate}[color(21) on color(33)][bold color(232) on color(33)]{self.app}[color(33) on color(254)][not bold color(232) on color(254)]{self.summary}[color(254) on color(239)][white on color(239)]{self.body}[reset][color(239)]", end="")
|
||||||
|
self.print_segment("none", "", console)
|
||||||
|
|
||||||
|
|
||||||
class Broker:
|
class Broker:
|
||||||
|
|
@ -87,8 +119,9 @@ class Broker:
|
||||||
self.print()
|
self.print()
|
||||||
|
|
||||||
def print(self):
|
def print(self):
|
||||||
self.console.print(end = "\r")
|
self.console.print(">", end = "\r") # It is necssary to print something before the chariot return.
|
||||||
for msg in self.deck:
|
for msg in self.deck:
|
||||||
|
self.console.print(" ", end="")
|
||||||
msg.print_on(self.console)
|
msg.print_on(self.console)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue