kaiteki-fedi / kaiteki Goto Github PK
View Code? Open in Web Editor NEWThe comfy SNS client for everything, everywhere
Home Page: https://kaiteki.app
License: GNU Affero General Public License v3.0
The comfy SNS client for everything, everywhere
Home Page: https://kaiteki.app
License: GNU Affero General Public License v3.0
Currently the classes inside fediverse_objects are handwritten, generated from JSON strings.
There should be a GitHub action/tool that automates code generation (optionally with original documentation from the APIs itself). The tool should be able to fetch the most recent API specifications from each platform and regenerate classes.
?
) declaration///
required
declarationClass.fromJson()
, Class.toJson()
)Contains a list of threads that you want to watch and a notification count badge. Grouping of interactions would be a good idea too.
Currently Kaiteki works with text in this way:
This primarily only works for backends like Mastodon and Pleroma who send off sanitized HTML for web clients. But instances Misskey do things client side so it might be favorable to make it smarter.
This new code structure should make it possible to parse more diverse text input.
Windows build fails due to improper symbolic links.
The symbolic link should be a relative path, as in the following version.
https://github.com/Craftplacer/Kaiteki/blob/351bcdd72ae6f6f7cdfc1072080267a5aba0a0cf/src/kaiteki/windows/runner/resources/app_icon.ico
In the current version, it is an absolute path, which means that the file cannot be found outside of your environment.
https://github.com/Craftplacer/Kaiteki/blob/master/src/kaiteki/windows/runner/resources/app_icon.ico
The missing feedback of logging in to an instance is irritating many users, it should be fixed ASAP.
That behavior is a bit undesirable as it makes the emoji illegible
Now since Flutter 2, null safety is advised to migrate to, currently it's not possible to some depedency constraints. Packages listed down below are ones that are outdated and still haven't migrated. This issue is for tracking.
fediverse_objects
json_serializable
(4.0.2) google/json_serializable.dart#821build_runner
(1.12.1) dart-lang/build#2996 (comment) kaiteki
fediverse_objects
client_cookie
(2.2.1) Repository deadlogger_flutter
(0.7.1)
json_serializable
(4.0.2) google/json_serializable.dart#821build_runner
(1.12.1) dart-lang/build#2996 (comment)The user is capable what widgets/columns are visible to them. Some widgets might offer themselves to be columns itself (notifications, timeline, etc.)
For desktop mode, there could be a sort of designer settings menu:
Insert links to documentation, libraries and other pieces of information that might help us implement this feature.
PostScreen
➜ ComposeScreen
ThemeContainer
➜ ThemeManager
StatusWidget
➜ PostWidget
The goal of this issue is to remove irrelevant features that were implemented, so they can be implemented properly at a later date.
Cut out code should be put inside a non-compiled directory so they can be looked at if they need to in future.
When compiling to web, it could be possible that server admins could adopt Kaiteki as their frontend, given if Kaiteki could run in a "single instance" mode.
Features would include locking the instance and backend type when adding a new account, to make it easier to login. Since this is a bit user unfriendly, another thought might be to advertise the standalone client, where users are free to choose their backend.
Providing a default app theme (that might include wallpaper) would be nice to, reminiscent to Pleroma-FE.
(quality) make a better data structure to represent different backends.
Pushed by Craftplacer [email protected]
I have just fixed session persistance for the latest Kaiteki builds. I still have fears of how the code interacts with each other not being the smartest or most elegant.
I would love to get a discussion going how to rewrite it so it's flexible / has less code smell.
The problem that I'll have is that the account manager (AccountContainer
), Fediverse API clients (e.g. MastodonClient
) and the secret data classes (AccountSecret
and ClientSecret
) will have to be rewritten or modified, which I did with a9197e7.
When compiling to Linux, non-western text becomes unknown character boxes or straight up don't render at all.
This should be looked into.
A title bar that blends into the app, similar to Discord and so on.
N/A
You'll be able to have read-only access to instances, just by typing their domain, most functionality will be disabled.
Use Windows' compositing APIs to make the application see-through with acrylic background.
The difference between AppBar and Scaffold background are too big
Shortcuts are taken from Twitter as a start:
Store which account the user last used
Pushed by Craftplacer [email protected]
Some instances like Misskey (maybe Mastodon too) deliver BlurHash'es which can be used as temporary image or blurred version for NSFW posts.
N/A
N/A
N/A
It would be nice if there could be another shortcut (one icon for normal Fediverse, another one for chatting) to launch Kaiteki in "chatting-only" mode.
It will be a cut down version of the app experience just for chatting with people.
This would split the app into two modes, but under the same binary.
The question remaining if this is desirable for users, especially in daily use, and whether if the user has to switch between those two modes often.
Currently, tested on Linux, big images in small space have bad quality. Providing a FilterQuality value either makes it too sharp/pixelated or too blurry.
ThemeContainer is initialized once with a set theme and does not update when the user changes theme.
Scrolling across the timeline makes you encounter artifacts of a previous frame. The circumstances when this appears are unclear right now -- unproducable.
Flutter returns following console warning:
WebGL INVALID_OPERATION bindTexture object does not belong to this context
Originally reported by @[email protected]
Kaiteki can store 2FA secrets and fill out challenges automatically at the convienience of the user.
Simulated responses should be integrated into the app for faster debugging and development.
It makes more sense to remove Mastodon
, Pleroma
and Misskey
prefixes from classes and instead call them like usual, while also importing their respective library dart files as pleroma;
etc. making it possible to use pleroma.ChatMessage
or similar.
google/json_serializable.dart#678 may cause issues and require hand-editing JSON generated files though.
While migrating API entities inside Kaiteki it became apparent that Mastodon and Pleroma do part ways heavily, Pleroma is missing what Mastodon has and vice versa.
The solution will be to copy Mastodon's current set of entities into the Pleroma namespace and apply changes accordingly (add/remove fields).
Problems that mixed entities show are that fields have mixed nullable-states. This situtation is already bad when the user is authenticated or not, or the instance missing information, etc.
A GIF button in the toolbar when writing a post that opens a little bottom sheet with GIF search.
N/A
https://tenor.com/gifapi/documentation
https://github.com/justkawal/tenor
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.