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

    Why not? You don’t have to run the script. The script doesn’t post or show the scores anywhere publicly. All it does is inform you of your current score, if you so desire to know it.

    • dancedancedance@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      It looks like it’ll hammer the server with a lot of requests for no real reason other than vanity.

      The real fix would be to make a PR to add an endpoint to Lemmy that returns karma.