diff --git a/app/listmonk/utils.py b/app/listmonk/utils.py index 9d71547..401debc 100644 --- a/app/listmonk/utils.py +++ b/app/listmonk/utils.py @@ -57,16 +57,12 @@ def email2name(email): name = " ".join([part.capitalize() for part in name.split(" ")]) return name -def is_subscribed(email): - url = settings.LISTMONK_API + 'subscribers' - auth = (settings.LISTMONK_USER, settings.LISTMONK_PASSWORD) - exists = url + '?' + "list_id=&query=email='%s'&page=1&order_by=id&order=desc" % email - return bool(len(requests.get(exists, auth=auth).json()['data']['results'])) def add_email(email): url = settings.LISTMONK_API + 'subscribers' auth = (settings.LISTMONK_USER, settings.LISTMONK_PASSWORD) - if not is_subscribed(email): + exists = url + '?' + "list_id=&query=email='%s'&page=1&order_by=id&order=desc" % email + if not len(requests.get(exists, auth=auth).json()['data']['results']): data = { "email": email, "name": email2name(email), diff --git a/app/listmonk/views.py b/app/listmonk/views.py index 767e84a..1fee8a9 100644 --- a/app/listmonk/views.py +++ b/app/listmonk/views.py @@ -1,26 +1,13 @@ -import json - -from brake.decorators import ratelimit - from django.conf import settings -from django.contrib.auth import get_user_model from django.db.models.functions import ExtractWeek, ExtractYear -from django.shortcuts import redirect, render +from django.shortcuts import render from django.template.loader import render_to_string from django.utils import timezone from django.utils.timezone import datetime, timedelta -from django.core.validators import validate_email -import django.contrib.auth + from ..item import models from ..item.views import get_weeks, format_week, get_monday, get_byline -from ..item.utils import render_to_json -from ..utils import default_context - -from . import utils - - -User = get_user_model() def week(year, month, day): @@ -45,40 +32,3 @@ def week(year, month, day): context['week_link'] = settings.URL + '/_' + monday context['items'] = archive_week return render_to_string("weekly_email.html", context) - - -@ratelimit(method="POST", block=True, rate="5/m") -def subscribe(request): - context = default_context(request) - response = {} - request_type = 'json' - if request.method == "POST": - if "email" in request.POST: - data = request.POST - request_type = 'html' - else: - data = json.loads(request.body) - if not response: - try: - validate_email(data["email"]) - except ValidationError as e: - response['error'] = 'please enter a valid email address.' - else: - try: - if utils.is_subscribed(data["email"]): - pass - elif not utils.add_email(data["email"]): - response['error'] = 'failed to add email to weekly digest.' - except: - response['error'] = 'failed to add your email, please try again later.' - - if request_type == 'html': - if 'error' in response: - context['error'] = response['error'] - return render(request, 'subscribe.html', context) - else: - context["subscribed"] = True - return render(request, 'subscribe.html', context) - return render_to_json(response) - else: - return render(request, 'subscribe.html', context) diff --git a/app/static/css/site.scss b/app/static/css/site.scss index c40fecc..86bde26 100644 --- a/app/static/css/site.scss +++ b/app/static/css/site.scss @@ -250,7 +250,7 @@ nav.overlay { } -.login, .register, .subscribe, .digest{ +.login, .register { margin-top: 16px; margin-left: 24px; textarea, @@ -276,9 +276,6 @@ nav.overlay { border: solid 1px lightgreen; cursor: pointer; } - .error { - color: red; - } } .content { diff --git a/app/static/js/VideoPlayer.js b/app/static/js/VideoPlayer.js index f478a53..8e095c9 100644 --- a/app/static/js/VideoPlayer.js +++ b/app/static/js/VideoPlayer.js @@ -74,7 +74,6 @@ window.VideoPlayer = function(options) { height: 32px; } .mx-controls .controls .position { - cursor: pointer; flex: 1; } .mx-controls .toggle svg { diff --git a/app/templates/base.html b/app/templates/base.html index 9d4dcaa..5798d81 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -39,9 +39,6 @@