this post was submitted on 28 Jun 2023
33 points (100.0% liked)

Technology

37634 readers
55 users here now

A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.

Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.

Subcommunities on Beehaw:


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

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)
you are viewing a single comment's thread
view the rest of the comments
[–] Pekka@feddit.nl 6 points 1 year ago* (last edited 1 year ago) (1 children)

MLem (the iOS Lemmy app) was also showing the user karma (but I think it was only showing karma gained on the local instance). So I guess this is nice for people that like to know their karma.

I also agree with @nlm@beehaw.org that we should leave this as a thing for yourself. The Lemmy API should not bother with reporting user karma as It would be way too easy to cheat for people with singe person instances. (and of course the toxicity that comes with karma)

[–] squaresinger@feddit.de 2 points 1 year ago (1 children)

The API actually already reports something that looks like karma (it's called post_score and comment_score for the user in question), but for some reason that value is quite off. Not sure why.

So for example, the post score that is reported for my user is ~20% lower than what you get if you sum all the post scores up, while the comment score is ~95% too low.

[–] Pekka@feddit.nl 3 points 1 year ago

Ah yes, it is returned in both the PersonView and the LocalPersonView. From what I understood that was only reporting the local score of the person. I'm not sure what was meant with that. Your home instance would know about the post score and comment score you get from other instances, otherwise you could not see those votes.

For other instances it would make sense if the scores would not be correct (if they have to do their own calculations). As they might not receive updates from all communities where you receive votes. They will only receive updates if they are federated with the instance and at least one user on their instance follows that community.