Pages:
Author

Topic: Ignore list so large, can't view without "Busy, try again (504)" (Read 3187 times)

copper member
Activity: 1526
Merit: 2890
Missed my 7 year bump. Sorry.

First time when you reported this issue BTC was at $2000 - $2500
hero member
Activity: 510
Merit: 4005
I see I got pinged once or twice for this (in 2023; I vaguely remember drafting a reply but obviously never got around to posting it).

I've been aware of this issue for some time, and my current thinking is that features like this one (the user-ignore feature) can actually happily exist almost entirely client-side (that is, right now this feature is implemented as a scattered pile of PHP supported by a teensy bit of JS, but, from a security perspective, it makes more sense for it to be implemented in the opposite way: as a pile of JS supported by a teensy bit of PHP [1]).

So, I'd like to rewrite the whole thing and kill a few birds with one (largish) stone:

(1) Fix the issue described in the OP [2].

(2) Fold in some other ignore-related improvements I've collected (see the second part of this post).

(3) Convince theymos to remove the current implementation in favor of the new one, so that this whole exercise results in discarding (rather than accumulating) attack surface.

But, there's some behind-the-scenes stuff that's yet to be solved: the above is just where my head's at, currently; no promises on when (or even if) I'll actually pursue any of this thinking.

[1] I mean, the security argument for shedding server-side complexity and preferring certain things to be client-side holds water on its own, but where it pulls so far ahead of the alternative that it's no longer even a contest is when you start to add fully fleshed-out features into the mix. The thing about a very server-side-centric system like SMF is that continued feature development will always butt up against the need to keep the amount of attack surface manageable, so that reasoning out the security consequences of each new change remains practical (both for theymos and for me). Really, I'd prefer for most of the feature to exist in the browser, and for only list/setting persistence to need any server-side support.

[2] This issue (lack of paginated UID <-> name conversion) actually gets fixed (mostly) by default when moving things to the browser: a local copy of the (entire) list is needed for client-side ignoring to even work (and there are a few ways I can think of to never have to resolve UIDs into names, or vice versa). I have to imagine that most users either have empty or small lists (mine only has two names on it, for example). For the people with huge lists, the need for the client to retrieve the whole thing from the server once per session (ignoring localStorage for now) might manifest as the feature only kicking in a few seconds after an authenticated session begins, but weighed against completely unburdening the server of the normal ignore-related processing it would otherwise have to perform, I'm all but certain that the very small (average) increase in session traffic won't take too much away from the whole idea.
legendary
Activity: 978
Merit: 1001
Missed my 7 year bump. Sorry.
copper member
Activity: 1526
Merit: 2890
Thank you shahzadafzal. I don't have an extensive ignore list. So, I don't know what the problem is. But, As theymos wanted to work on it, I believe the issue still exists, and many users may have it. Your replay deserves a single thread in Meta board if it works currently. I have a question, How is this script going to work? Will it erase the full ignore list? What if someone wants to clear a specific number of users? I don't know how many people an average person wants to ignore. But having more than 2K people on ignore list is already too big. I guess I've ignored less than 10 people so far.

Yes it will clear the whole list, actually it's quick solution for those who are not even able to load the page.

Yes if it's useful it be can customized to Add/Remove specific users but we don't need it, since the actual functionality is already working fine and can be done from the screen.


Where did you find those 20K users? I am curious if all of them are bounty hunters!

hahaha secret.
hero member
Activity: 518
Merit: 547
However IF you want to clear your ignore list you can run below script and it will clear your ignore list
Thank you shahzadafzal. I don't have an extensive ignore list. So, I don't know what the problem is. But, As theymos wanted to work on it, I believe the issue still exists, and many users may have it. Your replay deserves a single thread in Meta board if it works currently. I have a question, How is this script going to work? Will it erase the full ignore list? What if someone wants to clear a specific number of users? I don't know how many people an average person wants to ignore. But having more than 2K people on ignore list is already too big. I guess I've ignored less than 10 people so far.

Quote
Well for the sake of testing i have added 20000 users to my ignore list and its working fine.
Where did you find those 20K users? I am curious if all of them are bounty hunters!

@gadman2 If it works for you. Let us know. Unfortunately, you won't have to bump this thread again after another year. Also, whoever has an extensive ignore list can try this script.
copper member
Activity: 1526
Merit: 2890
Where is this guy called Power Glow?😉 He can fix this problem in a few days max.
If Op had saved 1 bitcoin for each ignored member he would be bumping other things than this topic. But I like it and we all should learn from him, lesson is to never expect theymos to waste time on such unimportant problems.

@Op, I hope you live another 1000 years but eventually, [insert skeleton behind a computer desk meme here]. Good luck.

Well for the sake of testing i have added 20000 users to my ignore list and its working fine. Although after clicking Change Profile button i got Cloudflare error but my ingore list was updated.

On veiwing ingore list it;s partially loaded every time you click Ignore user options link. Some times it's showing 5000 user, sometimes 10k and sometime 16k but looks like it's updated.

However IF you want to clear your ignore list you can run below script and it will clear your ignore list



