cross-posted from: https://lemmy.ml/post/1611805

And I called it…Mullem.

Mullem? What’s Mullem?

Multiple Lemmy’s…Multi Lem’s…Mullem

It’s a way of having MultiReddit-like experience until (if) the Lemmy devs incorporate that feature into Lemmy.

What?

It’s a way to view multiple Communities from multiple instances in one unified feed.

FAQ

Will this work in a Chromium (Chrome, Brave etc) based browser?

No idea. I don’t have a Chromium based browser on any of my machines and I ain’t going to install one just to test this. If you want to port it, be my guest.

Is this compatible with KBin?

Nope. Part of the code needs to look for ‘/c/’ in a URL and as KBin uses ‘/m/’ it’ll just break. Don’t try it, it WILL break. I will add this in future development.

Will this work on a mobile browser?

No, it would be unusable as the interface would be all over the place. Mullem uses a Sidebar for one thing. There are zero plans to make this work on a mobile browser so don’t ask.

What Manifest version does Mullem use?

v2. I’ll port this to v3 if Mozilla kill off v2.

Why haven’t you set up a proper Git repository so I can see the code?

Can’t be bothered. If you want to see the source, download the file, uncompress it and have at it. If you’re really paranoid, run it through a virus checker.

Can I make changes? What License is this released under?

No license of any kind. Do what you want with it. But bear in mind the licenses of the three files bundled with it - jQuery, FeedEk.js and skeleton.css.

I’m American, can I change the date formatting?

Nope. Adding this option at some point though.

Can I change the colours?

Nope, working on it.

Are there size/Community/Mullem limitations?

Yes. Community and Mullem data gets placed in Local Storage which has a size limit. You’d have to add god knows how many Mullems and Communities though. Each entry is literal bytes.

Each Mullem fetches a maximum of 100 items. So whilst a Mullem can theoretically contain hundreds of Communities (seriously though don’t do that), the combined feed of all those Communities can never exceed 100 items.

Does this Add On respect my privacy?

Absolutely. It contains no tracking of any kind. It contains no adverts of any kind. It does not collect, store or transmit any information about you, your browser, your connection or your OS. The data you enter to create Mullems and add Communities to Mullems is stored in Local Storage in the browser you installed the Add On to and can be wiped at any time if you see fit.

What have you successfully tested on?

Plain vanilla Firefox v.114.0.2 and LibreWolf v.114.0.2-1 on Debian and Fedora

Installation

  1. It’s here, on the Mozilla Add On Store
  2. When it’s done, look at the main browser address bar. To the right of it, you might see the Mullem icon.
  3. If not, click the ‘Extensions’ icon (looks like a jigsaw puzzle piece)
  4. You’ll see the Mullem extension listed in the drop down, click the cog icon to the right of it and click ‘pin to toolbar’
  5. The Mullem extension icon should now be on your toolbar alongside the ‘Extensions’ icon.

Uninstall

  1. Right click the extension icon in the toolbar
  2. Click ‘Remove Extension’
  3. Uninstalling will delete all Mullems and Communities. If you want to keep that data, then before uninstalling the add-on, go to ‘about:config’ in the browser. Search for ‘keepUuidOnUninstall’ and set it to ‘true’. Then search for ‘keepStorageOnUninstall’ and set that to ‘true’ also.

Using Mullem

Click the Mullem extension icon and the Mullem sidebar will apear. You might need to manually adjust the width of the sidebar after adding Mullems and Communities.

First time?

If this is the first time you’ve used Mullem then you (obviously) have no Mullem’s yet. So step 1 - create a Mullem. Let’s say you want a Mullem for Politics so you can view multiple Lemmy political Communities in one feed.

  1. In the ‘Create Mullem’ section, enter ‘Politics’ in the ‘Mullem Name’ text box.
  2. Click the ‘+’ button.
  3. You should now have a new Mullem called ‘Politics’ (all icon links to the right are explained later in this document but at this point, without any communities added to this Mullem, they do nothing, except the Delete icon, which will delete the Mullem)

