CroissantDuNord / discord-adblock

Hide Ads For Discord Nitro, with CustomCSS
MIT License
52 stars 7 forks source link

categorization brainstorming #42

Open ftc2 opened 4 hours ago

ftc2 commented 4 hours ago

https://github.com/CroissantDuNord/discord-adblock/issues/39#issuecomment-2480867147

@nixRidge

The extra list was initially made for Nitro-related objects, which it is kind of already starting to go beyond. I might make an "adblock-clutter" list to get rid of clutter like the forward button and the events thing in guilds. Any opinions on this?

as a project grows, it's good to re-evaluate the categories as more features/examples become known. copying from the readme:

Blocked Elements (Main list): Profile Tab (Server Profile Bloat, Profile Bloat) Settings (Nitro, Boost, Products) Homepage (Store + Nitro) Gift Button Server Boost Emote Picker / Sticker Picker Shop Nitro Icon (Server) Super Reaction Message Limit Warning App Launcher Icons

Blocked Elements (Extras list): Profile Customisations (Avatar frames, effects, etc.) Server Booster Badges Server Boost Progress Bar Server Boost Icon Quests icons Activity List in guild members list

(and now "Forward" hover bar button)

i have no idea what quest icons, activity lists, or guilds even are, lol.


well, looking over that list (which is incomplete) and thinking about what could be useful to users, here's my crack at it:

first of all, in my hypothetical, i'm renaming the project to discord-cleaner to reflect the full scope. 'cleaning' is probably as accurate and general as we can get because it's css-based, and the hammer we have to pound nails with is display: none. lol

discord-cleaner-ads.css: anything that is a legit nag or otherwise attempts to get you to spend money somehow. this would include hollow, broken, or greyed-out features that a non-nitro user can't actually use.

discord-cleaner-nitro.css: cosmetic things that are part of the nitro experience but are not actually ads in any way. this would be anything that a non-nitro user with no intention of ever giving discord money could conceivably still enjoy experiencing...

discord-cleaner-misc.css: miscellaneous bloat unrelated to monetization

no clue what this stuff is... i guess i've been using discord-adblock too long – thanks! :)

my attempt is flawed because i don't know precisely what like half of those things even are. because of that, maybe i miscategorized some of them, but hopefully my intent is clear. for example, if a server badge merely indicates that it's boosted, then that would be discord-cleaner-nitro.css. however, if the badge actually encourages you to boost the server by clicking on it or including language like 'join in and boost it now!', then that'd be discord-cleaner-ads.css. also, i'm sure a few objects are ambiguous and have overlap between ads and nitro.

ftc2 commented 4 hours ago

another idea of course would be to make this whole thing into a vencord plugin.

this would allow users to cherry pick each thing from a settings UI, and their preferences would persist through updates without any maintenance burden on the user's part.

it may also allow for more powerful/performant filtering. would it help with https://github.com/CroissantDuNord/discord-adblock/issues/32 i wonder?

it would even let you add elements like forcing the Reply button on the hover bar for every message (even your own messages).

the obvious downside is the effort involved. there would also be more potential for feature creep.

nixRidge commented 4 hours ago

Sorry, guilds is the archaic term for what Discord calls "servers" nowadays, force of habit. They're not really servers, but that's a nitpick for a totally different conversation, and probably only bothers sysadmins like me lol... I should probably switch this terminology.

This is a great writeup, thank you very much for taking your time to do this. Renaming the project isn't really my call but I agree the new scope does warrant it, either way that's for CroissantDuNord to decide as it's his repo. However I'm not sure if he still checks GitHub. Not that I'd blame him for that. I'm not in a hurry to do this, but it's possible I'll fork the project to a repo under my Codeberg profile instead of GitHub.

Making this into a Vencord plugin that allows granular control has always been on my to-do, in fact the thing I want to do the most, but the issue is I don't know my way around scripting in either JavaScript nor TypeScript. I'd have to find the time to learn this, which has always been fairly hard for me despite really wanting to teach myself some proper scripting and programming.

The effort involved is completely okay with me, it's just knowing how that's blocking me, and minimal free time to pursue my hobbies :)

(and the hammer we have to pound nails with is display: none <- love this, lol)

ftc2 commented 4 hours ago

They're not really servers, but that's a nitpick for a totally different conversation, and probably only bothers sysadmins like me lol...

i agree completely. for years, i would laugh whenever friends told me to join their "servers". but unfortunately, for any sane level of clarity, i think using discord's own term is unavoidable.

"communities" are what they really are, but that's also not nearly as clear.

ftc2 commented 4 hours ago

I'm not in a hurry to do this, but it's possible I'll fork the project to a repo under my Codeberg profile instead of GitHub.

i'm not versed in the ideological arguments against github, but you'll lose contributors like me if you migrate away, lol. :(

i get it, though. i don't use facebook, instagram, reddit, or twitter, and i'm sure i have suffered in some ways as a result.

nixRidge commented 4 hours ago

i'm not versed in the ideological arguments against github, but you'll lose contributors like me if you migrate away, lol. :(

Precisely why I haven't done so by now, rather just keep everything here unless it becomes an actual hinderance rather than an annoyance. Everyone's here; hell, that's why we have to use Discord sometimes as well isn't it.

ftc2 commented 4 hours ago

Making this into a Vencord plugin that allows granular control has always been on my to-do, in fact the thing I want to do the most, but the issue is I don't know my way around scripting in either JavaScript nor TypeScript. I'd have to find the time to learn this, which has always been fairly hard for me despite really wanting to teach myself some proper scripting and programming.

i know js, and afaik ts is similar. the real barrier i think is becoming familiar with vencord itself.

vencord's docs are useless. it only covers setting up the dev enviornment (if even that). this is the most promising thing i've found so far: https://gist.github.com/sunnniee/28bd595f8c07992f6d03289911289ba8

reading that and then using existing plugins as examples could be enough to get started.

nixRidge commented 4 hours ago

This looks promising. I've built Vencord with unofficial plugins before (grab Vencord source, add the plugin, build it, point Vencord to that build in settings, refresh Discord), so that part I've got down. I never got around to it, but I was going to try setting up a basic plugin by looking at other plugins to learn how they work, that guide you found will help with understanding them. I'll try to remember to look into this.

If you want to have a crack at it, then by all means that'd be appreciated. I'll definitely be on hand to keep it up to date with new rules.

The only roadblock I can think of is how frequently the plugin would need to be updated. As far as I understand it, plugins only get updated when Vencord itself is updated. Could there possibly be a way to fetch these rules from an online repository during runtime?

ftc2 commented 3 hours ago

Could there possibly be a way to fetch these rules from an online repository during runtime?

good question. no clue if there is a technical issue with it or an issue with vencord's own guidelines for plugin submission. perhaps we should join vencord's own (eh hem) discord community and ask them. probably also useful for plugin dev questions in general.

ftc2 commented 3 hours ago

i joined the vencord discord. you have to open a modmail in discord and request access to chat in the plugin dev chan. if you see someone in there talking about the hoverbar or adblock, that's probably me ;)