This script transforms links from other instances to your home instance. So useful :)

As @[email protected] explained:

It makes it so that if you visit another instance using their URL, it will redirect you to your home version’s federated link.

E.g. if your home server is Lemmy.world, let’s say you find a link to Lemmy on another website but it’s a link to Lemmy.ml. If you click the link, you won’t be signed in.

So like: https://lemmy.ml/c/memes would redirect to https://lemmy.world/c/[email protected]

This way you can seamlessly use Lemmy.

It does the same for posts.

Edit: since it works from any site, I highly recommend you to add it to your Android browser so it will work with webapp clients here’s how:

You can use violentMonkey on ff browser too, but you need to unlock Dev options, then do this

    • Azzu@lemm.ee
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      I see. I think there are already efforts towards that. This is mainly supposed to be for the browser and not my domain.

      And honestly, I don’t really get why you’d need an app if the official web UI works perfectly well on a mobile browser :)

      • LoudWaterHombre@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago
        • Better push notifications
        • smaller scope for browser storage permission
        • smoother (and more) animations
        • better multi account support

        I think there are even more reasons.

        This is mainly supposed to be for the browser and not my domain.

        What do you mean? I wanted it in an app, not domain spicific.

        • Azzu@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          You’re in a thread about me answering questions for a browser extension, asking about a mobile app. I think it’s more appropriate to ask: what do you mean? I have nothing to do with a mobile app.

          • LoudWaterHombre@lemmy.dbzer0.com
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            1 year ago

            But its obviously a great functionality. We could think of setting it up as a proper library with good interfaces so you could just pull it into your code.

            In the end we are making open source software to improve the platform, so you could also submit your algorithm to the projects.

            I’m sorry I thought this thread is about asking questions and having a discussion about the feature and your code

            • Azzu@lemm.ee
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              1 year ago

              The native Jerboa app does not use any JavaScript. The code is not and can not be compatible. The “algorithm” I use is like 10 lines of code, I wrote the base of it in like 1 hour. Most of the rest of the code is solely about handling the weirdness of browsers and having it work in all kinds of different websites, all of which jerboa wouldn’t care about.

              I could probably implement the feature in jerboa in 3-4 hours, depending on how easy it is to get into the Android app ecosystem. But I don’t use jerboa and don’t care much about it, so I won’t, unless somebody wants to pay me which I don’t think is happening.

              If you had made this comment from the start, I could have responded like I did now. As it were, I saw someone talking about some random app I didn’t care about. I didn’t have the context that was in your head, that you only now supplied in this comment.

              • LoudWaterHombre@lemmy.dbzer0.com
                link
                fedilink
                arrow-up
                1
                arrow-down
                4
                ·
                1 year ago

                Yes don’t get me wrong, like its a cool feature, but I am very well aware that it’s neither complex nor a lot of work, but it has to start somewhere. I was just trying to encourage pushing good features to the whole platform. But I got you, you internalized the idea behind FOSS, decentralized digital infrastructure structure owned by people not big corp, you want to be paid for your 10 line “algorithm”.It’s OK.

      • XpeeN@sopuli.xyzOP
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Yeah, I just wish sopuli’s webapp wouldn’t crash on me immediately. It’s just feels a bit different when not full screened ^^

        • Azzu@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          That’s weird, what browser do you have? I use Firefox for Android and everything is full screen and no crashes.

          • XpeeN@sopuli.xyzOP
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Mull. Other instances’ webapps works fine as I stated here. Maybe the admin editted something that broke it? Idk

            • Azzu@lemm.ee
              link
              fedilink
              arrow-up
              1
              ·
              1 year ago

              No website should ever crash a browser. It could be some weird things happening on sopuli.xyz but I would take this up with the browser developer, it looks more like a fault of the browser than the website, especially as everything works in other browsers.

              • XpeeN@sopuli.xyzOP
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                It seems logical, but I tried it on few browsers (some isolated on my work account so cookies make no difference), all ff based though. All crashed only with sopuli, which I find really weird, because sopuli should be using the same software as anyone else. Maybe it’s the webview itself? (Using Mulch wv, although I’m not sure if mull using it) that’ll explain why it happens on both fennec and Mull, but not why only sopuli lol.

                If we already talking, do you mind checking (on whatever browser you’re using) if it crashes for you too?

                • Azzu@lemm.ee
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 year ago

                  Crashes for me, too:

                  Second failure launching org.mozilla.firefox/org.mozilla.fenix.customtabs.ExternalAppBrowserActivity, giving up
                  android.os.TransactionTooLargeException: data parcel size 614820 bytes
                  	at android.os.BinderProxy.transactNative(Native Method)
                  	at android.os.BinderProxy.transact(BinderProxy.java:571)
                  	at android.app.IApplicationThread$Stub$Proxy.scheduleTransaction(IApplicationThread.java:2746)
                  	at android.app.servertransaction.ClientTransaction.schedule(ClientTransaction.java:136)
                  	at com.android.server.wm.ClientLifecycleManager.scheduleTransaction(ClientLifecycleManager.java:47)
                  	at com.android.server.wm.ActivityTaskSupervisor.realStartActivityLocked(ActivityTaskSupervisor.java:880)
                  	at com.android.server.wm.RootWindowContainer.startActivityForAttachedApplicationIfNeeded(RootWindowContainer.java:2000)
                  	at com.android.server.wm.RootWindowContainer.$r8$lambda$auelgeOhCvbItmS_07q5VFEb1ac(Unknown Source:0)
                  	at com.android.server.wm.RootWindowContainer$$ExternalSyntheticLambda2.apply(Unknown Source:8)
                  	at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:318)
                  	at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:204)
                  	at com.android.internal.util.function.pooled.OmniFunction.apply(OmniFunction.java:78)
                  	at com.android.server.wm.ActivityRecord.forAllActivities(ActivityRecord.java:4270)
                  	at com.android.server.wm.WindowContainer.forAllActivities(WindowContainer.java:1430)
                  	at com.android.server.wm.WindowContainer.forAllActivities(WindowContainer.java:1423)
                  	at com.android.server.wm.RootWindowContainer.lambda$attachApplication$15$RootWindowContainer(RootWindowContainer.java:1978)
                  	at com.android.server.wm.RootWindowContainer$$ExternalSyntheticLambda20.accept(Unknown Source:6)
                  	at com.android.server.wm.Task.forAllRootTasks(Task.java:3197)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1806)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1806)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1806)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1806)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1806)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1806)
                  	at com.android.server.wm.WindowContainer.forAllRootTasks(WindowContainer.java:1799)
                  	at com.android.server.wm.RootWindowContainer.attachApplication(RootWindowContainer.java:1964)
                  	at com.android.server.wm.ActivityTaskManagerService$LocalService.attachApplication(ActivityTaskManagerService.java:6041)
                  	at com.android.server.am.ActivityManagerService.attachApplicationLocked(ActivityManagerService.java:4595)
                  	at com.android.server.am.ActivityManagerService.attachApplication(ActivityManagerService.java:4676)
                  	at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:2404)
                  	at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:2517)
                  	at android.os.Binder.execTransactInternal(Binder.java:1179)
                  	at android.os.Binder.execTransact(Binder.java:1143)