diff --git a/emark/message.py b/emark/message.py index 1d261a3..07d08b3 100644 --- a/emark/message.py +++ b/emark/message.py @@ -115,11 +115,6 @@ def update_url_params(self, url, **params): if not self.uuid: return redirect_url site_url = self.get_site_url() - # external links should not be tracked - top_level_domain = utils.extract_domain(site_url) - - if not redirect_url_parts.netloc.endswith(top_level_domain): - return redirect_url tracking_url = reverse("emark:email-click", kwargs={"pk": self.uuid}) tracking_url = parse.urljoin(site_url, tracking_url) tracking_url_parts = parse.urlparse(tracking_url) diff --git a/emark/utils.py b/emark/utils.py index 60a6ba6..2fd8f91 100644 --- a/emark/utils.py +++ b/emark/utils.py @@ -6,10 +6,6 @@ __all__ = ["HTML2TextParser"] -from urllib import parse - -import tldextract - @dataclasses.dataclass class Node: @@ -126,25 +122,3 @@ def __str__(self) -> str: # sanitize all wide vertical or horizontal spaces text = self.DOUBLE_NEWLINE.sub("\n\n", text.strip()) return self.DOUBLE_SPACE.sub(" ", text) - - -def extract_domain(url: str) -> str: - """Extracts the registered domain from a given URL. - - If the domain is "localhost", it includes the port number in the returned string. - - Args: - url (str): The URL from which to extract the domain. - - Returns: - str: The registered domain or "localhost" with port if applicable. - """ - extractor = tldextract.TLDExtract(suffix_list_urls=()) - extracted = extractor(url) - if extracted.domain == "localhost": - registered_domain = "localhost" - else: - registered_domain = extracted.registered_domain - if port := parse.urlparse(url).port: - return f"{registered_domain}:{port}" - return registered_domain diff --git a/pyproject.toml b/pyproject.toml index a246542..8d4f0de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,7 +36,7 @@ classifiers = [ "Framework :: Django :: 5.0", ] requires-python = ">=3.10" -dependencies = ["django", "markdown", "premailer", "tldextract"] +dependencies = ["django", "markdown", "premailer"] [project.optional-dependencies] test = [ diff --git a/tests/test_utils.py b/tests/test_utils.py index 3760b1b..99076be 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -110,12 +110,3 @@ def test_parse_html_email(self): "--------------------------------------------------\n" "some footer" ) - - -def test_extract_domain(): - assert utils.extract_domain("https://example.com") == "example.com" - assert utils.extract_domain("https://www.example.com") == "example.com" - assert utils.extract_domain("https://www.example.co.uk") == "example.co.uk" - assert utils.extract_domain("https://www.example.com:1337") == "example.com:1337" - assert utils.extract_domain("https://localhost") == "localhost" - assert utils.extract_domain("https://localhost:8000") == "localhost:8000"