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)
It’s an alright way to see if someone is commenting on good-faith or not. Anytime I saw someone saying highly controversial things, I’d check their account to see if they were just downvote collecting or actually held the view. It’s harder to do that now; my account says I’m at like…-30 something, on a single comment that went beyond a few people’s sensibilities. I could have put an /s on it but that defeats the purpose.
But anyone that looks at my profile now to make the “good faith” check will see me at -30, despite other contributions.
It is dumb how people worry about the number, but it does have other uses besides just a popularity indicator.
Seems like this is kbin Vs Lemmy difference, we at kbin get to see people’s “reputation” (yes including Lemmy users …with caveats) from this thread it seems Lemmy doesn’t easily expose the same.
That said the reputation system is kbin is currently broken as upvotes don’t count - it’s a known bug which will no doubt be corrected soon.