def check_for_sending(request): """ TODO: UT needed.""" one_week_ago = now() - datetime.timedelta(days=7) news_list = HackerNews.objects.filter(added__gt=one_week_ago, sent=False) count_file = 0 count_email = 0 for news in news_list: sr_list = SendRecord.objects.filter(news=news, sent=False)[:EMAIL_COUNT_LIMIT] if len(sr_list) == 0: news.sent = True news.save() continue receivers = [x.email for x in sr_list] try: send_files_to([news.file_path], receivers, subject=news.title) count_file += 1 count_email += len(receivers) except Exception, e: info = ("send mail failed. Exception: %s File: %s" % (e, news.file_path)) logger.error(info) else: for sr in sr_list: sr.sent = True sr.save() time.sleep(0.3)
def weekly_sending(request): info = "" date_now = now() week_number = date_now.isocalendar()[1] - 1 try: weekly = Weekly.objects.get(week_number=week_number) except Weekly.DoesNotExist: info = "This Weekly Does not exist" return HttpResponse(info + "\n") if not weekly.file_path: info = "No file for this Weekly" return HttpResponse(info + "\n") receivers = WeeklySendRecord.objects.filter(weekly=weekly, sent=False)[:EMAIL_COUNT_LIMIT] emails = [x.email for x in receivers] if len(emails) == 0: info = "Weekly sent complete." return HttpResponse(info + "\n") try: subject = "Hacker News Weekly %s" % week_number send_files_to([weekly.file_path], emails, subject=subject) for item in receivers: item.sent = True item.save() except Exception, e: info = "send weekly mail failed. Exception: %s Emails: %s" % (e, emails) logger.error(info)