early urwid support

This commit is contained in:
nebula 2025-04-21 00:18:57 +00:00
parent 014f1cd222
commit 611625679d

28
bink.py
View File

@ -1,6 +1,7 @@
import json import json
from glob import glob from glob import glob
from time import time_ns from time import time_ns
import datetime
import os import os
from sys import argv from sys import argv
@ -45,3 +46,30 @@ if "dump" in argv:
with open("/dev/stdout", "w") as f: with open("/dev/stdout", "w") as f:
json.dump(generate_feed(), f) json.dump(generate_feed(), f)
exit() 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()