49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
import base64
|
|
import json
|
|
import requests
|
|
|
|
|
|
def get_auth_header(token_id, token_secret):
|
|
return {"Authorization": "Token {}:{}".format(token_id, token_secret)}
|
|
|
|
|
|
def get_page_export_html(page_id, wiki_url, token_id, token_secret):
|
|
headers = {}
|
|
headers.update(get_auth_header(token_id, token_secret))
|
|
|
|
r = requests.get(wiki_url + "/api/pages/{}/export/html".format(page_id), headers=headers)
|
|
|
|
return r.text
|
|
|
|
|
|
def get_attachments(wiki_url, token_id, token_secret):
|
|
headers = {}
|
|
headers.update(get_auth_header(token_id, token_secret))
|
|
|
|
r = requests.get(wiki_url + "/api/attachments/", headers=headers)
|
|
|
|
attachment_data = json.loads(r.text)['data']
|
|
|
|
return attachment_data
|
|
|
|
|
|
def get_attachment_id(attachment_name, page_id, wiki_url, token_id, token_secret):
|
|
attachment_data = get_attachments(wiki_url, token_id, token_secret)
|
|
|
|
for attachment in attachment_data:
|
|
if attachment['name'] == attachment_name and attachment['uploaded_to'] == page_id:
|
|
return attachment['id']
|
|
|
|
return None
|
|
|
|
|
|
def get_attachment_contents(attachment_id, wiki_url, token_id, token_secret):
|
|
headers = {}
|
|
headers.update(get_auth_header(token_id, token_secret))
|
|
|
|
r = requests.get(wiki_url + "/api/attachments/{}".format(attachment_id), headers=headers)
|
|
attachment_data_encoded = json.loads(r.text)['content']
|
|
attachment_data_decoded = base64.b64decode(attachment_data_encoded)
|
|
|
|
return attachment_data_decoded
|