Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.
72 karma · joined August 16, 2025
https://github.com/superstarryeyes/
superstarryeyes@gmail.com
Write programs that do one thing and do it well.
Write programs to work together.
Write programs to handle text streams, because that is a universal interface.
first of all, i'm not trying to reinvent the wheel here. for xml parsing, i'm using libexpat, one of the most widely used c xml parsers.
for networking, i'm using libcurl, the industry standard.
i have some limits in place, too. the feed size is capped at 200 kb, and there are timeouts for hanging connections. there's also a sanitization step that strips control characters that could mess with the terminal emulator, mitigating escape sequences.
that said, i'm no security expert, and the source code is public. if anyone more knowledgeable spots a security hole, i'd be happy to merge a fix.
the reason i picked mit is because rss is in a rough spot right now. the tech isn't mainstream, and big companies are trying to squash it since it doesn't drive engagement like the infinite scroll. anything that helps rss move forward is a win, and the mit license makes that easier.
i hadn't heard of textual python terminal before but i'm looking at the documentation right now and it seems very useful package. thanks for the recommendation! i'll definitely research this more.
anyway, the instructions are here: https://github.com/superstarryeyes/lue/blob/main/DEVELOPER.m...
i'll give you a tip for making the modules, which worked for me incredibly well:
copy/paste the DEVELOPER.md to a high context window llm like gemini and then use something like this tool: https://repomix.com to generate a markdown of the whole github repo of a tts you want to port, and ask it to generate a module out of it for lue. it might work with one shot like it did for me for kitten tts, or you could have to do some follow ups, but this method has worked for me with many models already.
those elements are basically removed from the text, because i wanted to keep the reading experience very simple in a sense, but i should maybe add an option to only skip them with the tts.
though, i have to say lue is still not absolutely 100% perfect with this. epubs were easier because many of them are full of standardized xhtml/html tags. but there is still a lot of manual regexing in my code which i took a lot of time with, testing filters with 100 or so books to find the best and most general ones that are able to clean up most books.
pdfs are whole another beast because they are basically blocks of text without any tags so it's much harder to format and clean them up. the way i solved this was to use positional filters which are of course not bullet proof because people scan pdf's in different ways and pages are laid out differently. so i tried to find the best average placements of these elements (top 10% and bottom 10%) and there's always the option not enable this filtering or change the values. i'm still trying to look maybe a better way to solve this.
me, mainly i just look for the most beautiful monospace font i can find that has a nostalgic feel. recently my favourite has been "modeseven" (https://online-fonts.com/fonts/modeseven), which is also featured in the screenshot on the github page.
it saves the state of having the narration on or off, so if you ever open the book again you don't hear any voice. also the reading progress and state is automatically saved to your system log files. I'm pretty sure with a few settings in the config.py file you could direct them to your server.
about the monospace fonts. yes, they're not the prettiest but they're very easy to read! easier than many much more beautiful fonts. and if you're tired of reading, just switch on the tts. ;)