mirror of
https://github.com/urbit/shrub.git
synced 2024-12-21 09:51:36 +03:00
76 lines
1.8 KiB
Plaintext
76 lines
1.8 KiB
Plaintext
/- *post, met=metadata-store, graph=graph-store, hark=hark-graph-hook
|
|
|_ i=indexed-post
|
|
++ grow
|
|
|%
|
|
++ noun i
|
|
::
|
|
++ graph-permissions-add
|
|
|= vip=vip-metadata:met
|
|
^- permissions:graph
|
|
=/ 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
|
|
=/ reader
|
|
?=(%reader-comments vip)
|
|
?+ index.p.i !!
|
|
[@ ~] [%yes %self %self]
|
|
[@ @ ~] [%yes %self %self]
|
|
[@ @ @ ~] [%yes %self %self]
|
|
==
|
|
::
|
|
++ notification-kind
|
|
^- (unit notif-kind:hark)
|
|
?+ index.p.i ~
|
|
[@ ~] `[%link [0 1] %each %children]
|
|
[@ @ %1 ~] `[%comment [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
|
|
|: p=`*`%*(. *indexed-post index.p [0 0 ~])
|
|
=/ ip ;;(indexed-post p)
|
|
?+ index.p.ip ~|(index+index.p.ip !!)
|
|
:: top-level link post; title and url
|
|
::
|
|
[@ ~]
|
|
?> ?=([[%text @] $%([%url @] [%reference *]) ~] contents.p.ip)
|
|
ip
|
|
::
|
|
:: comment on link post; container structure
|
|
::
|
|
[@ @ ~]
|
|
?> ?=(~ contents.p.ip)
|
|
ip
|
|
::
|
|
:: comment on link post; comment text
|
|
::
|
|
[@ @ @ ~]
|
|
?> ?=(^ contents.p.ip)
|
|
ip
|
|
==
|
|
--
|
|
++ grad %noun
|
|
--
|