diff --git a/apps/profile/models.py b/apps/profile/models.py index 4b6a4b897..0eca39dcf 100644 --- a/apps/profile/models.py +++ b/apps/profile/models.py @@ -194,6 +194,13 @@ class Profile(models.Model): stripe.api_key = settings.STRIPE_SECRET stripe_customer = stripe.Customer.retrieve(self.stripe_id) stripe_payments = stripe.Charge.all(customer=stripe_customer.id).data + + existing_history = PaymentHistory.objects.filter(user=self.user, + payment_provider='stripe') + if existing_history.count(): + print " ---> Deleting existing history: %s stripe payments" % existing_history.count() + existing_history.delete() + for payment in stripe_payments: created = datetime.datetime.fromtimestamp(payment.created) PaymentHistory.objects.create(user=self.user, diff --git a/apps/rss_feeds/models.py b/apps/rss_feeds/models.py index 126f05c50..fc97934ae 100644 --- a/apps/rss_feeds/models.py +++ b/apps/rss_feeds/models.py @@ -1248,14 +1248,13 @@ class Feed(models.Model): slow_punishment = 6 * self.last_load_time total = max(10, int(updates_per_day_delay + subscriber_bonus + slow_punishment)) - if self.active_premium_subscribers > 5: + if self.active_premium_subscribers > 4: total = min(total, 60) # 1 hour minimum for premiums - if ((self.stories_last_month == 0 or self.average_stories_per_month == 0)): - total = total * random.randint(1, 24) - if self.is_push: total = total * 20 + elif ((self.stories_last_month == 0 or self.average_stories_per_month == 0)): + total = total * random.randint(1, 24) # 1 month max if total > 60*24*30: diff --git a/apps/rss_feeds/tasks.py b/apps/rss_feeds/tasks.py index 8340d1932..adea18805 100644 --- a/apps/rss_feeds/tasks.py +++ b/apps/rss_feeds/tasks.py @@ -29,7 +29,7 @@ class TaskFeeds(Task): next_scheduled_update__lte=now, active=True, active_subscribers__gte=1 - ).order_by('?')[:600] + ).order_by('?')[:800] active_count = feeds.count() # Force refresh feeds diff --git a/utils/reimport_stripe_history.py b/utils/reimport_stripe_history.py index a2a9eba30..ae46d31ce 100644 --- a/utils/reimport_stripe_history.py +++ b/utils/reimport_stripe_history.py @@ -1,7 +1,7 @@ import stripe, datetime, time stripe.api_key = settings.STRIPE_SECRET -week = (datetime.datetime.now() - datetime.timedelta(days=7)).strftime('%s') +week = (datetime.datetime.now() - datetime.timedelta(days=14)).strftime('%s') failed = [] limit = 100 offset = 0 @@ -29,6 +29,10 @@ while True: user.profile.activate_premium() elif user.payments.all().count() != 1: user.profile.setup_premium_history() + elif not user.profile.premium_expire: + user.profile.setup_premium_history() + elif user.profile.premium_expire > datetime.datetime.now() + datetime.timedelta(days=365): + user.profile.setup_premium_history() else: print " ---> %s is fine" % username except stripe.APIConnectionError: