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
l = Lemmy(INSTANCE_URL)
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)
@squaresinger Does it work with non-Lemmy software as well? 😁
Which software? Probably it will not, unless their API works the same. It probably wouldn’t be hard to adjust.
But since my Lemmy instance replicates your user account, I can run my script on my instance with your user name, and these are the results:
Post karma: 811 Comment carma: 1341 Total karma: 2152
@squaresinger that’s what I was looking for, haha. Thanks for running this for me!
Edit: my oldest/main Reddit profile is from 2015 and I have ~19.000 total karma. I am on fedi for one year and I already have more than 10% of that amount. I’m quite impressed.
No problem!
You might want to checkout this post: https://feddit.de/post/1185964
I made a Tampermonkey version of this. Just download the Tampermonkey extension for your browser, paste the script from the link to it, put in your user name and instance URL and it will show your karma next to your user name in the top right of the page.
@squaresinger never tried tampermonkey before. But it’s wonderful 😁
Hardly used it before, but it’s a really good extension.