aboutsummaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2025-04-01 06:14:46 +0200
committerdefault <nobody@localhost>2025-04-01 06:14:46 +0200
commit5090e4e77489d7e4e2d358c417c83be8f76307cb (patch)
tree99ac992b7388e4562e44661e4d9f8cc2e84e1613 /data.c
parent1e21c2271e0ae55dbe69ce9ff033589a239a3f95 (diff)
Added more scheduling code.
Diffstat (limited to 'data.c')
-rw-r--r--data.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/data.c b/data.c
index a192830..8f68ee2 100644
--- a/data.c
+++ b/data.c
@@ -1929,6 +1929,43 @@ xs_list *draft_list(snac *user)
}
+/** scheduled posts **/
+
+int is_scheduled(snac *user, const char *id)
+/* returns true if this note is scheduled for future sending */
+{
+ return object_user_cache_in(user, id, "sched");
+}
+
+
+void schedule_del(snac *user, const char *id)
+/* deletes an scheduled post */
+{
+ object_user_cache_del(user, id, "sched");
+}
+
+
+void schedule_add(snac *user, const char *id, const xs_dict *msg)
+/* schedules this post for later */
+{
+ /* delete from the index, in case it was already there */
+ schedule_del(user, id);
+
+ /* overwrite object */
+ object_add_ow(id, msg);
+
+ /* [re]add to the index */
+ object_user_cache_add(user, id, "sched");
+}
+
+
+xs_list *scheduled_list(snac *user)
+/* return the list of scheduled posts */
+{
+ return object_user_cache_list(user, "sched", XS_ALL, 1);
+}
+
+
/** hiding **/
xs_str *_hidden_fn(snac *snac, const char *id)