Just save this as karma.py and run it with Python 3.6 or higher.
import requests
import math
INSTANCE_URL = "https://feddit.de"
TARGET_USER = "ENTER_YOUR_USERNAME_HERE"
LIMIT_PER_PAGE = 50
res = requests.get(f"{INSTANCE_URL}/api/v3/user?username={TARGET_USER}&limit={LIMIT_PER_PAGE}").json()
totalPostScore = 0
totalCommentScore = 0
page = 1
while len(res["posts"])+len(res["comments"]) > 0:
totalPostScore += sum([ x["counts"]["score"] for x in res["posts"] ])
totalCommentScore += sum([ x["counts"]["score"] for x in res["comments"] ])
page += 1
res = requests.get(f"{INSTANCE_URL}/api/v3/user?username={TARGET_USER}&limit={LIMIT_PER_PAGE}&page={page}").json()
print("Post karma: ", totalPostScore)
print("Comment karma: ", totalCommentScore)
print("Total karma: ", totalPostScore+totalCommentScore)
Isn’t that the same as “post_score” and “comment_score” in https://feddit.de/api/v3/user?username=Grishaix
That would sound plausible, yes, but apparently it is not. For me, my post_score was ~20% less than the score of all my posts summed up, and my comment_score was ~95% less. I actually opened a bug report for that here: https://github.com/LemmyNet/lemmy/issues/3393
I just ran the script on your user. The API returns a post_score of 125, while the calculated score is 121. For the comment_score the API returned 83, while the calculated score is 397.
Thanks for the clarification.
But to be honest, I’m still not quite sure if we really need this whole “internet points” thing.
Yeah, it’s only for each user to run if they want to. I like to. I don’t care about others’ score. It’s just for me to know.
I’ve read the discussions on that topic, and I agree that it should not be publicly visible, at least not next to the posts. If at all maybe in the user profile. But honestly I don’t care about that aspect.
I just want to know where I’m standing.
I’ve earned ~10% of my Reddit karma in just-over-two-weeks that I have been here, even though there are far fewer people here than on Reddit, so that’s concerning ;)
But that’s what I wanted to know and I go that info.