diff options
author | default <nobody@localhost> | 2022-11-28 10:46:42 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2022-11-28 10:46:42 +0100 |
commit | 07fec7127326cf02d50bd148581908d51cc697f6 (patch) | |
tree | c62856673c0e80a71782fa3bd4f8452e5132638e /upgrade.c | |
parent | 9c136dacdf790fdfe30d1c48ad9b03add206bf73 (diff) |
Upgraded followers to the new db.
Diffstat (limited to 'upgrade.c')
-rw-r--r-- | upgrade.c | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -128,6 +128,51 @@ int db_upgrade(d_char **error) nf = 2.4; } + else + if (f < 2.5) { + /* upgrade followers */ + xs *users = user_list(); + char *p, *v; + + xs_debug(); + + p = users; + while (xs_list_iter(&p, &v)) { + snac snac; + + if (user_open(&snac, v)) { + xs *spec = xs_fmt("%s/followers/" "*.json", snac.basedir); + xs *dir = xs_glob(spec, 0, 0); + char *p, *v; + + p = dir; + while (xs_list_iter(&p, &v)) { + FILE *f; + + if ((f = fopen(v, "r")) != NULL) { + xs *s = xs_readall(f); + xs *o = xs_json_loads(s); + fclose(f); + + char *type = xs_dict_get(o, "type"); + + if (!xs_is_null(type) && strcmp(type, "Follow") == 0) { + unlink(v); + + char *actor = xs_dict_get(o, "actor"); + + if (!xs_is_null(actor)) + follower_add(&snac, actor); + } + } + } + + user_free(&snac); + } + } + + nf = 2.5; + } if (f < nf) { f = nf; |