Biribiri Beats

I

will

post

very

much

2 Likes

:eyes:
my apologies i went offline :sweat_smile: :bowing_man:

1 Like

No worries. I presumed as much :slight_smile:

1 Like

@plantron 42

2 Likes

@TrinityBringer san

I am logging out at the moment. But I don’t want to forget this topic. So tagging you in advance.

I am thinking of buying a gaming system for this Thanksgiving. Any help? You seem to be the most knowledgeable gamer on the threads.

Background:
Played a lot in childhood. Not much in recent years. Final Fantasy 14 is the last major game I played a couple of years ago. Play games like Pokémon Go, Harry Potter Wizards Unite, Genshin Impact, Stardew Valley etc. on mobile intermittently.

Thanks in advance :slightly_smiling_face: See ya later.

2 Likes

Thanks, I try to be!
image

I don’t know what your budget is, but if you can afford a PS4, I say go for it! It may not be as powerful as an XBOX, but it has a way better range of games (especially if you like RPGs), in my opinion. There’s the option to buy the cheaper PS4 Slim, if that suits your budget better.
A Nintendo Switch is also a great option, because you can play games handheld and on your TV. If you’re a Nintendo fan, it’s a must-have, and the 3rd party library of games is probably the best Nintendo has ever had in history, so you can even play some games like The Witcher and a select range of Final Fantasy titles. If that’s too expensive, you can go for the Switch Lite, but this eliminates your ability to play games on your TV and use external controllers.

Now, you may have noticed that I haven’t recommended buying a PS5 or an XBOX Series X, and that’s because I really don’t recommend buying the first batch of new consoles. That’s because they often have bugs, and the games library is going to be super small in the beginning.

So to summarize, I say go for a PS4, but if handheld gaming is more your thing, then go for a Switch. Hope that helps!

3 Likes

Thanks for the detailed answer Trinity San :raised_hands:t2: :grin:

Based on your advice, I am mostly leaning towards PS4 (80%) and Switch (20%). I walk around enough for PoGo and Harry Potter. And I generally prefer to focus on the game instead of stops/constant noise. PoGo/HP is a different case since there is not much story to it and the actions are mostly mechanical :stuck_out_tongue:

I will keep you posted :+1:

2 Likes

@BIsTheAnswer Is there a way for us to extract the first posts by all users in the forum for the year 2020? Whenever a user posts for the first time in the forum, a welcome prompt appears above the post. So, it must be operating on a tag. or If there is a tag related to posts, we can declare it to 1.

Is it possible?
If yes, how difficult is it?
If it is relatively easy (from a coding perspective), how time consuming is it?

Thanks for your time in answering the question :slight_smile:

2 Likes

Is this a separate series from “Seirei no Moribito”? @Belthazar san :slight_smile:

No idea. It’s a new book club book, but I’m not in that club.

1 Like

Thanks Belthazar san. I looked at the thread.

Congrats on buying your first house :slight_smile: :partying_face: Do you still live in Australia? (You don’t have to answer it if you don’t want to.)

1 Like

Yeah, still. I haven’t even moved out of the electoral district, much less the country. :stuck_out_tongue:

2 Likes

Certainly, basically you can query all activity from a given user by going to the user_actions endpoint of the forum, which is used to load the data for the activity tab on a users profile.

As an example, for your account, you can take a look at https://community.wanikani.com/user_actions.json?offset=0&username=kyokajiro&filter=4,5&no_results_help_key=user_activity.no_default, which returns your most recent activity.

The filter tag can be used to filter out the otherwise massive amounts of information. If I remember correctly, 1 are likes given by the user, 4 are the user’s topics, and 5 are the user’s replies, so you’ll probably want to put the filter to 4 and 5 if you want to find out the users topics.

The offset parameter can be used to browse further back, if you put it to a value of n it starts at the n-th most recent post, so 0 gives you the most recent post as the first element, which is the default.

It’s not too hard to do, all you’d have to do is go through all users and query that endpoint, increasing offset until you hit one where the year flips back (or you reach the end, of the stream, whichever comes first). Getting all users is easy too, you can use the badges to do so. There’s an endpoint called user_badges that simply returns information on a given badge, including an array users you can use to go through all users who have a given badge. For example, for the Basic badge, the id is 1, so you can go to https://community.wanikani.com/user_badges.json?badge_id=1 to see how the object looks. It also accepts an offset parameter which you can increase to advance the user array. If I remember correctly it’s sorted by the date on which any given user acquired the badge. Querying all users takes maybe a minute at most or so.

If you want to take the Campfire or any other non-public parts into account, you would need to provide some form of authentication, as without it only the public parts of the forum are visible. For the like graph I just logged in with my browser and took the Cookie string right out of it, then provided that as Cookie header from the script I used, which is a bit of a hack, but it works nonetheless. You then get the same visibility as whatever account you’re logged in as (so actually my like graph was a bit off, it didn’t take any of the level-based campfire subforums aside from “Pain” into account, as I didn’t have access to those myself, but since most of those are pretty inactive, they’re probably not enough to change any totals).

Now this is the harder part. The data is sorted by date, so that at least helps. But linearly walking back can take a long time for some users (the most active users specifically). There’s also a rate limit on how fast you can query the endpoint, so you’ll have to take that into account. I think you can query maybe 30-50 posts a second or so, so if you have to go back far that might take a while. And since it’s using the same endpoint as you would when you’re using the forum, you’re essentially locked out until it finishes (at least if you’re requesting at maximum speed). You can optimize it a bit by querying the total number of posts from any given users’ summary, and then binary searching for the date. You can even bias the starting point based on the date a given user joined.

Maybe there’s even a way to change the order or to filter based on the date field, but I haven’t experimented with it a lot, so I can’t be sure. You could try passing a couple of extra query parameters to the endpoint to see if it changes anything.

Going through all user summaries to get their most-liked and most-liked by list took around 3-4 hours or so for all Basic users, and that’s essentially 1 request per user. So if you increase the number of requests you’ll be looking at a heavily increased search time. The vast majority of basic users have barely ever posted anything, so you should be able to get their info with 1 request. For the heaviest posters on the platform, you might be looking at around 16 requests with a binary search. All in all, I’d say it might take a script running from a single IP around 8-12 hours, so you could probably do it if you let the thing run for a night.

If you have multiple IP addresses you can run the script from, then you can easily parallelize it by just splitting the users up over every IP address.

So all in all, if you’re willing to let the script run for a night, then it’s not that hard to implement.

The reason discourse has an easier time is because it’s a lot easier to verify if a given post is someone’s first than it is to find someone’s first post. Basically, the moment you make a post, if your activity log is empty, then that post is the user’s first post, and it can simply mark it immediately. It also sets a field called notice in the object describing to an object indicating that the given post was a user’s first post. So if you want to exclude anyone who already made a post before 2020, you could simply look at the post id for the first post in 2020 and see if it contains this.

Sorry for writing such an enormous dissertation. I hope it helps anyways :grin:

2 Likes

Hahaha :+1: Do you follow sports?

Thanks for actually taking time to write a detailed reply :grin: I deeply appreciate it :bowing_woman::bowing_man::bowing_man:‍♂ It is quite helpful.

image

I need to level up my skills to make it happen :nerd_face:

1 Like

I know what a sport is?

2 Likes