summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'data.c')
-rw-r--r--data.c37
1 files changed, 33 insertions, 4 deletions
diff --git a/data.c b/data.c
index 6661472..73332ef 100644
--- a/data.c
+++ b/data.c
@@ -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
3344void enqueue_email(const xs_str *msg, int retries) 3360void 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
3476void 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
3460int was_question_voted(snac *user, const char *id) 3489int 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{