From 41a0963ce4a2b4992d7b28ba9dbd9796e0cd90fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Paraniak?= Date: Mon, 14 Oct 2024 11:15:15 +0800 Subject: [PATCH 1/3] contacts: consistently use %look for cover and avatar fields --- desk/lib/contacts.hoon | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/desk/lib/contacts.hoon b/desk/lib/contacts.hoon index 96da7819..8f29478d 100644 --- a/desk/lib/contacts.hoon +++ b/desk/lib/contacts.hoon @@ -170,12 +170,12 @@ (gth (met 3 u.bio) 2.048) == | - =+ avatar=(~(get cy con) %avatar %text) + =+ avatar=(~(get cy con) %avatar %look) ?: ?& ?=(^ avatar) =('data:' (end 3^5 u.avatar)) == | - =+ cover=(~(get cy con) %cover %text) + =+ cover=(~(get cy con) %cover %look) ?: ?& ?=(^ cover) =('data:' (end 3^5 u.cover)) == @@ -219,9 +219,9 @@ color+tint/color.o == =? c ?=(^ avatar.o) - (~(put by c) %avatar text/u.avatar.o) + (~(put by c) %avatar look/u.avatar.o) =? c ?=(^ cover.o) - (~(put by c) %cover text/u.cover.o) + (~(put by c) %cover look/u.cover.o) =? c !?=(~ groups.o) %+ ~(put by c) %groups :- %set @@ -258,9 +258,9 @@ color (~(gub cy c) %color %tint) avatar - (~(get cy c) %avatar %text) + (~(get cy c) %avatar %look) cover - (~(get cy c) %cover %text) + (~(get cy c) %cover %look) groups =/ groups (~(get cy c) %groups %set) From 04ffe4d0baeca84b8c81e5851c58a0a831644a0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Paraniak?= Date: Wed, 30 Oct 2024 22:15:29 +0800 Subject: [PATCH 2/3] contacts: fix null $value JSON conversion --- desk/lib/contacts/json-1.hoon | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/desk/lib/contacts/json-1.hoon b/desk/lib/contacts/json-1.hoon index 390f75b8..961f4d7a 100644 --- a/desk/lib/contacts/json-1.hoon +++ b/desk/lib/contacts/json-1.hoon @@ -23,6 +23,7 @@ ++ value |= val=value:c ^- json + ?@ val ~ ?- -.val %text (pairs type+s/%text value+s/p.val ~) %numb (pairs type+s/%numb value+(numb p.val) ~) @@ -67,17 +68,18 @@ ++ response |= n=response:c ^- json + %+ frond -.n ?- -.n - %self (frond self+(contact con.n)) + %self (frond contact+(contact con.n)) %page %- pairs :~ kip+(kip kip.n) - con+(contact con.n) + contact+(contact con.n) mod+(contact mod.n) == %wipe (frond kip+(kip kip.n)) %peer %- pairs :~ who+(ship who.n) - con+(contact con.n) + contact+(contact con.n) == == -- @@ -115,7 +117,7 @@ :: =/ [type=@tas val=json] %. jon - (ot text+(se %tas) value+json ~) + (ot type+(se %tas) value+json ~) ?+ type !! %text %. val (ta %text so) %numb %. val (ta %numb ni) From 0366b5ea6fdffcfeb2fbb6b3e3c350099ca56bc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20Paraniak?= Date: Wed, 2 Apr 2025 00:31:25 +0800 Subject: [PATCH 3/3] contacts: expose unmerged contact directory scry Previously the %contacts agent exposed the /v1/all scry that returned the collection of all merged contacts, including peers. This endpoint was never used, and a need now arises for a scry endpoint that would rather serve unmerged information. We remove the never used /v1/all endpoint, change the definition of $directory, and serve the unmerged contact directory at /v1/directory. --- desk/app/contacts.hoon | 23 +++++++++++++---------- desk/lib/contacts.hoon | 2 ++ desk/lib/contacts/json-1.hoon | 10 +++++----- desk/sur/contacts.hoon | 4 ++-- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/desk/app/contacts.hoon b/desk/app/contacts.hoon index 4ba1bd94..d3a5caaa 100644 --- a/desk/app/contacts.hoon +++ b/desk/app/contacts.hoon @@ -603,7 +603,7 @@ ?- -.act %anon p-anon:pub %self (p-self:pub p.act) - :: if we add a page for someone who is not a peer, + :: when we add a page for someone who is not a peer, :: we meet them first :: %page =? cor &(?=(ship p.act) !(~(has by peers) p.act)) @@ -616,23 +616,22 @@ %snub (s-many:sub p.act |=(s=_s-impl:sub si-snub:s)) == == - :: +peek: scry - :: - :: v0 scries + :: +peek: handle scry :: :: /x/all -> $rolodex:c0 :: /x/contact/her=@ -> $@(~ contact-0:c0) :: - :: v1 scries - :: :: /x/v1/self -> $contact + :: :: /x/v1/book -> $book :: /x/v1/book/her=@p -> $page :: /x/v1/book/id/cid=@uv -> $page - :: /x/v1/all -> $directory + :: :: /x/v1/contact/her=@p -> $contact :: /x/v1/peer/her=@p -> $contact :: + :: /x/v1/directory -> $directory + :: ++ peek |= pat=(pole knot) ^- (unit (unit cage)) @@ -695,7 +694,7 @@ (~(get by book) id+u.id) ``contact-page-0+!>(`^page`(fall page *^page)) :: - [%x %v1 %all ~] + [%x %v1 %directory ~] =| dir=directory :: export all ship contacts :: @@ -704,7 +703,7 @@ |= [[=kip =page] =_dir] ?^ kip dir - (~(put by dir) kip (contact-uni page)) + (~(put by dir) kip page) :: export all peers :: =. dir @@ -712,7 +711,11 @@ |= [[who=ship far=foreign] =_dir] ?~ for.far dir ?: (~(has by dir) who) dir - (~(put by dir) who con.for.far) + (~(put by dir) who con.for.far ~) + :: export self + :: + =. dir + (~(put by dir) our.bowl con.rof ~) ``contact-directory-0+!>(dir) :: [%u %v1 %contact her=@p ~] diff --git a/desk/lib/contacts.hoon b/desk/lib/contacts.hoon index 0163f0c2..fc1b53a8 100644 --- a/desk/lib/contacts.hoon +++ b/desk/lib/contacts.hoon @@ -203,11 +203,13 @@ (gth (met 3 u.bio) 2.048) == | + ?. (~(typ cy con) %avatar %look) | =+ avatar=(~(get cy con) %avatar %look) ?: ?& ?=(^ avatar) =('data:' (end 3^5 u.avatar)) == | + ?. (~(typ cy con) %cover %look) | =+ cover=(~(get cy con) %cover %look) ?: ?& ?=(^ cover) =('data:' (end 3^5 u.cover)) diff --git a/desk/lib/contacts/json-1.hoon b/desk/lib/contacts/json-1.hoon index 149418ef..fb55f6e8 100644 --- a/desk/lib/contacts/json-1.hoon +++ b/desk/lib/contacts/json-1.hoon @@ -52,10 +52,10 @@ =| kob=(map @ta json) :- %o %- ~(rep by book) - |= [[=kip:c =page:c] acc=_kob] + |= [[=kip:c =page:c] =_kob] ?^ kip - (~(put by acc) (scot %uv +.kip) (^page page)) - (~(put by acc) (scot %p kip) (^page page)) + (~(put by kob) (scot %uv +.kip) (^page page)) + (~(put by kob) (scot %p kip) (^page page)) :: ++ directory |= =directory:c @@ -63,8 +63,8 @@ =| dir=(map @ta json) :- %o %- ~(rep by directory) - |= [[who=@p con=contact:c] acc=_dir] - (~(put by acc) (scot %p who) (contact con)) + |= [[who=@p =page:c] =_dir] + (~(put by dir) (scot %p who) (^page page)) :: ++ response |= n=response:c diff --git a/desk/sur/contacts.hoon b/desk/sur/contacts.hoon index 414ad3c5..79cdb861 100644 --- a/desk/sur/contacts.hoon +++ b/desk/sur/contacts.hoon @@ -82,9 +82,9 @@ :: $book: contact book :: +$ book (map kip page) -:: $directory: merged contacts +:: $directory: all known contacts :: -+$ directory (map ship contact) ++$ directory (map ship page) :: $peers: network peers :: +$ peers (map ship foreign)