Web.load: support domain ids, convert to homepage URLs

pull/923/head
Ryan Barrett 2024-03-12 21:09:34 -07:00
rodzic be56539eb2
commit 7e7556bb02
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
3 zmienionych plików z 18 dodań i 2 usunięć

Wyświetl plik

@ -2158,8 +2158,10 @@ class ActivityPubUtilsTest(TestCase):
def test_convert_actor_as2(self):
self.assert_equals(ACTOR, ActivityPub.convert(Object(as2=ACTOR)))
@patch('requests.get', return_value=requests_response(test_web.ACTOR_HTML))
def test_convert_actor_as1_from_user(self, _):
@patch('requests.get')
def test_convert_actor_as1_from_user(self, mock_get):
mock_get.return_value = requests_response(test_web.ACTOR_HTML)
obj = Object(our_as1={
'objectType': 'person',
'id': 'https://user.com/',

Wyświetl plik

@ -2664,6 +2664,12 @@ class WebUtilTest(TestCase):
}, obj.mf2)
self.assert_equals(ACTOR_AS1_UNWRAPPED_URLS, obj.as1)
def test_load_user_domain(self, mock_get, __):
loaded = Web.load('user.com')
self.assert_entities_equal(loaded, self.user.obj)
self.assertFalse(loaded.changed)
self.assertFalse(loaded.new)
def test_fetch_user_homepage_metaformats(self, mock_get, __):
mock_get.return_value = requests_response(
ACTOR_HTML_METAFORMATS, url='https://user.com/')

8
web.py
Wyświetl plik

@ -401,6 +401,14 @@ class Web(User, Protocol):
webmention.send(endpoint, source_url, url)
return True
@classmethod
def load(cls, id, **kwargs):
"""Wrap :meth:`Protocol.load` to convert domains to homepage URLs."""
if re.match(DOMAIN_RE, id):
id = f'https://{id}/'
return super().load(id, **kwargs)
@classmethod
def fetch(cls, obj, gateway=False, check_backlink=False, **kwargs):
"""Fetches a URL over HTTP and extracts its microformats2.