in onedrive/onedrive.py [0:0]
def get_onedrive_embed_code(self, onedrive_url):
onedrive_url = onedrive_url.strip()
# check if it already is an embed code
embed_code_regex = '<iframe'
matched = re.match(embed_code_regex, onedrive_url, re.IGNORECASE)
if matched is not None:
return onedrive_url
scheme, netloc, path, query_string, fragment = urlsplit(onedrive_url)
query_params = parse_qs(query_string)
# OneDrive for Business
odb_regex = 'https?:\/\/((\w|-)+)-my.sharepoint.com\/'
matched = re.match(odb_regex, onedrive_url, re.IGNORECASE)
if matched is not None:
query_params['action'] = ['embedview']
new_query_string = urlencode(query_params, doseq=True)
document_url = urlunsplit((scheme, netloc, path, new_query_string, fragment))
return self.EMBED_CODE_TEMPLATE.format(document_url)
# OneDrive (for consumers)
onedrive_regex = '(https?:\/\/(onedrive\.)?)(live\.com)'
matched = re.match(onedrive_regex, onedrive_url, re.IGNORECASE)
if matched is not None:
new_path = path.replace('view.aspx', 'embed').replace('redir', 'embed')
query_params = parse_qs(query_string)
query_params['em'] = ['2']
new_query_string = urlencode(query_params, doseq=True)
document_url = urlunsplit((scheme, netloc, new_path, new_query_string, fragment))
return self.EMBED_CODE_TEMPLATE.format(document_url)