Allow auto tagging rules to match URL fragments (#1045)

This commit is contained in:
Sascha Ißbrücker
2025-04-13 09:43:11 +02:00
committed by GitHub
parent 8928c78530
commit 1b0684bd6c
3 changed files with 66 additions and 5 deletions

View File

@@ -11,10 +11,18 @@ def get_tags(script: str, url: str):
return result
for line in script.lower().split("\n"):
if "#" in line:
i = line.index("#")
line = line[:i]
line = line.strip()
# Skip empty lines or lines that start with a comment
if not line or line.startswith("#"):
continue
# Remove trailing comment - only if # is preceded by whitespace
comment_match = re.search(r"\s+#", line)
if comment_match:
line = line[: comment_match.start()]
# Ignore lines that don't contain a URL and a tag
parts = line.split()
if len(parts) < 2:
continue
@@ -36,6 +44,11 @@ def get_tags(script: str, url: str):
):
continue
if parsed_pattern.fragment and not _fragment_matches(
parsed_pattern.fragment, parsed_url.fragment
):
continue
for tag in parts[1:]:
result.add(tag)
@@ -65,3 +78,7 @@ def _qs_matches(expected_qs: str, actual_qs: str) -> bool:
return False
return True
def _fragment_matches(expected_fragment: str, actual_fragment: str) -> bool:
return actual_fragment.startswith(expected_fragment)