I was looking through the API docs for mastodon.py last night, and now I'm fantasizing about writing my own perfect half-finished mastodon client in python.
The main feature I want here is I want it to run on an absolute dogshit computer. Right now the mastodon web interface is probably the most CPU intensive program I run on that machine, and it handles my 1024x768 max resolution poorly.
I also want to get rid of "notifications" and replace it with something that isn't a Pavlov's Bell. I'd like to track replies in their own conversation interface. Boosts and faves don't need individual notices, and could probably just be replaced with a tab for seeing which of my posts are making the rounds.
I want to make the bookmarks feature more robust, and I'd like to keep an offline cache of posts I've seen so I can search them easier.
A big thing is I'd like to be able to follow the public timelines from other instances, so I can have a more controlled firehose than just the federated timeline.
I usually read my home and local timelines in bulk in the morning while waking up and after work to get caught up on the day. None of the clients I use handle reading through 8 to 14 hours of posts from hundreds of people all that well for some reason. I'd also love to have a "randomize" button lol.
Also different follow modes. "I'm only following this person for the pictures", or "never show me conversations between this person and other people I follow".
I figure architecturally this is all just an sqlite3 database. There'd be a daemon that fetches the data periodically and populates the database views, and everything else besides posting could be implemented as specialized frontend views to the local database.
@chrisshaw I want to run this on very modest hardware, so a dependency on a web browser is out of question. I was thinking I'd probably just write the gui in Tkinter, but I'd want it to be modular enough that someone else could write their own frontend if they wanted in something else.
Another feature for my dream mastodon client is something to help figure out what the hell happened when I wake up and one of my posts has hundreds of boosts, as is the case with this one:
I think plotting profile icons and respective follower count such that distance from the center is proportional to the time between the original post and a given boost would be interesting.
@aeva Also referers. The web interface could record, say, the last hundred referers that people came from, and aggregate the top ten/top 1% for the day.
That would detect QTs as well as getting quoted or otherwise linked on a website.
@aeva Mastodon is interesting in that if a post gets to low double-digit boosts, it often ends up in the 'explore' tab (in the web interface at least) and from there can build up hundreds rapidly. But it feels weird – starts slow and gathers pace at a point when you're probably not paying attention
@aeva what I would love would be some fetch all data button to get all on demand. Because of federation I only see 3 boosts for your linked toot and zero comments
Add comment