2012-12-05 13:10:11 -08:00
|
|
|
import datetime
|
2012-07-05 22:20:49 -07:00
|
|
|
from celery.task import Task
|
2013-05-13 18:03:17 -07:00
|
|
|
from apps.profile.models import Profile, RNewUserQueue
|
2012-12-05 13:10:11 -08:00
|
|
|
from utils import log as logging
|
2014-01-21 13:34:53 -08:00
|
|
|
from apps.reader.models import UserSubscription
|
2014-02-02 19:08:01 -08:00
|
|
|
from apps.social.models import MSocialServices
|
2012-07-05 22:20:49 -07:00
|
|
|
|
|
|
|
class EmailNewUser(Task):
|
|
|
|
|
|
|
|
def run(self, user_id):
|
|
|
|
user_profile = Profile.objects.get(user__pk=user_id)
|
|
|
|
user_profile.send_new_user_email()
|
|
|
|
|
|
|
|
class EmailNewPremium(Task):
|
|
|
|
|
|
|
|
def run(self, user_id):
|
|
|
|
user_profile = Profile.objects.get(user__pk=user_id)
|
|
|
|
user_profile.send_new_premium_email()
|
2012-12-05 13:10:11 -08:00
|
|
|
|
|
|
|
class PremiumExpire(Task):
|
|
|
|
name = 'premium-expire'
|
|
|
|
|
|
|
|
def run(self, **kwargs):
|
|
|
|
# Get expired but grace period users
|
2015-05-18 14:13:48 -07:00
|
|
|
two_days_ago = datetime.datetime.now() - datetime.timedelta(days=2)
|
|
|
|
thirty_days_ago = datetime.datetime.now() - datetime.timedelta(days=30)
|
2012-12-05 13:10:11 -08:00
|
|
|
expired_profiles = Profile.objects.filter(is_premium=True,
|
2015-05-18 14:13:48 -07:00
|
|
|
premium_expire__lte=two_days_ago,
|
|
|
|
premium_expire__gt=thirty_days_ago)
|
2012-12-05 13:10:11 -08:00
|
|
|
logging.debug(" ---> %s users have expired premiums, emailing grace..." % expired_profiles.count())
|
|
|
|
for profile in expired_profiles:
|
2015-05-18 14:13:48 -07:00
|
|
|
if profile.grace_period_email_sent():
|
|
|
|
continue
|
|
|
|
profile.setup_premium_history()
|
|
|
|
if profile.premium_expire < two_days_ago:
|
|
|
|
profile.send_premium_expire_grace_period_email()
|
2012-12-05 13:10:11 -08:00
|
|
|
|
|
|
|
# Get fully expired users
|
|
|
|
expired_profiles = Profile.objects.filter(is_premium=True,
|
|
|
|
premium_expire__lte=thirty_days_ago)
|
|
|
|
logging.debug(" ---> %s users have expired premiums, deactivating and emailing..." % expired_profiles.count())
|
|
|
|
for profile in expired_profiles:
|
2015-05-18 14:13:48 -07:00
|
|
|
profile.setup_premium_history()
|
|
|
|
if profile.premium_expire < thirty_days_ago:
|
|
|
|
profile.send_premium_expire_email()
|
|
|
|
profile.deactivate_premium()
|
2013-05-13 18:03:17 -07:00
|
|
|
|
2014-02-02 19:08:01 -08:00
|
|
|
|
2013-05-13 18:03:17 -07:00
|
|
|
class ActivateNextNewUser(Task):
|
|
|
|
name = 'activate-next-new-user'
|
|
|
|
|
|
|
|
def run(self):
|
|
|
|
RNewUserQueue.activate_next()
|
2014-01-21 13:34:53 -08:00
|
|
|
|
2014-02-02 19:08:01 -08:00
|
|
|
|
2014-01-21 13:34:53 -08:00
|
|
|
class CleanupUser(Task):
|
|
|
|
name = 'cleanup-user'
|
|
|
|
|
|
|
|
def run(self, user_id):
|
|
|
|
UserSubscription.trim_user_read_stories(user_id)
|
2014-10-09 16:10:12 -07:00
|
|
|
UserSubscription.verify_feeds_scheduled(user_id)
|
2015-07-28 18:46:37 -07:00
|
|
|
UserSubscription.refresh_stale_feeds(user_id)
|
2015-03-19 11:01:58 -07:00
|
|
|
|
|
|
|
try:
|
|
|
|
ss = MSocialServices.objects.get(user_id=user_id)
|
|
|
|
except MSocialServices.DoesNotExist:
|
|
|
|
logging.debug(" ---> ~FRCleaning up user, can't find social_services for user_id: ~SB%s" % user_id)
|
|
|
|
return
|
2014-10-16 17:14:26 -07:00
|
|
|
ss.sync_twitter_photo()
|
2014-02-02 19:08:01 -08:00
|
|
|
|