NewsBlur/apps/reader/tasks.py
2024-04-24 09:50:42 -04:00

47 lines
1.6 KiB
Python

import datetime
from django.conf import settings
from django.contrib.auth.models import User
from apps.reader.models import UserSubscription
from apps.social.models import MSocialSubscription
from newsblur_web.celeryapp import app
from utils import log as logging
@app.task(name="freshen-homepage")
def FreshenHomepage():
day_ago = datetime.datetime.utcnow() - datetime.timedelta(days=1)
user = User.objects.get(username=settings.HOMEPAGE_USERNAME)
user.profile.last_seen_on = datetime.datetime.utcnow()
user.profile.save()
usersubs = UserSubscription.objects.filter(user=user)
logging.debug(" ---> %s has %s feeds, freshening..." % (user.username, usersubs.count()))
for sub in usersubs:
sub.mark_read_date = day_ago
sub.needs_unread_recalc = True
sub.save()
sub.calculate_feed_scores(silent=True)
socialsubs = MSocialSubscription.objects.filter(user_id=user.pk)
logging.debug(" ---> %s has %s socialsubs, freshening..." % (user.username, socialsubs.count()))
for sub in socialsubs:
sub.mark_read_date = day_ago
sub.needs_unread_recalc = True
sub.save()
sub.calculate_feed_scores(silent=True)
@app.task(name="clean-analytics", time_limit=720 * 10)
def CleanAnalytics():
logging.debug(
" ---> Cleaning analytics... %s feed fetches"
% (settings.MONGOANALYTICSDB.nbanalytics.feed_fetches.count(),)
)
day_ago = datetime.datetime.utcnow() - datetime.timedelta(days=1)
settings.MONGOANALYTICSDB.nbanalytics.feed_fetches.delete_many(
{
"date": {"$lt": day_ago},
}
)