From 949a2de01c7cbc02ccbfd26264363e86fca42440 Mon Sep 17 00:00:00 2001 From: yackob03 Date: Mon, 18 Nov 2013 15:59:07 -0500 Subject: [PATCH] Add a script to detect freeloaders for our own entertainment. --- tools/freeloaders.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tools/freeloaders.py diff --git a/tools/freeloaders.py b/tools/freeloaders.py new file mode 100644 index 000000000..ad6b37722 --- /dev/null +++ b/tools/freeloaders.py @@ -0,0 +1,25 @@ +from data import model +from data.database import User +from app import stripe +from data.plans import get_plan + +def get_private_allowed(customer): + if not customer.stripe_id: + return 0 + + subscription = stripe.Customer.retrieve(customer.stripe_id).subscription + if subscription is None: + return 0 + + plan = get_plan(subscription.plan.id) + return plan['privateRepos'] + +# Find customers who have more private repositories than their plans allow +users = User.select() + +usage = [(user.username, model.get_private_repo_count(user.username), + get_private_allowed(user)) for user in users] + +for username, used, allowed in usage: + if used > allowed: + print('Violation: %s %s > %s' % (username, used, allowed))