diff options
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 37 |
1 files changed, 33 insertions, 4 deletions
| @@ -282,6 +282,8 @@ int user_open(snac *user, const char *uid) | |||
| 282 | } | 282 | } |
| 283 | else | 283 | else |
| 284 | srv_log(xs_fmt("error parsing '%s'", cfg_file)); | 284 | srv_log(xs_fmt("error parsing '%s'", cfg_file)); |
| 285 | |||
| 286 | user->tz = xs_dict_get_def(user->config, "tz", "UTC"); | ||
| 285 | } | 287 | } |
| 286 | else | 288 | else |
| 287 | srv_debug(2, xs_fmt("error opening '%s' %d", cfg_file, errno)); | 289 | srv_debug(2, xs_fmt("error opening '%s' %d", cfg_file, errno)); |
| @@ -2263,7 +2265,8 @@ xs_val *list_maint(snac *user, const char *list, int op) | |||
| 2263 | xs *l2 = xs_split(v2, "/"); | 2265 | xs *l2 = xs_split(v2, "/"); |
| 2264 | 2266 | ||
| 2265 | /* return [ list_id, list_title ] */ | 2267 | /* return [ list_id, list_title ] */ |
| 2266 | l = xs_list_append(l, xs_list_append(xs_list_new(), xs_list_get(l2, -1), title)); | 2268 | xs *tmp_list = xs_list_append(xs_list_new(), xs_list_get(l2, -1), title); |
| 2269 | l = xs_list_append(l, tmp_list); | ||
| 2267 | } | 2270 | } |
| 2268 | } | 2271 | } |
| 2269 | } | 2272 | } |
| @@ -2338,6 +2341,19 @@ xs_val *list_maint(snac *user, const char *list, int op) | |||
| 2338 | } | 2341 | } |
| 2339 | 2342 | ||
| 2340 | break; | 2343 | break; |
| 2344 | |||
| 2345 | case 4: /** find list id by name **/ | ||
| 2346 | if (xs_is_string(list)) { | ||
| 2347 | xs *lol = list_maint(user, NULL, 0); | ||
| 2348 | const xs_list *li; | ||
| 2349 | |||
| 2350 | xs_list_foreach(lol, li) { | ||
| 2351 | if (strcmp(list, xs_list_get(li, 1)) == 0) { | ||
| 2352 | l = xs_dup(xs_list_get(li, 0)); | ||
| 2353 | break; | ||
| 2354 | } | ||
| 2355 | } | ||
| 2356 | } | ||
| 2341 | } | 2357 | } |
| 2342 | 2358 | ||
| 2343 | return l; | 2359 | return l; |
| @@ -2389,7 +2405,7 @@ xs_val *list_content(snac *user, const char *list, const char *actor_md5, int op | |||
| 2389 | break; | 2405 | break; |
| 2390 | 2406 | ||
| 2391 | case 1: /** append actor to list **/ | 2407 | case 1: /** append actor to list **/ |
| 2392 | if (actor_md5 != NULL) { | 2408 | if (xs_is_string(actor_md5) && xs_is_hex(actor_md5)) { |
| 2393 | if (!index_in_md5(fn, actor_md5)) | 2409 | if (!index_in_md5(fn, actor_md5)) |
| 2394 | index_add_md5(fn, actor_md5); | 2410 | index_add_md5(fn, actor_md5); |
| 2395 | } | 2411 | } |
| @@ -2397,7 +2413,7 @@ xs_val *list_content(snac *user, const char *list, const char *actor_md5, int op | |||
| 2397 | break; | 2413 | break; |
| 2398 | 2414 | ||
| 2399 | case 2: /** delete actor from list **/ | 2415 | case 2: /** delete actor from list **/ |
| 2400 | if (actor_md5 != NULL) | 2416 | if (xs_is_string(actor_md5) && xs_is_hex(actor_md5)) |
| 2401 | index_del_md5(fn, actor_md5); | 2417 | index_del_md5(fn, actor_md5); |
| 2402 | 2418 | ||
| 2403 | break; | 2419 | break; |
| @@ -3341,7 +3357,7 @@ void enqueue_output_by_actor(snac *snac, const xs_dict *msg, | |||
| 3341 | } | 3357 | } |
| 3342 | 3358 | ||
| 3343 | 3359 | ||
| 3344 | void enqueue_email(const xs_str *msg, int retries) | 3360 | void enqueue_email(const xs_dict *msg, int retries) |
| 3345 | /* enqueues an email message to be sent */ | 3361 | /* enqueues an email message to be sent */ |
| 3346 | { | 3362 | { |
| 3347 | xs *qmsg = _new_qmsg("email", msg, retries); | 3363 | xs *qmsg = _new_qmsg("email", msg, retries); |
| @@ -3457,6 +3473,19 @@ void enqueue_actor_refresh(snac *user, const char *actor, int forward_secs) | |||
| 3457 | } | 3473 | } |
| 3458 | 3474 | ||
| 3459 | 3475 | ||
| 3476 | void enqueue_webmention(const xs_dict *msg) | ||
| 3477 | /* enqueues a webmention for the post */ | ||
| 3478 | { | ||
| 3479 | xs *qmsg = _new_qmsg("webmention", msg, 0); | ||
| 3480 | const char *ntid = xs_dict_get(qmsg, "ntid"); | ||
| 3481 | xs *fn = xs_fmt("%s/queue/%s.json", srv_basedir, ntid); | ||
| 3482 | |||
| 3483 | qmsg = _enqueue_put(fn, qmsg); | ||
| 3484 | |||
| 3485 | srv_debug(1, xs_fmt("enqueue_webmention")); | ||
| 3486 | } | ||
| 3487 | |||
| 3488 | |||
| 3460 | int was_question_voted(snac *user, const char *id) | 3489 | int was_question_voted(snac *user, const char *id) |
| 3461 | /* returns true if the user voted in this poll */ | 3490 | /* returns true if the user voted in this poll */ |
| 3462 | { | 3491 | { |