summaryrefslogtreecommitdiff
path: root/upgrade.c
diff options
context:
space:
mode:
Diffstat (limited to 'upgrade.c')
-rw-r--r--upgrade.c40
1 files changed, 27 insertions, 13 deletions
diff --git a/upgrade.c b/upgrade.c
index 7510ac8..266a4be 100644
--- a/upgrade.c
+++ b/upgrade.c
@@ -18,7 +18,7 @@ int snac_upgrade(xs_str **error)
18 double f = 0.0; 18 double f = 0.0;
19 19
20 for (;;) { 20 for (;;) {
21 char *layout = xs_dict_get(srv_config, "layout"); 21 const char *layout = xs_dict_get(srv_config, "layout");
22 double nf; 22 double nf;
23 23
24 f = nf = xs_number_get(layout); 24 f = nf = xs_number_get(layout);
@@ -56,8 +56,8 @@ int snac_upgrade(xs_str **error)
56 56
57 g = list; 57 g = list;
58 while (xs_list_iter(&g, &fn)) { 58 while (xs_list_iter(&g, &fn)) {
59 xs *l = xs_split(fn, "/"); 59 xs *l = xs_split(fn, "/");
60 char *b = xs_list_get(l, -1); 60 const char *b = xs_list_get(l, -1);
61 xs *dir = xs_fmt("%s/object/%c%c", srv_basedir, b[0], b[1]); 61 xs *dir = xs_fmt("%s/object/%c%c", srv_basedir, b[0], b[1]);
62 xs *nfn = xs_fmt("%s/%s", dir, b); 62 xs *nfn = xs_fmt("%s/%s", dir, b);
63 63
@@ -152,12 +152,12 @@ int snac_upgrade(xs_str **error)
152 xs *o = xs_json_loads(s); 152 xs *o = xs_json_loads(s);
153 fclose(f); 153 fclose(f);
154 154
155 char *type = xs_dict_get(o, "type"); 155 const char *type = xs_dict_get(o, "type");
156 156
157 if (!xs_is_null(type) && strcmp(type, "Follow") == 0) { 157 if (!xs_is_null(type) && strcmp(type, "Follow") == 0) {
158 unlink(v); 158 unlink(v);
159 159
160 char *actor = xs_dict_get(o, "actor"); 160 const char *actor = xs_dict_get(o, "actor");
161 161
162 if (!xs_is_null(actor)) 162 if (!xs_is_null(actor))
163 follower_add(&snac, actor); 163 follower_add(&snac, actor);
@@ -198,22 +198,29 @@ int snac_upgrade(xs_str **error)
198 xs *meta = xs_dup(xs_dict_get(o, "_snac")); 198 xs *meta = xs_dup(xs_dict_get(o, "_snac"));
199 o = xs_dict_del(o, "_snac"); 199 o = xs_dict_del(o, "_snac");
200 200
201 char *id = xs_dict_get(o, "id"); 201 const char *id = xs_dict_get(o, "id");
202 202
203 /* store object */ 203 /* store object */
204 object_add_ow(id, o); 204 object_add_ow(id, o);
205 205
206 /* if it's from us, add to public */ 206 /* if it's from us, add to public */
207 if (xs_startswith(id, snac.actor)) { 207 if (xs_startswith(id, snac.actor)) {
208 char *p, *v; 208 const xs_list *p;
209 char *v;
210 int c;
209 211
210 object_user_cache_add(&snac, id, "public"); 212 object_user_cache_add(&snac, id, "public");
211 213
212 p = xs_dict_get(meta, "announced_by"); 214 p = xs_dict_get(meta, "announced_by");
213 while (xs_list_iter(&p, &v)) 215
216 c = 0;
217 while (xs_list_next(p, &v, &c))
214 object_admire(id, v, 0); 218 object_admire(id, v, 0);
219
215 p = xs_dict_get(meta, "liked_by"); 220 p = xs_dict_get(meta, "liked_by");
216 while (xs_list_iter(&p, &v)) 221
222 c = 0;
223 while (xs_list_next(p, &v, &c))
217 object_admire(id, v, 1); 224 object_admire(id, v, 1);
218 } 225 }
219 226
@@ -257,21 +264,28 @@ int snac_upgrade(xs_str **error)
257 xs *meta = xs_dup(xs_dict_get(o, "_snac")); 264 xs *meta = xs_dup(xs_dict_get(o, "_snac"));
258 o = xs_dict_del(o, "_snac"); 265 o = xs_dict_del(o, "_snac");
259 266
260 char *id = xs_dict_get(o, "id"); 267 const char *id = xs_dict_get(o, "id");
261 268
262 /* store object */ 269 /* store object */
263 object_add_ow(id, o); 270 object_add_ow(id, o);
264 271
265 { 272 {
266 char *p, *v; 273 const xs_list *p;
274 char *v;
275 int c = 0;
267 276
268 object_user_cache_add(&snac, id, "private"); 277 object_user_cache_add(&snac, id, "private");
269 278
270 p = xs_dict_get(meta, "announced_by"); 279 p = xs_dict_get(meta, "announced_by");
271 while (xs_list_iter(&p, &v)) 280
281 c = 0;
282 while (xs_list_next(p, &v, &c))
272 object_admire(id, v, 0); 283 object_admire(id, v, 0);
284
273 p = xs_dict_get(meta, "liked_by"); 285 p = xs_dict_get(meta, "liked_by");
274 while (xs_list_iter(&p, &v)) 286
287 c = 0;
288 while (xs_list_next(p, &v, &c))
275 object_admire(id, v, 1); 289 object_admire(id, v, 1);
276 } 290 }
277 291