Coder Social home page Coder Social logo

kaiteki-fedi / kaiteki Goto Github PK

View Code? Open in Web Editor NEW
479.0 479.0 31.0 15.45 MB

The comfy SNS client for everything, everywhere

Home Page: https://kaiteki.app

License: GNU Affero General Public License v3.0

PowerShell 0.07% Shell 0.06% Kotlin 0.01% HTML 0.44% Ruby 0.19% Swift 0.11% Objective-C 0.01% Dart 96.22% CMake 1.08% C++ 1.66% C 0.06% JavaScript 0.04% CSS 0.06%
dart fediverse fediverse-client flutter hacktoberfest mastodon misskey pleroma

kaiteki's People

Contributors

0xdc avatar 5mikachu avatar ajiiisai avatar alicegrey avatar anactualemerald avatar craftplacer avatar dependabot[bot] avatar digitalsp avatar erincandescent avatar fitikwastaken avatar fungalcofe avatar geopjr avatar heavenlyflight avatar imgbotapp avatar izzysoft avatar joshix-1 avatar leap0x7b avatar lelehier avatar nixgoat avatar peppenamir avatar regu-miabyss avatar salif avatar sputnikplop avatar sussycatgirl avatar thatonecalculator avatar verysnowy avatar veselcraft avatar wizardnaiji avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

kaiteki's Issues

Support for Misskey Pages

  • Text interpolation with variables

Blocks

  • Text
  • Counter
    • Custom increment value
  • If
  • Compose note (#54)
  • Section
  • Images
  • Text area
  • Canvas
  • Button
  • Choice
  • Text input
    • Multiline
  • Numeric input
  • Switch

Variables

  • Values
    • Text
    • Text (multiline)
    • Text list
    • Number
    • Variables
    • Functions
  • Flow control
    • Branch
    • Repeat
  • Logical operation
    • NOT
    • OR
    • AND
  • Computation
    • Add
    • Subtract
    • Multiply
    • Divide
    • Remainder
    • Round
  • Comparison
    • Greater than (gt)

Remove unfinished and irrelevant features

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.

Things to remove
  • Theming menu
  • Chats
  • Notifications

2FA support

  • Initial implementation
    • Pleroma
    • Misskey
  • Proper design
Future thought

Kaiteki can store 2FA secrets and fill out challenges automatically at the convienience of the user.

Automate class generation for fediverse_objects

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.

Wanted features

  • Code generation
    • Automatic nullable (?) declaration
    • Automatic dartdoc comments ///
    • Automatic imports
    • Automatic constructor
      • Automatic required declaration
    • Automatic json_serializable methods (Class.fromJson(), Class.toJson())
  • Enhancements
    • Exclude objects
    • Apply different settings for certain objects
    • Hints for properties (e.g. array property is missing information what type its items have)
    • Support for generating files out of pure JSON files (not OpenAPI)
  • Applied to
    • fo/misskey
    • fo/pleroma
    • fo/mastodon

Localization

Prerequisites
  • Translation input (2 possible ways)
    • Translators have a GitHub account, work on a JSON file and push changes directly.
    • Crowdsourcing translation instance, like Weblate, for users to work on translation strings.
      As translation plaform I recently started a Weblate instance: https://wl.craftplacer.moe/
  • Automatic releases of translations
    • ... provided via GitHub Actions (weekly/monthly builds?)
Things to consider
  • Use pre-existing strings from Pleroma
    • ask in advance and credit translators

Thread watcher

Contains a list of threads that you want to watch and a notification count badge. Grouping of interactions would be a good idea too.

Notifications

Tasks

  1. 0 of 4
    area:ui enhancement platform:android platform:linux platform:windows

Direct token entry for accounts

Feature
  • Create a hidden developer mode
  • Show tabs in the login screen that change between "Normal" and "Token"
Design sketch

N/A

Resources

N/A

Chatting mode

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.

Following users

  • Follow endpoints implemented in adapters
    • Fetch current state (not following, request sent, following)
    • Being able to request a follow to someone
  • Functioning UI
    • Display current state
    • Send follow request
    • Update itself
  • Use providers to share state

Improve attachments

  • Only show up to 4 attachments
  • Hint at more attachments (by displaying the amount of attachments that aren't shown)
  • Hide sensitive attachments
design drafts

image

Frontend mode

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.

Windows version build fails due to improper symbolic link

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

Review and redesign session persistance

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.

Functional interactions

  • Replying
    • Display
    • Requests
    • Update
  • Liking/Favoriting
    • Display
    • Requests
    • Update
  • Repeating/Boosting
    • Display
    • Requests
    • Update
  • Reacting
    • Display
    • Requests
    • Update

Theming

  • Customization menu in settings
    • Theme list
    • Theme customization
  • Kaiteki/Material themes

Unicode/CJK text is invisible

When compiling to Linux, non-western text becomes unknown character boxes or straight up don't render at all.

This should be looked into.

Rework text interpretation

Currently Kaiteki works with text in this way:

[HTML Tags] -> [TextRenderer] -> [TextSpan]

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.

8b74a72e

This new code structure should make it possible to parse more diverse text input.

Prepare for null-safety

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.

packages left to migrate

Caching

  • Instance metadata
  • Local instance ID <-> user@instance
  • Sticker attachment IDs
  • Profile pictures

Customizable deck+desktop view

Feature

The user is capable what widgets/columns are visible to them. Some widgets might offer themselves to be columns itself (notifications, timeline, etc.)

Design sketch

For desktop mode, there could be a sort of designer settings menu:

image

Resources

Insert links to documentation, libraries and other pieces of information that might help us implement this feature.

Screen artifacts while scrolling timeline

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]

Windows CI builds

Tasks

  1. area:packaging platform:windows

Improve clarity on emojis

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.

Posting statuses

  • #114
  • Post form
  • Select formatting (if applicable)
  • Select emojis
  • Attach files
    • Pick files
    • Upload files
  • Select stickers (if applicable)
    • Upload them

Guest mode for instances

You'll be able to have read-only access to instances, just by typing their domain, most functionality will be disabled.

Split Pleroma and Mastodon API entities

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.