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
- Itās here, on the Mozilla Add On Store
- When itās done, look at the main browser address bar. To the right of it, you might see the Mullem icon.
- If not, click the āExtensionsā icon (looks like a jigsaw puzzle piece)
- 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ā
- The Mullem extension icon should now be on your toolbar alongside the āExtensionsā icon.
Uninstall
- Right click the extension icon in the toolbar
- Click āRemove Extensionā
- 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.
- In the āCreate Mullemā section, enter āPoliticsā in the āMullem Nameā text box.
- Click the ā+ā button.
- 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:
- Copy the link to the Community (e.g. https://sh.itjust.works/c/ukpolitics). NOT the federated link (e.g. https://lemmy.ml/c/[email protected]). Using the federated link may well break Mullem.
- In the āAdd Community To A Mullemā section, paste the Community link to the āAdd community URLā text box
- Choose the Mullem (Politics in this example) to assign this Community to
- Click the āAddā button.
- Click the title of the āPoliticsā Mullem, you should now see the Community you just added listed under it.
- 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
- Click the Mullem name that contains the Community you want to manage
- 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
- When the popup box appears, to delete this Community, click the āDeleteā button.
- 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.
- 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
- Option to format the date in the Mullems for Americans.
- Add ability to rename Mullems.
- Allow colour theming of.
- Support KBin Magazines
- Find a way to not rely on proxies to get around CORS issues
Iām guessing it would be many times as much work.
It may be so initially, but the developer will be burdened updating the extension for the foreseeable future to maintain compatibility with Lemmy updates.