Skip to content

Commit

Permalink
Update for multiple providers
Browse files Browse the repository at this point in the history
  • Loading branch information
oliver-ni committed Dec 12, 2022
1 parent bce9eab commit 5b1d9d0
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,22 +107,19 @@ async def stats(_request):
return JSONResponse({"servers": servers[0]["servers"], "users": users})


@app.route("/dbl", methods=["POST"])
async def dbl(request):
async def process_vote(request, provider, uid_key):
if request.headers["authorization"] != DBL_SECRET:
return PlainTextResponse("Invalid Secret", 401)

json = await request.json()
now = datetime.utcnow()
# top.gg uses "user", discordbotlist.com uses "id"
uid = int(json.get("user", json.get("id")))
uid = int(json[uid_key])

res = await db.member.find_one({"_id": uid})
if res is None:
return PlainTextResponse("Invalid User", 404)

streak = res.get("vote_streak", 0)
streak += 1
streak = res.get("vote_streak", 0) + 1

if streak >= 40 and streak % 10 == 0:
box_type = "master"
Expand All @@ -136,7 +133,11 @@ async def dbl(request):
await db.member.update_one(
{"_id": uid},
{
"$set": {"vote_streak": streak, "last_voted": now, "need_vote_reminder": True},
"$set": {
"vote_streak": streak,
f"last_voted_on.{provider}": now,
f"need_vote_reminder_on.{provider}": True,
},
"$inc": {"vote_total": 1, f"gifts_{box_type}": 1},
},
)
Expand All @@ -145,6 +146,16 @@ async def dbl(request):
return PlainTextResponse("Success")


@app.route("/topgg", methods=["POST"])
async def topgg(request):
return await process_vote(request, "topgg", "user")


@app.route("/dbl", methods=["POST"])
async def dbl(request):
return await process_vote(request, "dbl", "id")


def get_checkout_item(id):
return stripe.checkout.Session.list_line_items(id, limit=1).data[0]

Expand Down

0 comments on commit 5b1d9d0

Please # to comment.