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)
  • Square Singer@feddit.deOP
    link
    fedilink
    arrow-up
    0
    ·
    1 year ago

    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
    
    • petrescatraian@libranet.de
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      1 year ago

      @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.