Now you can add Communities to your Politics Mullem. To do this:

  1. Copy the link to the Community (e.g. https://sh.itjust.works/c/ukpolitics). NOT the federated link (e.g. https://lemmy.ml/c/ukpolitics@sh.itjust.works). Using the federated link may well break Mullem.
  2. In the ‘Add Community To A Mullem’ section, paste the Community link to the ‘Add community URL’ text box
  3. Choose the Mullem (Politics in this example) to assign this Community to
  4. Click the ‘Add’ button.
  5. Click the title of the ‘Politics’ Mullem, you should now see the Community you just added listed under it.
  6. Repeat for all the Communities you want to add to this Mullem

NB: A good place to search for Communities across all Lemmy instances, by subject, is browse.feddit

Management of Mullems and Communities

Communities

You can do 2 things with Communities you’ve added - delete them completely or move them to a different Mullem

  1. Click the Mullem name that contains the Community you want to manage
  2. When all the Communities for that Mullem are listed below, find the Community you want to manage and click the gear icon to its right
  3. When the popup box appears, to delete this Community, click the ‘Delete’ button.
  4. Or, to move this Community to a different Mullem, click the ‘Move to’ dropdown box then select the Mullem you want to move it to.
  5. Click the name of the Mullem you just moved it to and you should now see it listed there instead.

Mullems

You can delete Mullems by clicking the minus icon link on the top right of each Mullem. This will delete both the Mullem AND any Communities you have associated with it so if you want to keep a Community, move it to a new Mullem first (see step 4 in the section above).

Viewing the Mullem

As we’ve learnt, clicking the name of the Mullem reveals a list of all the Communities in that Mullem. To view all these Communities as one feed (i.e. view this Mullem), click on of the four icons to the right of the Mullem name. These are (from left to right), this Mullem sorted by Hot, this Mullem sorted by Active, this Mullem sorted by New and this Mullem sorted by Old.

The Mullem will now be generated and appear in a new tab, sorted depending on which of the four icons you clicked.

There is no auto-refresh so if you want to see any new posts, you’ll need to refresh/reload the page in the normal way (CTRL + R, or F5 , or clicking the browser ‘reload current page’ icon to the left of the address bar).

The Code

There’s nothing in this section about how to use Mullem, it’s just an explanation of the code and a few provisos.

  • I’m not a JavaScript expert so I used jQuery. The code is far from perfect and someone more expert with JavaScript could probably optimise the shit out of this. If that’s you, feel free.
  • This is my first Add On, so there’s probably ways I could’ve made this better too.
  • The whole plugin, including images, weighs in at less than 236kb uncompressed and less than 57kb compressed.
  • I’ve used 3 things for this add-on - jQuery, a minified jQuery plugin called FeedEk.js to manage the RSS and skeleton.css to make my life easier.
  • The add-on grabs the RSS feed(s), sorts them in the requested way then presents them as one big feed. I used RSS rather than the Lemmy API as it’s easier. The documentation of the API is a bit lacking. No diss intended, Lemmy devs are busy as hell right now.
  • Hardly any Lemmy instances have CORS enabled their RSS feeds (seriously instance Admins, please do this) meaning the jQuery RSS plugin (FeedEk.js) uses a proxy to grab the feeds. This is admittedly a concern. If their proxy fails, the feed fails and the add-on becomes useless. I’m looking at ways around this as a matter of urgency.
  • All Mullem and Community data is stored in Local Storage.

Road Map

  1. Option to format the date in the Mullems for Americans.
  2. Add ability to rename Mullems.
  3. Allow colour theming of.
  4. Support KBin Magazines
  5. Find a way to not rely on proxies to get around CORS issues

  • Monomate@lemm.ee
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    Wouldn’t it be more useful contributing this feature directly to Lemmy?

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

        It may be so initially, but the developer will be burdened updating the extension for the foreseeable future to maintain compatibility with Lemmy updates.