mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-22 13:25:04 +00:00
Don't generate invalid JSON if an attachment has no description.
This commit is contained in:
parent
aa86357237
commit
885031bed9
3 changed files with 22 additions and 5 deletions
10
data.c
10
data.c
|
@ -1971,7 +1971,7 @@ void srv_archive(const char *direction, const char *url, xs_dict *req,
|
||||||
|
|
||||||
|
|
||||||
void srv_archive_error(const char *prefix, const xs_str *err,
|
void srv_archive_error(const char *prefix, const xs_str *err,
|
||||||
const xs_dict *req, const xs_dict *data)
|
const xs_dict *req, const xs_val *data)
|
||||||
/* archives an error */
|
/* archives an error */
|
||||||
{
|
{
|
||||||
xs *ntid = tid(0);
|
xs *ntid = tid(0);
|
||||||
|
@ -1993,8 +1993,12 @@ void srv_archive_error(const char *prefix, const xs_str *err,
|
||||||
if (data) {
|
if (data) {
|
||||||
fprintf(f, "Data:\n");
|
fprintf(f, "Data:\n");
|
||||||
|
|
||||||
xs *j = xs_json_dumps_pp(data, 4);
|
if (xs_type(data) == XSTYPE_LIST || xs_type(data) == XSTYPE_DICT) {
|
||||||
fwrite(j, strlen(j), 1, f);
|
xs *j = xs_json_dumps_pp(data, 4);
|
||||||
|
fwrite(j, strlen(j), 1, f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fprintf(f, "%s", data);
|
||||||
|
|
||||||
fprintf(f, "\n");
|
fprintf(f, "\n");
|
||||||
}
|
}
|
||||||
|
|
15
mastoapi.c
15
mastoapi.c
|
@ -506,7 +506,12 @@ xs_dict *mastoapi_status(snac *snac, const xs_dict *msg)
|
||||||
matte = xs_dict_append(matte, "url", xs_dict_get(aobj, "url"));
|
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, "preview_url", xs_dict_get(aobj, "url"));
|
||||||
matte = xs_dict_append(matte, "remote_url", xs_dict_get(aobj, "url"));
|
matte = xs_dict_append(matte, "remote_url", xs_dict_get(aobj, "url"));
|
||||||
matte = xs_dict_append(matte, "description", xs_dict_get(aobj, "name"));
|
|
||||||
|
const char *name = xs_dict_get(aobj, "name");
|
||||||
|
if (xs_is_null(name))
|
||||||
|
name = "";
|
||||||
|
|
||||||
|
matte = xs_dict_append(matte, "description", name);
|
||||||
|
|
||||||
matt = xs_list_append(matt, matte);
|
matt = xs_list_append(matt, matte);
|
||||||
}
|
}
|
||||||
|
@ -730,6 +735,14 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
|
||||||
*ctype = "application/json";
|
*ctype = "application/json";
|
||||||
status = 200;
|
status = 200;
|
||||||
|
|
||||||
|
{
|
||||||
|
xs *j = xs_json_loads(*body);
|
||||||
|
if (j == NULL) {
|
||||||
|
srv_debug(0, xs_fmt("mastoapi timeline: bad JSON"));
|
||||||
|
srv_archive_error("mastoapi_timeline", "bad JSON", req, *body);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
srv_debug(0, xs_fmt("mastoapi timeline: returned %d entries", xs_list_len(out)));
|
srv_debug(0, xs_fmt("mastoapi timeline: returned %d entries", xs_list_len(out)));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
2
snac.h
2
snac.h
|
@ -56,7 +56,7 @@ void srv_archive(const char *direction, const char *url, xs_dict *req,
|
||||||
int status, xs_dict *headers,
|
int status, xs_dict *headers,
|
||||||
const char *body, int b_size);
|
const char *body, int b_size);
|
||||||
void srv_archive_error(const char *prefix, const xs_str *err,
|
void srv_archive_error(const char *prefix, const xs_str *err,
|
||||||
const xs_dict *req, const xs_dict *data);
|
const xs_dict *req, const xs_val *data);
|
||||||
|
|
||||||
double mtime_nl(const char *fn, int *n_link);
|
double mtime_nl(const char *fn, int *n_link);
|
||||||
#define mtime(fn) mtime_nl(fn, NULL)
|
#define mtime(fn) mtime_nl(fn, NULL)
|
||||||
|
|
Loading…
Reference in a new issue