Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Link engine #497

Open
1fexd opened this issue Dec 11, 2024 · 0 comments
Open

Link engine #497

1fexd opened this issue Dec 11, 2024 · 0 comments
Assignees
Labels
tracking Issues tracking progress/actionable tasks derived from user-reported bugs/feature requests

Comments

@1fexd
Copy link
Collaborator

1fexd commented Dec 11, 2024

To allow for full customizability at every step of LinkSheet's link processing backend, all steps need to be split up into well-defined operations which operate on an input, then produce some sort of output.

The refactor of the processing backend, dubbed "LinkEngine", will consist of the following well-defined components:

Actors

Modifiers

A Modifier applies pre-defined modifications to a given url

  • Embed rewriter
  • ClearURLs
  • FastForward
  • LibRedirect

Resolvers

A Resolver applies modifications to a url based on information which is acquired
at runtime, rather than being pre-defined

  • Follow redirects
  • Amp2Html

Fetchers

A fetcher gathers information about a link to provide either further functionality
or information to the user

  • Download
  • Open graph preview

Presenters

A presenter uses the given link to present some sort of user-visible result

  • Open an app directly
  • Show bottom sheet

Bottom sheet

Action

Opens the user selected app

  • Once
  • Always
  • Incognito

Context action

A context action allows the user to use the result in a way which does not directly open an app
like the "Once" or "Always" buttons do

  • Copy link
  • Share link
  • Download
  • Ignore LibRedirect
@1fexd 1fexd added this to Tasks Dec 8, 2024
@1fexd 1fexd self-assigned this Dec 11, 2024
@1fexd 1fexd converted this from a draft issue Dec 11, 2024
@1fexd 1fexd added the tracking Issues tracking progress/actionable tasks derived from user-reported bugs/feature requests label Dec 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tracking Issues tracking progress/actionable tasks derived from user-reported bugs/feature requests
Projects
Status: Backlog
Development

No branches or pull requests

1 participant