Pleroma users should be aware that Pleroma has introduced breaking changes in their implementation of the Mastodon client API, which mean Toot! will no longer work at all with the latest version of Pleroma.
Pleroma is breaking some fundamental assumptions Toot! makes about IDs, and which can't easily be changed.
@tootapp What are they changing?
@WAHa_06x36 @tootapp What are they then? Mastodon sends its IDs as strings too because of JSON integer overflow
@WAHa_06x36 @tootapp Is that basically UUIDs? I suppose that really fucks with the ability to calculate toot gaps (although it should still be possible with more effort if their API responses include next/prev links)
That being said, the Mastodon REST API was never intended to be used by anything but Mastodon, so maybe it's a good thing.
@Gargron @WAHa_06x36 Just their own completely custom format. I think it's the same type of snowflake ID, just with more bits.
Why on earth this would be necessary I don't know.
@Gargron @WAHa_06x36 @tootapp Then why not let people take a stab at creating a working "S" for the C2S part of ActivityPub in Mastodon?
@lain @tootapp @WAHa_06x36 If I understand correctly, the difference is in the encoding. Mastodon IDs are numeric in nature, so you can treat them as a big integer.
@lain @Gargron @WAHa_06x36 Mastodon ids are 64-bit integers, represented as strings.
@lain @Gargron @tootapp @WAHa_06x36 if they're still sortable as strings, Tusky will work just fine. Not sure why it should break any other client. Does anyone really convert them to integers?..
@charlag @lain @Gargron @WAHa_06x36 I do, for the cache database layer.
@tootapp l we do it as well for the same reason and I made sure that SQLite will do the thing I need.
https://github.com/tuskyapp/Tusky/blob/3ab78a19bcf9fa9212f27869805ca653d6638bfb/app/src/main/java/com/keylesspalace/tusky/db/TimelineDao.kt#L44
What do you use for such persistence?
@charlag Custom hash table database, as no existing solution worked without massive bloat.
@lain @charlag @Gargron @WAHa_06x36 Except Toot!, because you broke a core assumption of the Mastodon client API that I am relying on.
@tootapp @lain @Gargron @WAHa_06x36 could you... decode this number? It's still a number, right?
@charlag @lain @Gargron @WAHa_06x36 It’s too big to fit the hash table, and of course I have no guarantee Pleroma won’t just change its mind again.
@lain @charlag @Gargron @WAHa_06x36 I did check with Eugen that this is what is intended, and will remain the case for the foreseeable future.
@lain @charlag @Gargron @WAHa_06x36 Why though? 64 bit is enough for Mastodon, why not for you? There was no problem before, but now you have introduced one.
@lain @charlag @Gargron @WAHa_06x36 The only way Toot will ever work with Pleroma again is if you have a mapping back to 64 bits, though, or if you get back to being compatible with the API as it exists in Mastodon.
@tootapp @lain @charlag @gargron @WAHa_06x36 seriously?
@DarckCrystale Yes. Looking into whether the mapping idea is feasible now.
@sascha Rewriting a custom caching database layer?
@lain Also, Mastodon IDs are *not* sortable strings, they are sortable integers, represented as strings. "9" < "10" in the Mastodon API, which is not true for regular string comparison.
@lain They don't. They are are represented as regular integers, as far as I know. Comparing them as strings is wrong.
@Gargron @tootapp Base-62 encoded 128-bit integers.