Testing out KDE's new mastodon client Tokodon with Takahe. Rapidly improved from crashing at auth (and never launching again) to fully functional in just a few weeks.
Tyler Kennedy
@tktech@tkte.ch
Converting coffee into code.
This is a member of another server. See their original profile ➔
Made some new shrine and spirit tokens to run with my Magic The Gathering shrine deck. Stable Diffusion is incredible for just starting with a sketch and filling in the details, and a game changer for games like DnD.
Flask-Babel v3.0.0 has been released with numerous improvements (and some breaking changes!) Time to find out how many of the 15k dependencies on GitHub haven't pinned their dependencies!
@jph @literally An API endpoint is missing, I've implemented it in github.com/jointakahe/takahe/p so this will work soon.
@literally @andrew has fixed this in 0.6.1 :)
@tootapp Looking at the source it looks like they just use a 401 if the `read:search` scope isn't set, so I guess we'll just do that. Not a lot of consistency, would have expected a 422 like the timeline :(
@tootapp Is there a way to tell Toot! to hide the search sidebar if search is disabled?
@tootapp Interesting, alrighty. My understanding was that a missing `Link` header implies that there's no next or previous page available. We'll add support for it but I'm not sure what to do in that case (what happens when a site only has a single status?) I will have to investigate.
It wasn't noticed initially because the clients tested against so far like Tusky are doing the pagination directly without using the Link header.
@tootapp 😭
@tootapp Alright our output is now a lot closer to mastodon.social, and I've removed a bunch of optional fields to make things easier to debug. What's the parser dying on now?
@tootapp hmm so this one is toot! being stricter than the spec? I can send a temporary image for now, I'll have to create one for the header. Did you see any other errors or is this our last one on the timeline parsing?
Edit: ah! Whoops, didn't see the neither. Fix incoming!
@tootapp We're still not getting timelines, so we must still be failing on something else :(
A user reported this one: github.com/jointakahe/takahe/p, I'm guessing you expect the header and header_static keys to be missing completely if not set, instead of `null`? This might be worth changing on your side since I know other servers are sending null here.
@tootapp Had 2 more folks ask about Toot! today :) Bought a copy myself, very smooth UX. Excited to get this working!
@tootapp Okay, this one should be fixed now. We were returning relative urls to hashtags, where it looks like Mastodon always returns absolute URLs.
For the @ in the user URL, it looks like it's okay. It's _technically_ against the spec, but the NSURL seems to parse fine and Mastodon is doing the same thing in its URL field.
@tootapp Awesome, I've fixed timestamps on f.tkte.ch to be identical (chopping to reduce precision down to 3 digits) to Mastodon and I've added a setting to enable/disable the public timeline API and return a 422 if it's disabled. Still not seeing any results, so I'm guessing there's another field that's failing validation :(
@tootapp Fixed that bug, the public timeline is public again :) Regarding the status code, what API endpoint are you expecting 422 from? If I hit mastodon.social/api/v1/timelin without giving it a token, I get a 401 which is what I'd expect.
@tootapp Thanks for taking a look! We'll update the status code. Hm, you shouldn't need to login for the public timeline, f.tkte.ch/api/v1/timelines/pub returns A-ok without logging into toot! Happy to make you an account for debugging. If you're up for it, we're on Discord (discord.gg/qvQ39tAMvf), IRC, whatever you'd like to help debug.
@tootapp I thought that might be the case, so I did a diff between Mastodon's /timeline/public and our /timeline/public. One thing I noticed was that Mastodon's dates were precise the the microsecond, so I tried tweaking that, no change. There are a couple optional fields that we specify that mastodon doesn't usually, but everything else _looks_ identical. toot's the only client having trouble loading the timeline at the moment :(
@tootapp Would you be able to help us with compatibility with toot!? The Takahe API is mastodon-compatible and works with most clients, but toot! is showing users a blank timeline and we're not getting any errors on our end.
A possible new look for Takahe posts coming soon, moving the actions to the bottom and showing the total # of likes and boosts. Plus, a slightly tweaked, more compressed view for small screens.
@takahe @case @simon @edmistond sqlite supports multiple concurrent readers, and works fine with multiple writers (one holds the write lock and the rest just wait). It works fine for single person instances. I added the sqlite tests, but keep in mind it's not a focus of the project at the moment.
@takahe Woohoo! And sorry to everyone whose installs just broke because I decided to mess with the settings :P