92 lines
2.0 KiB
Python
92 lines
2.0 KiB
Python
import base64
|
|
import os
|
|
|
|
import requests, json
|
|
|
|
wp_url = "http://192.168.81.231/wp-json/wp/v2/"
|
|
|
|
user = "api"
|
|
passwd = "JBu7 Q2oZ rDze okev nhHo jXHM"
|
|
|
|
get = "get"
|
|
post = "post"
|
|
|
|
|
|
def req(method="get", path="", params=None):
|
|
if params is None:
|
|
params = {}
|
|
url = wp_url + path
|
|
|
|
if method == "get":
|
|
response = requests.get(url, params=params, auth=(user, passwd))
|
|
|
|
elif method == "post":
|
|
response = requests.post(url, data=params, auth=(user, passwd))
|
|
|
|
else:
|
|
raise Exception("method error")
|
|
|
|
return response.json()
|
|
|
|
|
|
def get_posts():
|
|
params = {
|
|
"per_page": 100
|
|
}
|
|
return req(get, "posts", params)
|
|
|
|
|
|
# 发布
|
|
def post_post(title, content, featured_media=None):
|
|
data = {
|
|
"title": title,
|
|
"content": content,
|
|
"status": "publish"
|
|
}
|
|
|
|
if featured_media:
|
|
data["featured_media"] = featured_media
|
|
|
|
return req(post, "posts", data)
|
|
|
|
|
|
def upload_media(filepath):
|
|
data = open(filepath, 'rb').read()
|
|
filename = os.path.basename(filepath)
|
|
|
|
# get content type
|
|
import mimetypes
|
|
mime_type = mimetypes.guess_type(filename)[0]
|
|
if mime_type is None:
|
|
mime_type = 'image/jpg'
|
|
|
|
res = requests.post(url=wp_url + 'media',
|
|
data=data,
|
|
headers={'Content-Type': mime_type,
|
|
'Content-Disposition': 'attachment; filename=%s' % filename},
|
|
auth=(user, passwd))
|
|
# pp = pprint.PrettyPrinter(indent=4) ## print it pretty.
|
|
# pp.pprint(res.json()) #this is nice when you need it
|
|
new_dict = res.json()
|
|
new_id = new_dict.get('id')
|
|
# link = new_dict.get('guid').get("rendered")
|
|
return new_id
|
|
|
|
|
|
def get_post_url(post_id):
|
|
# get rendered url
|
|
res = req(get, "posts/" + str(post_id))
|
|
|
|
print(res)
|
|
return res['link']
|
|
|
|
|
|
def get_media_url(media_id):
|
|
# get rendered url
|
|
res = req(get, "media/" + str(media_id))
|
|
|
|
# if exists
|
|
if res['guid']['rendered']:
|
|
return res['guid']['rendered']
|
|
|
|
return None |