From 23be00ad8d10f0d83841841efe142dba3689013c Mon Sep 17 00:00:00 2001 From: James Ravenscroft Date: Fri, 24 Dec 2021 17:03:24 +0000 Subject: [PATCH] add support for various reference type posts e.g. likes, bookmarks etc --- example.py | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/example.py b/example.py index 8caa52b..22977be 100644 --- a/example.py +++ b/example.py @@ -27,6 +27,14 @@ app.config['SECRET_KEY'] = 'my super secret key' micropub = MicropubClient(app, client_id='https://brainsteam.co.uk') +ENTITY_TYPE_PLURAL_MAP = { + "post": "posts", + "note": "notes", + "reply": "replies", + "bookmark": "bookmarks" +} + + def authed_endpoint(f): @functools.wraps(f) def wrapper(*args, **kwargs): @@ -129,7 +137,22 @@ def req(): doc = request.form.to_dict(flat=True) - if 'name' in doc: + + if 'in-reply-to' in doc: + entry_type = "reply" + + elif 'bookmark-of' in doc: + entry_type = "bookmark" + elif 'repost-of' in doc: + entry_type = "repost" + elif 'like-of' in doc: + entry_type = "like" + + + # elif ('photo' in doc) or ('photo' in request.files) or ('photo[]' in request.files): + # entry_type = "photo" + + elif 'name' in doc: entry_type = "post" else: entry_type = "note" @@ -137,7 +160,7 @@ def req(): now = datetime.now() now_ts = int(time.mktime(now.timetuple())) - url = os.path.join("/", entry_type + "s", + url = os.path.join("/", ENTITY_TYPE_PLURAL_MAP.get(entry_type, entry_type + "s"), now.strftime("%Y/%m/%d"), str(now_ts)) if 'name' in doc: @@ -146,7 +169,7 @@ def req(): slug = str(now_ts) file_path = os.path.join(os.environ.get( - 'CONTENT_PREFIX'), entry_type + "s", now.strftime("%Y/%m/%d"), slug + ".md") + 'CONTENT_PREFIX'), ENTITY_TYPE_PLURAL_MAP.get(entry_type, entry_type + "s"), now.strftime("%Y/%m/%d"), slug + ".md") frontmatter = { "url": url, @@ -154,6 +177,10 @@ def req(): "date": now.isoformat(sep='T'), } + for key in ['bookmark-of', 'in-reply-to', 'repost-of', 'like-of']: + if key in doc: + frontmatter[key] = doc[key] + if 'category' in doc: categories = [doc['category']] else: @@ -225,8 +252,6 @@ def parse_categories(): def generate_config_json(): - - return { "media-endpoint": request.base_url + "media", "syndicate-to": [