Class to use Pixelfed API
This commit is contained in:
parent
ae1eb8076e
commit
b5973e2a78
56
PixelfedAPI.py
Normal file
56
PixelfedAPI.py
Normal file
@ -0,0 +1,56 @@
|
||||
import os
|
||||
import json
|
||||
import requests
|
||||
|
||||
class PixelfedAPI:
|
||||
def __init__(self, url, token):
|
||||
self.serverurl = url
|
||||
self.accesstoken = token
|
||||
|
||||
def mediaUpload(self, image):
|
||||
serverurl = self.serverurl()
|
||||
apiurl = serverurl + "/api/v1/media"
|
||||
|
||||
accessToken = self.accesstoken()
|
||||
headers = {
|
||||
"Authorization": f"Bearer {accessToken}"
|
||||
}
|
||||
|
||||
try:
|
||||
with open(image, "rb") as imageFile:
|
||||
f = {"file": imageFile}
|
||||
response = requests.post(apiurl, headers=headers, files=f)
|
||||
try:
|
||||
data = response.json()
|
||||
return(data)
|
||||
except json.decoder.JSONDecodeError:
|
||||
print("API response contains non-valid JSON data")
|
||||
#print(response.text)
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"An error occurred during the API call: {e}")
|
||||
|
||||
def createNewPost(self, ImageID, ImageDescription, ImageAltDescription = ''):
|
||||
serverurl = self.serverurl()
|
||||
apiurl = serverurl + "/api/v1/statuses"
|
||||
|
||||
print(apiurl)
|
||||
|
||||
accessToken = self.accesstoken()
|
||||
headers = {
|
||||
"Authorization": f"Bearer {accessToken}"
|
||||
}
|
||||
data = {
|
||||
"status": ImageDescription,
|
||||
"media_ids": [ImageID],
|
||||
"alt": ImageAltDescription
|
||||
}
|
||||
try:
|
||||
response = requests.post(apiurl, headers=headers, json=data)
|
||||
try:
|
||||
responsedata = response.json()
|
||||
return(responsedata)
|
||||
except json.decoder.JSONDecodeError:
|
||||
print("API response contains non-valid JSON data")
|
||||
#print(response.text)
|
||||
except requests.exceptions.RequestException as e:
|
||||
print(f"An error occurred during the API call: {e}")
|
Loading…
Reference in New Issue
Block a user