Ignore users + their quotes too

Started by natcip, July 12, 2019, 01:30:50 AM

Previous topic - Next topic

natcip

Hi,
I'd like a mod that advances the ignore feature by hiding quoted posts by the ignored users too.
Some members on my forum are complaining that they still can see the posts by those user when others quote them.
I'm thinking it could be difficult to detect the quote, for instance if the ignored user changed his name? :-\
What are you guys thinking?

Aleksi "Lex" Kilpinen

I could see that fast becoming quite a resource hog, if it really had to match each and every quote to first make sure if they are from a member, and then if that member is on someone's ignore list...
Slava
Ukraini!


"Before you allow people access to your forum, especially in an administrative position, you must be aware that that person can seriously damage your forum. Therefore, you should only allow people that you trust, implicitly, to have such access." -Douglas

How you can help SMF

njtweb

Quote from: natcip on July 12, 2019, 01:30:50 AM
Hi,
I'd like a mod that advances the ignore feature by hiding quoted posts by the ignored users too.
Some members on my forum are complaining that they still can see the posts by those user when others quote them.
I'm thinking it could be difficult to detect the quote, for instance if the ignored user changed his name? :-\
What are you guys thinking?

Don't allow users to change their name for starters. You can also see if somebody changed their name by comparing IP Addresses in ACP when you look up the new name. The Ignore feature isn't going to change. There is a global ignore mod which you can configure to do whatever you want to the member. It's a paid mod though.

Kindred

Quote from: Aleksi "Lex" Kilpinen on July 12, 2019, 01:40:34 AM
I could see that fast becoming quite a resource hog, if it really had to match each and every quote to first make sure if they are from a member, and then if that member is on someone's ignore list...

this...   even on top of how complicated this would be (having to pre-parse every single post as it loads is not simple to begin with -- then actually doing it will kill your server in any thread with more than 2 or 3 replies)
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Karmasterrr

Same here, users asking for this feature.
And one more - you can still see TOPICS of ignored members, why ?

Arantor

Because filtering out the messages is much more computationally expensive on the database than how it is currently done now.

Kindred

Quote from: Kindred on July 12, 2019, 10:02:45 AM... even on top of how complicated this would be (having to pre-parse every single post as it loads is not simple to begin with -- then actually doing it will kill your server in any thread with more than 2 or 3 replies)
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Karmasterrr

computationally expensive in 2022  :laugh:
do it with javascript on the client ?

Kindred

to do with the fact that a) it would have to do a lookup of your ignore list on every message load and then apply removal of content INLINE based on that list.

lots of SQL queries and php edits of the buffer during display....   in short -- removing QUOTES from an ignored user from someone else's post is unlikely to ever happen.
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Arantor

Doing it on the client is an equally weird idea, instead of getting 20 topics per page youd suddenly start getting 18 or 17. Pagination suddenly starts acting weird for the same reason.

Other platforms try this and it ends confusingly for their users.

As for "computationally expensive", we see hosts pushing more and more sites on to individual servers - I've seen some shared hosting run 3000 sites on a single server, all computing for the 6 CPU core it has. While the power available is off the charts, so too are all the ways to burn through it.

Karmasterrr

Let me explain what is important and what is not important for users who asked this feature:

1) They hate SEEING nicknames, topics and posts of the most hated mates from their ignore list. Right now they see their nicknames and topics they start and feel bad.
2) They don't care if there are EMPTY topics on the board list marked like this "Ignored topic"
3) They don't care if POSTS of their sworn enemies are shown as "Ignored post" with Nickname replaced with "Ignored user"
4) They hate but can tolerate quotes of those gentiles, because answers to those quotes made by ordinal members can be useful to discussion.

Is it computationally expensive?

Oldiesmann

Hiding entire posts from ignored users is easy because it's a simple matter of checking whether the ID of the member who made the post is in your ignored list. Your ignored list and the ID of who posted each message is already loaded so no additional queries are needed.

Hiding quotes from ignored users is far more difficult because we don't have a database table that tracks who quoted what post when. We simply have [quote author={name} link=msg={post_id} date={date}]...[/quote].

