aeva,
@aeva@mastodon.gamedev.place avatar

what if I shaved two yaks 🤔

aeva,
@aeva@mastodon.gamedev.place avatar

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.

aeva,
@aeva@mastodon.gamedev.place avatar

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.

aeva,
@aeva@mastodon.gamedev.place avatar

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.

aeva,
@aeva@mastodon.gamedev.place avatar

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.

aeva,
@aeva@mastodon.gamedev.place avatar

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".

aeva,
@aeva@mastodon.gamedev.place avatar

A "for the love of god never show me anything marked sensitive from that instance" mode would be good too.

aeva,
@aeva@mastodon.gamedev.place avatar

anyway, as you can see this would just be a teeny tiny wafer-thin yak to shave

aeva,
@aeva@mastodon.gamedev.place avatar

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,

@aeva nice roadmap.

How would you do the front end.. will it be like a flask/Django set of templates?

aeva,
@aeva@mastodon.gamedev.place avatar

@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.

chrisshaw,

@aeva I suppose you could model the application APi using the FastAPI library which tkinter could call natively from within python.

Then it would be trivial to add a rest API to the model to create a web front end

aeva,
@aeva@mastodon.gamedev.place avatar

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:

https://mastodon.gamedev.place/@aeva/110247221782348696

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.

ginsterbusch,
@ginsterbusch@kosmos.social avatar

@aeva Kind of a tracerouting thingy ..?
Or maybe like the network of forks seen on Github ..?

aeva,
@aeva@mastodon.gamedev.place avatar

@ginsterbusch just a timeline, but with points in circle shells so you can see them easier

boredzo,
@boredzo@mastodon.social avatar

@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,
@aeva@mastodon.gamedev.place avatar

@boredzo oh yeah that would be handy as well, although I doubt I get access to that information through the client API

liaizon,
@liaizon@wake.st avatar

@aeva cant wait to see what you build. what about starting off on an already existing code base?

tomw,
@tomw@mastodon.social avatar

@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

iameru,
@iameru@leipzig.town avatar

@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

aeva,
@aeva@mastodon.gamedev.place avatar

@iameru no that's the better view trust me

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • slotface
  • kavyap
  • thenastyranch
  • everett
  • tacticalgear
  • rosin
  • Durango
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • InstantRegret
  • Youngstown
  • khanakhh
  • ethstaker
  • JUstTest
  • ngwrru68w68
  • cisconetworking
  • modclub
  • normalnudes
  • osvaldo12
  • cubers
  • GTA5RPClips
  • Leos
  • tester
  • megavids
  • provamag3
  • anitta
  • lostlight
  • All magazines