amycatgirl / bskynonmutualunfollow

Do What The F*ck You Want To Public License
0 stars 0 forks source link

I think that it is only unfollowing mutuals. (+another 2 important issues) #1

Open barretoleitej opened 1 month ago

barretoleitej commented 1 month ago

First of all thank you for being able to help me with this. Rlly.

1. The first thing is that i thing that the code is only unfollowing mutuals. But there are also other two concerns about it.

2. the second is that it only unfollow 50 people and then says: "Seems like everything is done". It should unfollow thousands of people, so theres any way to make this unlimited?

3. The other issue is that the unfollowing process is too slow, there is any way to make it faster? Maybe if you create an option to make the unfollowing process faster. Thank you.

amycatgirl commented 1 month ago

I'll try and fix it this afternoon, no guarantees though, I might have a lot of homework today

barretoleitej commented 1 month ago

Hi @amycatgirl any news? There's no need to hurry up. This script is just important to me. Thank you again. Have a good weekend.

amycatgirl commented 1 month ago

Just found the culprit.

It turns out that BlueSky's api paginates (that is, divides the result onto pages) the getFollows and getFollowers XRPC routes and I forgot to take that into account. Thanks for pointing that out.

As for the slowness, I could make it a bit faster, but I don't know if the API has some sort of rate limiting, which is why I added artificial delay.

barretoleitej commented 1 month ago

So, if it is possible to create a command to turn off the artificial delay.

barretoleitej commented 1 month ago

https://docs.bsky.app/docs/advanced-guides/rate-limits

amycatgirl commented 1 month ago

So I've read Bluesky's guide on rate limits and I think that you wouldn't reach the limit so quickly.

How many accounts have you followed so far, around 1k you said? Just fetching would be around 10 requests and the comparison happens locally. Deleting only counts as one point, and the global limit is 5k per hour.

Let's say that the script found 300 non-mutuals, that would count as 300 points according to their docs.

I'll add it after I push changes.

barretoleitej commented 1 month ago

Right now i need to unfollow 50k accounts. If the script manages to unfollow around 4k, 4.5k per hour it would be awesome because it would be difficult to detect.

amycatgirl commented 1 month ago

Alright, I just pushed rate limiting, it should work if I implemented this right

I am not sure if it works since the threshold is so big that my account itself won't be able to ever reach it

barretoleitej commented 1 month ago

Thank you again amy. I already can test it? You removed the artificial delay?

amycatgirl commented 1 month ago

Yes, pull in changes and run the script. I also removed the artificial delay.

The script needs to index all of your follows in order to work properly though, so it will take a little bit longer than usual

barretoleitej commented 1 month ago

It isnt possible to do that without indexing? im afraid that indexing would take too long, maybe hours.

barretoleitej commented 1 month ago

Apparently it managed to at least attempt to unfollow everyone but didnt worked out. I still follow the exact same number of people. If you want to i can borrow you my account data, so you can use it for testing.

Attempting to unfollow Bluesky Deleted 50568 follows from your account.Please double check your follows on barretoleitej.bsky.social to make sure the users listed were unfollowed! If any are missing, please report an issue on GitHub. C:\Users\João\Documents\bskynonmutualunfollow-main\node_modules\@atproto\xrpc\dist\types.js:173 return new XRPCError(status, undefined, message, headers, { cause });