urbit/pkg/landscape/mar/graph/validator/link.hoon

92 lines
2.1 KiB
Plaintext
Raw Normal View History

2021-09-06 06:31:11 +03:00
/- *post, met=metadata-store, hark=hark-graph-hook
/+ graph=graph-store
|_ i=indexed-post
++ grow
|%
++ noun i
2021-01-26 07:54:29 +03:00
::
++ graph-indexed-post
^- indexed-post
?+ index.p.i ~|(index+index.p.i !!)
:: top-level link post; title and url
::
[@ ~]
?> ?=([[%text @] $%([%url @] [%reference *]) ~] contents.p.i)
i
::
:: comment on link post; container structure
::
[@ @ ~]
?> ?=(~ contents.p.i)
i
::
:: comment on link post; comment text
::
[@ @ @ ~]
?> ?=(^ contents.p.i)
i
==
::
2021-01-26 07:54:29 +03:00
++ graph-permissions-add
|= vip=vip-metadata:met
^- permissions:graph
2021-01-26 07:54:29 +03:00
=/ reader
?=(%reader-comments vip)
?+ index.p.i !!
[@ ~] [%yes %yes %no]
[@ @ ~] [%yes %yes ?:(reader %yes %no)]
[@ @ @ ~] [%self %self %self]
==
::
++ graph-permissions-remove
|= vip=vip-metadata:met
^- permissions:graph
2021-01-26 07:54:29 +03:00
=/ reader
?=(%reader-comments vip)
?+ index.p.i !!
[@ ~] [%yes %self %self]
[@ @ ~] [%yes %self %self]
[@ @ @ ~] [%yes %self %self]
==
::
++ notification-kind
2021-09-06 06:31:11 +03:00
|= title=cord
^- (unit notif-kind:hark)
?+ index.p.i ~
2021-09-06 06:31:11 +03:00
[@ ~]
:- ~
:* [text+(rap 3 'New links in ' title ~)]~
[ship+author.p.i text+': ' (hark-contents:graph contents.p.i)]
[0 1] %each %children
==
[@ @ %1 ~]
:- ~
:* [text+(rap 3 'New comments on a post in ' title ~)]~
[ship+author.p.i text+': ' (hark-contents:graph contents.p.i)]
[1 2] %count %siblings
==
==
::
++ transform-add-nodes
|= [=index =post =atom was-parent-modified=?]
^- [^index ^post]
=- [- post(index -)]
?+ index ~|(transform+[index post] !!)
[@ ~] [atom ~]
[@ @ ~] [i.index atom ~]
[@ @ @ ~]
?: was-parent-modified
[i.index atom i.t.t.index ~]
index
==
--
++ grab
|%
++ noun indexed-post
--
++ grad %noun
--