I want comments on my social media crossposts to show up on my blog as a comment section, and mostly this works well: modern systems ( Mastodon, Bluesky, LessWrong, etc) provide APIs where you can load the replies associated with a post. On the other hand, older systems like Facebook are more locked down: they want to keep your content inside the platform as part of their economic moat.
Still, Facebook will show all the comments on a post to anyone who visits it, even if logged out. You have to dismiss a popup and click "show more" and "see replies" a few times, but it's all public. At times I've written scripts to export the comments, but they're quite brittle: Facebook doesn't design their pages to be easy to scrape, and so my code has relied on incidental things that only happen to work.
Even though this is not a permanent solution, I've had another go at writing a comment exporter (code). It's not as thorough as past times: I couldn't figure out easy was to get the timestamp or links to the comment on Facebook, and I've left both out. I also had to switch my opt-out from working on user id to user name, which is less robust. But it works! I've gone back through June 2019, fetching comments for any posts where I was missing them.
Are you looking for comments/review, or just showing your work?
Interesting to read through! Thoughts:
I really don't like the no-semicolons JS style. I've seen the arguments that it's more elegant, but a combination of "it looks wrong" and "you can get very surprising bugs in cases where the insertion algorithm doesn't quite match our intuitions" is too much.
What's the advantage of making
alreadyClicked
a set instead of keeping it as a property of the things it's clicking on?In this case I'm not at all worried about memory leaks, since the tab will only exist for a couple seconds.
The
getExpandableComments