From 611625679d45c41025016cdcaf2753f9bc86ea59 Mon Sep 17 00:00:00 2001 From: nebula Date: Mon, 21 Apr 2025 00:18:57 +0000 Subject: [PATCH] early urwid support --- bink.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/bink.py b/bink.py index de01e54..5fb1584 100755 --- a/bink.py +++ b/bink.py @@ -1,6 +1,7 @@ import json from glob import glob from time import time_ns +import datetime import os from sys import argv @@ -45,3 +46,30 @@ if "dump" in argv: with open("/dev/stdout", "w") as f: json.dump(generate_feed(), f) exit() + +import urwid + +class App(object): + def __init__(self): + self.walker = urwid.SimpleFocusListWalker([ + self.post_to_widget(post) for post in generate_feed() + ]) + self.loop = urwid.MainLoop( + urwid.ListBox(self.walker) + ) + + def post_to_widget(self, post): + time = post["time"] / 1_000_000_000 + stamp = datetime.datetime.fromtimestamp(time) + return urwid.Pile([ + urwid.Text([f"~{post['user']}", " @ ", stamp.strftime("%H:%M (%A, %B %d, %Y)")]), + urwid.Text(post["body"]), + urwid.Divider() + ]) + +app = App() +try: + app.loop.run() +except KeyboardInterrupt: + app.loop.stop() + exit() \ No newline at end of file