@@ -11,16 +11,17 @@ class WebmentionSend():
1111 LINK_HEADER_RE = re .compile (
1212 r'''<([^>]+)>; rel=["'](http://)?webmention(\.org/?)?["']''' )
1313
14- def __init__ (self , source , target ):
14+ def __init__ (self , source , target , endpoint = None ):
1515 self .source_url = source
1616 self .target_url = target
17- self .receiver_endpoint = None
17+ self .receiver_endpoint = endpoint
1818
1919 def send (self , ** kwargs ):
2020 self .error = None
2121 self .requests_kwargs = kwargs
22- r = self ._discoverEndpoint ()
23- if not r :
22+ if not self .receiver_endpoint :
23+ self ._discoverEndpoint ()
24+ if not self .receiver_endpoint :
2425 return False
2526 return self ._notifyReceiver ()
2627
@@ -33,7 +34,7 @@ def _discoverEndpoint(self):
3334 'request' : 'GET %s' % self .target_url ,
3435 'http_status' : r .status_code ,
3536 }
36- return False
37+ return
3738
3839 # look in the headers
3940 # XXX: it looks like requests doesn't handle multiple headers with the
@@ -43,7 +44,7 @@ def _discoverEndpoint(self):
4344 match = self .LINK_HEADER_RE .search (link )
4445 if match :
4546 self .receiver_endpoint = match .group (1 )
46- return True
47+ return
4748
4849 # look in the content
4950 html = r .text
@@ -56,13 +57,11 @@ def _discoverEndpoint(self):
5657 if tag and tag ['href' ]:
5758 # add the base scheme and host to relative endpoints
5859 self .receiver_endpoint = urlparse .urljoin (self .target_url , tag ['href' ])
59- return True
6060 else :
6161 self .error = {
6262 'code' : 'NO_ENDPOINT' ,
6363 'error_description' : 'Unable to discover webmention endpoint.'
6464 }
65- return False
6665
6766 def _notifyReceiver (self ):
6867 payload = {'source' : self .source_url , 'target' : self .target_url }
0 commit comments