This means for each message we'd have to go through, look for a quote, then look up the author of said quote either by name or by the "link" (find the ID of the person who posted that message), and finally find a way to hide the quote either by stripping it out of the message entirely or doing something fancy with the bbcode. Combine that with multiple messages per page and it gets messy real fast, especially with larger posts and posts containing nested quotes.
Michael Eshom
Christian Metal Fans

Kindred

In other words. -- it's not going to be done in the core product
Слaва
Украинi

Please do not PM, IM or Email me with support questions.  You will get better and faster responses in the support boards.  Thank you.

"Loki is not evil, although he is certainly not a force for good. Loki is... complicated."

Antechinus

I just got around to looking at this part of Display.template.php and realised that, even when someone is ignoring a particular member, they will still see the ignored member's name, avatar, badges, custom profile fields. personal text, any other details stuffed before or under the avatar, plus any non-inline attachments, and even the quickbuttons. The only things actually "ignored" are the post content itself, and the ignored member's signature.

Ok, this is hilarious. Really. A prime candidate for some template hacking. And, IIRC, it was easy to transfer to relevant code to Recent.template.php too.

Arantor

I swear it wasn't that bad on 2.0...

Antechinus

It was nearly that bad, but I hacked it with the old "swappable containers" to make it do what people wanted it to do (ie: hide everything, except for  one inconspicuous line of text that said "You are ignoring this member. Show me the post).

Hacking the 2.1 version is pretty easy too. :)

Also, I do have to lol that .moderatorbar does not actually contain anything at all to do with moderation (it's only custom profile fields, and the signature). I can tell there is no point me mentioning the principle that class names should be clearly descriptive. :P

Chief of Nothing

QuoteHiding quotes from ignored users is far more difficult because we don't have a database table that tracks who quoted what post when. We simply have
[quote author={name} link=msg={post_id} date={date}]...[/quote].

This means for each message we'd have to go through, look for a quote, then look up the author of said quote either by name or by the "link" (find the ID of the person who posted that message), and finally find a way to hide the quote either by stripping it out of the message entirely or doing something fancy with the bbcode. Combine that with multiple messages per page and it gets messy real fast, especially with larger posts and posts containing nested quotes.

It's even more difficult than that. Quote doesn't need those attributes so stripping them out and your left with a plain quote, as demonstrated above with quoting Oldiesmann, so looking up the origin member of a quote by the quote attributes for filtering won't cut it either. What you'd have to do is when parsing all the posts for display when you come across a quote you'd have to check each and every post for the quote contents that aren't in a quote and if a match is found check if the poster is on your ignore list, if so filter it and hope you found the correct origin member.

Arantor

Solution: disallow quoting. It's fine for Facebook, right?

Karmasterrr

Quote from: Oldiesmann on May 31, 2022, 04:27:04 PMThis means for each message we'd have to go through, look for a quote, then look up the author of said quote either by name or by the "link" (find the ID of the person who posted that message), and finally find a way to hide the quote either by stripping it out of the message entirely or doing something fancy with the bbcode. Combine that with multiple messages per page and it gets messy real fast, especially with larger posts and posts containing nested quotes.

This does not sound good. Let me say what I think:

1) Nickname is already in the text of the post:
[quote author=bullie link=msg=229707 date=1654053940]So I think this is easy to filter it out (with css class) just by simple regex.

2) If there is no Nickname in the tag, then this quote can be shown, because texts are not as irritating as nicknames. And you can't see original message of the ignored member, because his original post (should) be hidden.

3) What is so computationally expensive in such parsing and processing only 20 shown posts ?

PS: Why you all are so obsessed with quotes ? They are irritative but are lesser evil.

Arantor

1) Because people never, ever ever change their name or anything (and quotes are not retrospectively changed)

3) Because you only view one page of one thread per day? It's every page of every thread for anyone who has anyone on their ignore list.

However, you seem to know more than people who've literally been members of the SMF team (including a former lead developer), please *do* show us how it's done.

Advertisement: