summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authorGravatar default2023-06-28 20:52:09 +0200
committerGravatar default2023-06-28 20:52:09 +0200
commitaf180685bdb430e90e3c4057c87595520ee385b4 (patch)
tree65db25c5b4d5f273224a61109e18554ede0997d2 /data.c
parentAlso purge pinned.idx. (diff)
downloadsnac2-af180685bdb430e90e3c4057c87595520ee385b4.tar.gz
snac2-af180685bdb430e90e3c4057c87595520ee385b4.tar.xz
snac2-af180685bdb430e90e3c4057c87595520ee385b4.zip
Added some error control to pinning.
Diffstat (limited to 'data.c')
-rw-r--r--data.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/data.c b/data.c
index 6436862..e3275cb 100644
--- a/data.c
+++ b/data.c
@@ -1352,7 +1352,7 @@ int is_muted(snac *snac, const char *actor)
1352xs_str *_pinned_fn(snac *user, const char *id) 1352xs_str *_pinned_fn(snac *user, const char *id)
1353{ 1353{
1354 xs *md5 = xs_md5_hex(id, strlen(id)); 1354 xs *md5 = xs_md5_hex(id, strlen(id));
1355 return xs_fmt("%s/pinned/%s", user->basedir, md5); 1355 return xs_fmt("%s/pinned/%s.json", user->basedir, md5);
1356} 1356}
1357 1357
1358 1358
@@ -1367,26 +1367,28 @@ int is_pinned(snac *user, const char *id)
1367int pin(snac *user, const char *id) 1367int pin(snac *user, const char *id)
1368/* pins a message */ 1368/* pins a message */
1369{ 1369{
1370 int ret = 0; 1370 int ret = -2;
1371 1371
1372 if (xs_startswith(id, user->actor)) { 1372 if (xs_startswith(id, user->actor)) {
1373 /* create the subfolder, if it does not exist */ 1373 if (is_pinned(user, id))
1374 xs *fn = xs_fmt("%s/pinned/", user->basedir); 1374 ret = -3;
1375 mkdirx(fn); 1375 else {
1376 1376 /* create the subfolder, if it does not exist */
1377 object_user_cache_add(user, id, "pinned"); 1377 xs *fn = xs_fmt("%s/pinned/", user->basedir);
1378 mkdirx(fn);
1378 1379
1379 ret = 1; 1380 ret = object_user_cache_add(user, id, "pinned");
1381 }
1380 } 1382 }
1381 1383
1382 return ret; 1384 return ret;
1383} 1385}
1384 1386
1385 1387
1386void unpin(snac *user, const char *id) 1388int unpin(snac *user, const char *id)
1387/* unpin a message */ 1389/* unpin a message */
1388{ 1390{
1389 object_user_cache_del(user, id, "pinned"); 1391 return object_user_cache_del(user, id, "pinned");
1390} 1392}
1391 1393
1392 1394