diff --git a/data.c b/data.c index 73192ba..c2d69c8 100644 --- a/data.c +++ b/data.c @@ -591,7 +591,7 @@ int object_get_by_md5(const char *md5, xs_dict **obj) /* returns a stored object, optionally of the requested type */ { int status = 404; - xs *fn = _object_fn_by_md5(md5, "object_get_my_md5"); + xs *fn = _object_fn_by_md5(md5, "object_get_by_md5"); FILE *f; if ((f = fopen(fn, "r")) != NULL) { diff --git a/mastoapi.c b/mastoapi.c index e7d9b60..73b4d9f 100644 --- a/mastoapi.c +++ b/mastoapi.c @@ -662,7 +662,19 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg) st = xs_dict_append(st, "url", id); st = xs_dict_append(st, "created_at", xs_dict_get(msg, "published")); st = xs_dict_append(st, "account", acct); - st = xs_dict_append(st, "content", xs_dict_get(msg, "content")); + + { + const char *content = xs_dict_get(msg, "content"); + const char *name = xs_dict_get(msg, "name"); + xs *s1 = NULL; + + if (name) + s1 = xs_fmt("%s

%s", name, content); + else + s1 = xs_dup(content); + + st = xs_dict_append(st, "content", s1); + } st = xs_dict_append(st, "visibility", is_msg_public(msg) ? "public" : "private"); @@ -683,17 +695,34 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg) xs *matt = xs_list_new(); xs_list *att = xs_dict_get(msg, "attachment"); xs_str *aobj; + xs *attr_list = NULL; + if (xs_type(att) == XSTYPE_DICT) { + attr_list = xs_list_new(); + attr_list = xs_list_append(attr_list, att); + } + else + attr_list = xs_dup(att); + + /* if it has an image, add it as an attachment */ + xs_dict *image = xs_dict_get(msg, "image"); + if (!xs_is_null(image)) + attr_list = xs_list_append(attr_list, image); + + att = attr_list; while (xs_list_iter(&att, &aobj)) { const char *mtype = xs_dict_get(aobj, "mediaType"); + if (xs_is_null(mtype)) + mtype = xs_dict_get(aobj, "type"); if (!xs_is_null(mtype)) { - if (xs_startswith(mtype, "image/") || xs_startswith(mtype, "video/")) { + if (xs_startswith(mtype, "image/") || xs_startswith(mtype, "video/") || + strcmp(mtype, "Image") == 0) { xs *matteid = xs_fmt("%s_%d", id, xs_list_len(matt)); xs *matte = xs_dict_new(); matte = xs_dict_append(matte, "id", matteid); - matte = xs_dict_append(matte, "type", *mtype == 'i' ? "image" : "video"); + matte = xs_dict_append(matte, "type", *mtype == 'v' ? "video" : "image"); matte = xs_dict_append(matte, "url", xs_dict_get(aobj, "url")); matte = xs_dict_append(matte, "preview_url", xs_dict_get(aobj, "url")); matte = xs_dict_append(matte, "remote_url", xs_dict_get(aobj, "url"));