WARNING: This script will clear your ignore list
Code:
(async () => {
const decoder = new TextDecoder('windows-1252')
let lastReq

const fetchThrottled = async (url, ...rest) => {
        const timeRemaining = lastReq ? lastReq.getTime() + 1000 * 1 - new Date().getTime() : 0
        if (timeRemaining > 0) {
            await new Promise(resolve => setTimeout(resolve, timeRemaining))
        }
        lastReq = new Date()
        return await fetch(url, ...rest)
    }

 const getSesc = async () => {
        const html = await fetchThrottled('https://bitcointalk.org/more.php').then(async response => decoder.decode(await response.arrayBuffer()))
        return html.match(/https\:\/\/bitcointalk\.org\/index\.php\?action=logout;sesc=(.*?)"\>/)?.at(1)
    }

const editIgnoreList = async (userID, sesc) => {
        const formData = new FormData()
        formData.append('ign_ignore_list', '')
        formData.append('userID', String(userID))
        formData.append('sa', 'ignprefs')
        formData.append('sc', sesc)
        formData.append('goback', String(1))
        const { redirected } = await fetchThrottled(`https://bitcointalk.org/index.php?action=profile2`, {  method: 'POST', body: formData })
        return redirected
    }

let u = '0000000' //<-------- Replace your userId
const sesc = await getSesc()
const done= await editIgnoreList(u,sesc)
console.log(done)
location.href ='https://bitcointalk.org/index.php?action=profile;sa=ignprefs';
})()

Steps:
1. Replace the '0000000' userid with your own usersid in the above code e.g. let u = '0000000'
2. Login to bitcointalk
3. Stay on the page (any page)
4. Go to developer console (Press F12)
5. Copy Paste the code in the console and press Enter (after changing your the userid)


P.S. This code is heavly inspired by TryNinja's this script
hero member
Activity: 518
Merit: 547
Where is this guy called Power Glow?😉 He can fix this problem in a few days max.
I had a good laugh, to be honest. Yeah, PowerGlove can fix errors. Not sure if he would play with the code, which theymos ignored for six years. Of course, every bit of improvement is appreciated. Since I've mentioned his name, If he uses Notification Bot, He will get notified about this thread. He is active on Meta Board, I guess he will notice this thread since it's already bumped.

The Fact is coding is not easy. I wonder why programmers spend their precious time writing free scripts. The answer is an open secret. Sometimes they leave some bug on those scripts willingly, and the script user needs him to fix it. To fix those bugs, users have to pay the developer! Of course, this is not the case with SMF software.

Quote
@Op, I hope you live another 1000 years but eventually, [insert skeleton behind a computer desk meme here]. Good luck.
There you go.



Do you want him to bump it yearly for the next thousand years?  Wink
copper member
Activity: 1330
Merit: 899
🖤😏
Where is this guy called Power Glow?😉 He can fix this problem in a few days max.
If Op had saved 1 bitcoin for each ignored member he would be bumping other things than this topic. But I like it and we all should learn from him, lesson is to never expect theymos to waste time on such unimportant problems.

@Op, I hope you live another 1000 years but eventually, [insert skeleton behind a computer desk meme here]. Good luck.
legendary
Activity: 3010
Merit: 8114
6 years. Record for longest legitimate unsolved problem???

See you in a year Smiley

How is it a "problem" if you're not using the forum? I've had the same issue for at least 3 years but I don't really care. If you think that's a problem, wait until you hear about the donations received for new forum software in 2015, lol.
legendary
Activity: 978
Merit: 1001
6 years. Record for longest legitimate unsolved problem???

See you in a year Smiley
legendary
Activity: 978
Merit: 1001
Lets go 5 years without a fix.
legendary
Activity: 2464
Merit: 3878
Hire Bitcointalk Camp. Manager @ r7promotions.com
Not much hopeful about the execution time if it will be updated or not. We all know theymos :-D

Anyway, The list must be very long and after certain number it started to show the error. I am curious to know at what point do you get this error, I mean when did you start to see the error?
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
This forum uses PHP so can't the max script execution time setting be increased to larger than whatever the current value is (PHP uses 30 seconds by default, not sure if theymos manually increased this), so that you just wait longer without timing out?
legendary
Activity: 3010
Merit: 8114
I had that problem once found that the only thing you can do is manually unignore users, one at a time, when you see their posts are ignored. Eventually this will lower the list to a manageable number. I did successfully do this once, but I've blown way past the limit again and don't care anymore.
legendary
Activity: 978
Merit: 1001
legendary
Activity: 978
Merit: 1001
Lets go for 4 years.
legendary
Activity: 978
Merit: 1001
Coming up on a 3 year bump...

Still no solution.
legendary
Activity: 978
Merit: 1001
It's not my trust list. It's my ignore list. I assume that's what you meant. Either way that may allow me to see my ignore list, but at some point the problem will return so it's not a permanent solution.
Vod
legendary
Activity: 3668
Merit: 3010
Licking my boob since 1970
2+ years, no fix.

What if I create a quick tool you could copy your trust list into, and it would remove all the banned or inactive ones?
legendary
Activity: 978
Merit: 1001
2+ years, no fix.
Pages:
Jump to: