diff options
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 25 |
1 files changed, 21 insertions, 4 deletions
| @@ -556,14 +556,28 @@ int object_admire(const char *id, const char *actor, int like) | |||
| 556 | } | 556 | } |
| 557 | 557 | ||
| 558 | 558 | ||
| 559 | int object_user_cache_add(snac *snac, const char *id, const char *cachedir) | 559 | int _object_user_cache(snac *snac, const char *id, const char *cachedir, int del) |
| 560 | /* caches an object into a user cache */ | 560 | /* adds or deletes from a user cache */ |
| 561 | { | 561 | { |
| 562 | xs *ofn = _object_fn(id); | 562 | xs *ofn = _object_fn(id); |
| 563 | xs *l = xs_split(ofn, "/"); | 563 | xs *l = xs_split(ofn, "/"); |
| 564 | xs *cfn = xs_fmt("%s/%s/%s", snac->basedir, cachedir, xs_list_get(l, -1)); | 564 | xs *cfn = xs_fmt("%s/%s/%s", snac->basedir, cachedir, xs_list_get(l, -1)); |
| 565 | 565 | ||
| 566 | return link(ofn, cfn); | 566 | return del ? unlink(cfn) : link(ofn, cfn); |
| 567 | } | ||
| 568 | |||
| 569 | |||
| 570 | int object_user_cache_add(snac *snac, const char *id, const char *cachedir) | ||
| 571 | /* caches an object into a user cache */ | ||
| 572 | { | ||
| 573 | return _object_user_cache(snac, id, cachedir, 0); | ||
| 574 | } | ||
| 575 | |||
| 576 | |||
| 577 | int object_user_cache_del(snac *snac, const char *id, const char *cachedir) | ||
| 578 | /* deletes an object from a user cache */ | ||
| 579 | { | ||
| 580 | return _object_user_cache(snac, id, cachedir, 1); | ||
| 567 | } | 581 | } |
| 568 | 582 | ||
| 569 | 583 | ||
| @@ -737,7 +751,10 @@ int timeline_del(snac *snac, char *id) | |||
| 737 | ret = 200; | 751 | ret = 200; |
| 738 | } | 752 | } |
| 739 | 753 | ||
| 740 | object_del(id); | 754 | if (valid_status(object_del(id))) { |
| 755 | object_user_cache_del(snac, id, "public"); | ||
| 756 | object_user_cache_del(snac, id, "private"); | ||
| 757 | } | ||
| 741 | 758 | ||
| 742 | return ret; | 759 | return ret; |
| 743 | } | 760 | } |