diff --git a/retribute_api/providers.py b/retribute_api/providers.py index ebb3069482483c4a087bca8e501de997da43d50a..61d1c213fb4d8f283cdfdca8751ef7a99bc3ead3 100644 --- a/retribute_api/providers.py +++ b/retribute_api/providers.py @@ -112,6 +112,15 @@ class OpenCollective(BasicUsernameInPathProvider): domain_regex = r"^(\w+\.)*opencollective\.com" +@registry.register +class Etsy(BasicUsernameInPathProvider): + id = "etsy" + label = "Etsy" + url = "https://etsy.com" + domain_regex = r"^(\w+\.)*etsy\.com" + username_regex = r"^\/[a-zA-Z-_]+/shop/([\w\.]+)/?$" + + @registry.register class BandCamp(BasicUsernameInDomainProvider): id = "bandcamp" diff --git a/tests/search/test_means.py b/tests/search/test_means.py index 0a3db70bbd8bff99a8a79b3e50262298656f3e29..fffa4f980ad05a657be5fdfd80a92f9fb0d454fc 100644 --- a/tests/search/test_means.py +++ b/tests/search/test_means.py @@ -13,6 +13,10 @@ from retribute_api.search import means ("https://paypal.me/username", {"provider": "paypal", "id": "username"}), ("https://www.paypal.me/username", {"provider": "paypal", "id": "username"}), ("https://fr.tipeee.com/username", {"provider": "tipeee", "id": "username"}), + ( + "https://www.etsy.com/fr_CA/shop/xxPETRICHORxx", + {"provider": "etsy", "id": "xxPETRICHORxx"}, + ), ("https://tipeee.com/username", {"provider": "tipeee", "id": "username"}), ( "https://custom.com/username?retribute",