fix(chuffed): Support https://chuffed.org/pay/campaign/<id> campaign URL format

This commit is contained in:
Fabio Manganiello 2026-03-04 12:17:46 +01:00
commit 6272ffaf1a
Signed by: blacklight
GPG key ID: D90FBA7F76362774

View file

@ -192,12 +192,14 @@ class ChuffedCampaignSource(CampaignSource): # pylint: disable=too-few-public-m
@property @property
def url_pattern(self) -> re.Pattern: def url_pattern(self) -> re.Pattern:
return re.compile(r"^https://(www\.)?chuffed\.org/project/([a-zA-Z0-9\-]+)") return re.compile(
r"^https://(www\.)?chuffed\.org/(project|pay/campaign)/([a-zA-Z0-9\-]+)"
)
def parse_url(self, url: str) -> str | None: def parse_url(self, url: str) -> str | None:
match = self.url_pattern.match(url) match = self.url_pattern.match(url)
if match: if match:
return f"https://www.chuffed.org/project/{match.group(2)}" return f"https://www.chuffed.org/project/{match.group(3)}"
return None return None