From a079919a771df88b08909e6f372b6f68601e1459 Mon Sep 17 00:00:00 2001 From: yackob03 Date: Mon, 18 Nov 2013 15:58:42 -0500 Subject: [PATCH 1/2] Add the required apt packages for proper PIL usage. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35ea35a87..6b394eecf 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ to prepare a new host: sudo apt-get install software-properties-common sudo apt-add-repository -y ppa:nginx/stable sudo apt-get update -sudo apt-get install -y git python-virtualenv python-dev phantomjs +sudo apt-get install -y git python-virtualenv python-dev phantomjs libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev sudo apt-get install -y nginx-full ``` From 949a2de01c7cbc02ccbfd26264363e86fca42440 Mon Sep 17 00:00:00 2001 From: yackob03 Date: Mon, 18 Nov 2013 15:59:07 -0500 Subject: [PATCH 2/2] 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))