diff --git a/sourcing/model.py b/sourcing/model.py index ac5bf17..d6b2820 100644 --- a/sourcing/model.py +++ b/sourcing/model.py @@ -240,13 +240,18 @@ span: {},start=0,length={}'''.format(self.external_url, title_source_doc.externa @classmethod def from_external(cls, url, home=None): base = current_app.config.get('BASE_URL') + username, hashid = None, None if home is None: home = url_for('view.home', _external=True) if url.startswith(home): username, _, hashid = url[len(home):].partition('/') elif base and url.startswith(base): username, _, hashid = url[len(base):].lstrip('/').partition('/') - else: + + if username and '/' in username or hashid and '/' in hashid: + username, hashid = None, None + + if not username or not hashid: m = re_server_url.match(url) if not m: return