From 9d7659ef40aa96dec0c8a18814346506c322cf78 Mon Sep 17 00:00:00 2001 From: j Date: Sun, 23 Feb 2025 11:32:02 -0500 Subject: [PATCH 1/2] fix send_week --- app/listmonk/utils.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/listmonk/utils.py b/app/listmonk/utils.py index 001fa5a..657c04d 100644 --- a/app/listmonk/utils.py +++ b/app/listmonk/utils.py @@ -23,7 +23,8 @@ def get_auth(headers): def send_week(monday): from . import views - monday = views.get_monday(monday) + date = datetime.strptime(date, '%Y-%m-%d') + monday = views.get_monday(date) year, month, day = monday.split('-') body = views.week(year, month, day) name = 'weekly-digest-%s' % monday From 6faa6f502b39377ea8f85a7fca52492f3618c5c5 Mon Sep 17 00:00:00 2001 From: j Date: Sun, 23 Feb 2025 11:47:20 -0500 Subject: [PATCH 2/2] weeks --- app/item/views.py | 5 +++-- app/listmonk/views.py | 2 +- requirements.txt | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/item/views.py b/app/item/views.py index a65ccf7..8452429 100644 --- a/app/item/views.py +++ b/app/item/views.py @@ -2,6 +2,7 @@ import json import xml.etree.ElementTree as ET import ox +import isoweek from django.utils import timezone from django.utils.timezone import datetime, timedelta @@ -49,7 +50,7 @@ def get_byline(week): def get_weeks(archive): weeks = sorted(set(archive.values_list('year', 'week'))) - weeks = [datetime.strptime('%s-W%s-1' % w, "%Y-W%U-%w").strftime('%Y-%m-%d') for w in weeks] + weeks = [isoweek.Week(*w).monday().strftime('%Y-%m-%d') for w in weeks] weeks = [{ 'date': week, 'year': week.split('-')[0], @@ -89,7 +90,7 @@ def archive(request, year=None, month=None, day=None, week=None): archive = models.Item.all_public() if year and month and day: date = datetime.strptime('%s-%s-%s' % (year, month, day), '%Y-%m-%d') - week = int(date.strftime('%U')) + week = date.isocalendar()[1] year = int(year) archive_week = archive.filter(year=year, week=week).order_by('published') years = {} diff --git a/app/listmonk/views.py b/app/listmonk/views.py index 2aa4c80..de71841 100644 --- a/app/listmonk/views.py +++ b/app/listmonk/views.py @@ -34,7 +34,7 @@ def week(year, month, day): week=ExtractWeek('published') ) date = datetime.strptime('%s-%s-%s' % (year, month, day), '%Y-%m-%d') - week = int(date.strftime('%U')) + week = date.isocalendar()[1] year = int(year) archive_week = archive.filter(year=year, week=week).order_by('published') context['weeks'] = get_weeks(archive) diff --git a/requirements.txt b/requirements.txt index e80dfb9..ce76fb5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,3 +15,4 @@ redis django-brake python-telegram-bot ox +isoweek