AprilSylph / XKit-Rewritten

🧰 The enhancement suite for Tumblr's new web interface
GNU General Public License v3.0
288 stars 48 forks source link

Mass unliker only removing some likes (not regarding deleted liked posts) #1432

Closed Kholekardashian closed 5 months ago

Kholekardashian commented 6 months ago

Platform

MacOS sonoma 14.2

Browser

Chrome

Addon version

Beta 0.23.4

Details

Hi! Im a new user of xkit (long term user of tumblr) and first time user of github. I downloaded xkit rewritten so i could delete my likes on my tumblr account (approximately 50k) with the knowledge that the feature in question has issues at times such as not bringing your like number down to zero due to deleted posts. I ran into the issue of starting to clear my likes, then when almost all my likes had been cleared it said it was “deleting (?) post ID [insert string of numbers here]”. it basically went on indefinitely. I refreshed the page to find that i still had around 37k likes left (with posts still present). I tried to clear again but it either does that again or when refreshed few or no posts are removed. I have no other extensions active or features enabled. Thankful for any help i can get!

marcustyphoon commented 6 months ago

Hmmm, to be completely honest: was this all done today? I wouldn't be surprised if Tumblr's servers are exploding under the weight of all of the boops. We have code to handle a like request coming back with an error (which I'll go look over again just to be sure), but we don't handle the server just... never responding with anything, I guess.

Adding code that treats an API response time of more than some really high number as a failure is probably a good idea, but in the meantime, do try once more when it's not April Fools' and let us know if it goes back to normal then!

Kholekardashian commented 6 months ago

Was not expecting a response so quickly, super appreciate it! I did start this process late last night so it definitely tracks with the April fools shenanigans. Im going to be completely honest when I say I’m far from being coding savvy, hence why I submitted the issue report, but I’ll definitely try again and let yall know if the issue persists. Once again thanks so much!

AprilSylph commented 6 months ago

50k → 37k likes is a lot, especially when Mass Unliker can only unlike at a rate of one post per second. Every time that "string of numbers" changes, it's unliking a different post. If your approximations are correct, you ran Mass Unliker yesterday for ~3.6 hours, and it would now take a little over ten hours of continuous operation to get down to no likes.

marcustyphoon commented 6 months ago

then when almost all my likes had been cleared it said it was “deleting (?) post ID [insert string of numbers here]”.

Oh, I totally misinterpreted this! I had assumed that meant "that text was not changing," i.e. it was stuck on one post, i.e. it wasn't working. If that text was changing once per second: that's what it's supposed to do! The entire process before that is just collecting all of your likes.

(I have to-do items to improve this in various ways: #935, #1409)

AprilSylph commented 6 months ago

Maybe we should, uh, collate[?] the unliking? "Fetch everything, then unlike it all" is bound to be a terrible user experience when it takes [punching numbers into calculator] 2,500 separate requests to do the "fetch everything" part.

...We throttle the fetch requests too, don't we? That's, at a minimum, 40 minutes before the unliking process even begins. Goddamn.

How does Likes paginate again...? If it's by cursor instead of by timestamp, I think it'd be safe to do fetch-unlike-fetch-unlike and still use the next response field, which would also avoid unliking any new likes from after the process began. (It's paginated by timestamp, isn't it.) ((This is a genuine question, I don't have enough likes to see for myself.))

marcustyphoon commented 6 months ago

That's what I was referring to in #935! I haven't tested it at all, though, so good question re: pagination. I believe it is by timestamp, yes.

Kholekardashian commented 5 months ago

Writing back to let you all know that i redid it and it worked! I think it was simply the booping (and frankly user (me) ignorance). My laptop died so not all my likes got deleted since the process was interrupted but many did, and yes it did take several hours lmao. Seems to be working perfectly fine! Thanks all for the help!