36 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from app import stripe
 | |
| from collections import defaultdict
 | |
| 
 | |
| EXCLUDE_CID = {'cus_2iVlmwz8CpHgOj'}
 | |
| 
 | |
| offset = 0
 | |
| total_monthly_revenue = 0
 | |
| 
 | |
| def empty_tuple():
 | |
|   return (0, 0)
 | |
| 
 | |
| plan_revenue = defaultdict(empty_tuple)
 | |
| 
 | |
| batch = stripe.Customer.all(count=100, offset=offset)
 | |
| while batch.data:
 | |
|   for cust in batch.data:
 | |
|     if cust.id not in EXCLUDE_CID and cust.subscription:
 | |
|       sub = cust.subscription
 | |
|       total_monthly_revenue += sub.plan.amount * sub.quantity
 | |
|       subscribers, revenue = plan_revenue[sub.plan.id]
 | |
|       plan_revenue[sub.plan.id] = (subscribers + 1,
 | |
|                                    revenue + sub.plan.amount * sub.quantity)
 | |
|   offset += len(batch.data)
 | |
|   batch = stripe.Customer.all(count=100, offset=offset)
 | |
| 
 | |
| def format_money(total_cents):
 | |
|   dollars = total_cents / 100
 | |
|   cents = total_cents % 100
 | |
|   return dollars, cents
 | |
| 
 | |
| for plan_id, (subs, rev) in plan_revenue.items():
 | |
|   d, c = format_money(rev)
 | |
|   print '%s: $%d.%02d(%s)' % (plan_id, d, c, subs)
 | |
| 
 | |
| d, c = format_money(total_monthly_revenue)
 | |
| print 'Monthly revenue: $%d.%02d' % (d, c)
 |