Differences From
Artifact [efe49adad0]:
28 28
29 29 var strfbuf: int8[28*4]
30 30 var stats = co.srv:actor_stats(actor.id)
31 31 var sn_posts = cs(lib.math.decstr_friendly(stats.posts, &strfbuf[ [strfbuf.type.N - 1] ]))
32 32 var sn_follows = cs(lib.math.decstr_friendly(stats.follows, sn_posts.ptr - 1))
33 33 var sn_followers = cs(lib.math.decstr_friendly(stats.followers, sn_follows.ptr - 1))
34 34 var sn_mutuals = cs(lib.math.decstr_friendly(stats.mutuals, sn_followers.ptr - 1))
35 -
35 + var bio = lib.str.plit "<em>tall, dark, and mysterious</em>"
36 + if actor.bio ~= nil then
37 + bio = lib.html.sanitize(cs(actor.bio), false)
38 + end
39 + var fullname = lib.render.nym(actor,0) defer fullname:free()
36 40 var profile = data.view.profile {
37 - nym = cs(lib.coalesce(actor.nym, actor.handle));
38 - bio = cs(lib.coalesce(actor.bio, "<em>tall, dark, and mysterious</em>"));
41 + nym = fullname;
42 + bio = bio;
39 43 xid = cs(actor.xid);
40 44 avatar = lib.trn(actor.origin == 0, pstr{ptr=avistr.buf,ct=avistr.sz},
41 45 cs(lib.coalesce(actor.avatar, '/s/default-avatar.webp')));
42 46
43 47 nposts = sn_posts, nfollows = sn_follows;
44 48 nfollowers = sn_followers, nmutuals = sn_mutuals;
45 49 tweetday = cs(timestr);
................................................................................
47 51
48 52 auxbtn = auxp;
49 53 }
50 54
51 55 var ret = profile:tostr()
52 56 if actor.origin == 0 then avistr:free() end
53 57 if not (co.aid ~= 0 and co.who.id == actor.id) then auxp:free() end
58 + if actor.bio ~= nil then bio:free() end
54 59 return ret
55 60 end
56 61
57 62 return render_profile