summaryrefslogtreecommitdiff
path: root/upgrade.c
diff options
context:
space:
mode:
authorGravatar default2022-12-03 17:58:49 +0100
committerGravatar default2022-12-03 17:58:49 +0100
commitd00026ac063e960728c5147634ff3591828efced (patch)
tree0456668b56eb64bfdbd2c513a479cc02b247a9d2 /upgrade.c
parentNew function timeline_simple_list(). (diff)
downloadsnac2-d00026ac063e960728c5147634ff3591828efced.tar.gz
snac2-d00026ac063e960728c5147634ff3591828efced.tar.xz
snac2-d00026ac063e960728c5147634ff3591828efced.zip
Upgraded local/ to public/.
Diffstat (limited to 'upgrade.c')
-rw-r--r--upgrade.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/upgrade.c b/upgrade.c
index e2983e4..dbf878b 100644
--- a/upgrade.c
+++ b/upgrade.c
@@ -171,6 +171,65 @@ int db_upgrade(d_char **error)
171 171
172 nf = 2.5; 172 nf = 2.5;
173 } 173 }
174 else
175 if (f < 2.6) {
176 /* upgrade local/ to public/ */
177 xs *users = user_list();
178 char *p, *v;
179
180 p = users;
181 while (xs_list_iter(&p, &v)) {
182 snac snac;
183
184 if (user_open(&snac, v)) {
185 xs *spec = xs_fmt("%s/local/" "*.json", snac.basedir);
186 xs *dir = xs_glob(spec, 0, 0);
187 char *p, *v;
188
189 p = dir;
190 while (xs_list_iter(&p, &v)) {
191 FILE *f;
192
193 if ((f = fopen(v, "r")) != NULL) {
194 xs *s = xs_readall(f);
195 xs *o = xs_json_loads(s);
196 fclose(f);
197
198 xs *meta = xs_dup(xs_dict_get(o, "_snac"));
199 o = xs_dict_del(o, "_snac");
200
201 char *id = xs_dict_get(o, "id");
202
203 /* store object */
204 object_add_ow(id, o);
205
206 /* if it's from us, add to public */
207 if (xs_startswith(id, snac.actor)) {
208 char *p, *v;
209
210 object_user_cache_add(&snac, id, "public");
211
212 p = xs_dict_get(meta, "announced_by");
213 while (xs_list_iter(&p, &v))
214 object_admire(id, v, 0);
215 p = xs_dict_get(meta, "liked_by");
216 while (xs_list_iter(&p, &v))
217 object_admire(id, v, 1);
218 }
219
220 unlink(v);
221 }
222 }
223
224 xs *od = xs_fmt("%s/local", snac.basedir);
225 rmdir(od);
226
227 user_free(&snac);
228 }
229 }
230
231 nf = 2.6;
232 }
174 233
175 if (f < nf) { 234 if (f < nf) {
176 f = nf; 235 f = nf;