40 lines
1.6 KiB
Python
40 lines
1.6 KiB
Python
from datetime import datetime, timedelta, timezone
|
|
|
|
from SubscribesApp.models import SubscribeForUser
|
|
from TWB import settings
|
|
from TWB.celery import app
|
|
from django.core.mail import send_mail
|
|
|
|
|
|
@app.task
|
|
def check_auto_subscribe():
|
|
current_time = datetime.now()
|
|
subscribes = SubscribeForUser.objects.filter(auto_continue=True)
|
|
if subscribes:
|
|
for subscribe in subscribes:
|
|
if subscribe.paid_period_to_DT and subscribe.paid_period_to_DT <= current_time + timedelta(hours=1):
|
|
user_email = subscribe.user.email
|
|
subject = 'Подписка продлена!'
|
|
message = 'Ваша подписка успешно продлена!'
|
|
send_mail(subject, message, settings.EMAIL_HOST_USER, [user_email], fail_silently=False)
|
|
else:
|
|
print('Нету подписок')
|
|
|
|
|
|
@app.task
|
|
def subscription_expiration_check():
|
|
current_time = datetime.now()
|
|
subscribes = SubscribeForUser.objects.filter(paid_period_to_DT__gte=current_time)
|
|
|
|
for subscribe in subscribes:
|
|
expiration_date = subscribe.paid_period_to_DT
|
|
remaining_days = (expiration_date - current_time).days
|
|
|
|
if remaining_days <= 7:
|
|
message = f'Ваша подписка заканчивается через {remaining_days} дня. Пожалуйста, продлите её.'
|
|
|
|
user_email = subscribe.user.email
|
|
subject = 'Подписка истекает!'
|
|
send_mail(subject, message, settings.EMAIL_HOST_USER, [user_email], fail_silently=False)
|
|
else:
|
|
print('Нету подписок') |