mirror of
https://github.com/urbit/shrub.git
synced 2024-12-15 21:03:10 +03:00
1c5656c5f3
Conflicts: urb/urbit.pill urb/zod/arvo/ames.hoon
191 lines
5.4 KiB
Plaintext
191 lines
5.4 KiB
Plaintext
!:
|
|
:: /=main=/bin/room/hoon
|
|
::
|
|
=> %= .
|
|
+
|
|
=> +
|
|
=> ^/===/lib/pony
|
|
=> ^/===/lib/chat
|
|
=> |%
|
|
++ fool
|
|
$: num=@ud :: number received
|
|
nym=@t :: text name
|
|
sec=sect :: banner
|
|
liv=? :: officially live
|
|
elf=@da :: last ping
|
|
== ::
|
|
++ loft ::
|
|
$: num=@ud :: (lent meg)
|
|
meg=(list zong) :: messages backward
|
|
pod=(map ,@p fool) :: individual status
|
|
== ::
|
|
++ chub (list ,[p=@p q=(list zong)]) :: delivery report
|
|
-- ::
|
|
|%
|
|
++ fu
|
|
|_ [now=@da lov=loft]
|
|
++ of
|
|
|_ [her=@p ful=fool]
|
|
++ abet ..of(pod.lov (~(put by pod.lov) her ful))
|
|
++ call [her nym.ful]
|
|
++ push
|
|
^- [(list zong) _.]
|
|
?. liv.ful [~ .]
|
|
:- %- flop
|
|
%+ skim (scag (sub num.lov num.ful) meg.lov)
|
|
|= a=zong
|
|
?. ?=(%all -.a) &
|
|
&(!=(her p.q.a) |(=(%white p.a) =(sec.ful p.a)))
|
|
.(num.ful num.lov)
|
|
--
|
|
::
|
|
++ rolf
|
|
^- [chub _.]
|
|
=^ zal pod.lov
|
|
%+ ~(rib by pod.lov) *chub
|
|
|= [[her=@p ful=fool] fug=chub]
|
|
^- [chub [@p fool]]
|
|
=+ lol=~(push of her ful)
|
|
[[[her -.lol] fug] [her ful.+.lol]]
|
|
[zal +]
|
|
::
|
|
++ tell
|
|
|= zog=(list zong)
|
|
^+ +>
|
|
%= +>
|
|
num.lov (add (lent zog) num.lov)
|
|
meg.lov (weld (flop zog) meg.lov)
|
|
==
|
|
::
|
|
++ tilt
|
|
|= zew=(list zong)
|
|
=. +>.$ (tell zew)
|
|
=^ yeq +>.$ rolf
|
|
[yeq lov]
|
|
::
|
|
++ wake
|
|
^- [chub loft]
|
|
=^ zew pod.lov
|
|
%+ ~(rib by pod.lov) *(list zong)
|
|
|= [[her=@p ful=fool] fug=(list zong)]
|
|
^- [(list zong) [@p fool]]
|
|
?. &(liv.ful (gth now (add ~m2 elf.ful))) [fug her ful]
|
|
[[`zong`[%out [her nym.ful]] fug] [her ful(liv |)]]
|
|
(tilt zew)
|
|
::
|
|
++ yelp
|
|
|= [her=@p zig=zing]
|
|
^- [chub loft]
|
|
?: ?=(%who -.zig)
|
|
:_ lov
|
|
:~ :- her
|
|
:~ :- %who
|
|
^- (list user)
|
|
=< -
|
|
%+ ~(rib by pod.lov) *(list user)
|
|
|= [[her=@p ful=fool] fug=(list user)]
|
|
^- [(list user) [@p fool]]
|
|
:_ [her ful]
|
|
?. liv.ful fug
|
|
[[her nym.ful] fug]
|
|
==
|
|
==
|
|
=+ pof=(yowl her)
|
|
=^ zew +>.$
|
|
?- -.zig
|
|
%all
|
|
:_ abet:pof
|
|
[[%all ?:(p.zig %white sec.ful.pof) call:pof q.zig] ~]
|
|
::
|
|
%ego
|
|
:_ abet:pof(liv.ful &, elf.ful now)
|
|
=. elf.ful.pof now
|
|
?:(liv.ful.pof ~ [[%new call:pof] ~])
|
|
::
|
|
%out
|
|
:_ abet:pof(liv.ful |)
|
|
?.(liv.ful.pof ~ [[%out call:pof] ~])
|
|
==
|
|
(tilt zew)
|
|
::
|
|
++ yowl
|
|
|= her=@p
|
|
^+ of
|
|
=+ nog=(~(get by pod.lov) her)
|
|
=+ ^= ful ^- fool
|
|
?^ nog u.nog
|
|
=+ ^= gos
|
|
%- (hard (unit gcos))
|
|
.^(%a (scot %p her) %gcos (scot %da now) ~)
|
|
^- fool
|
|
:* 0
|
|
(numb her now)
|
|
^- sect
|
|
?. &(?=(^ gos) ?=(%duke -.u.gos)) %white
|
|
?: ?=(?(%lord %lady) -.p.u.gos)
|
|
r.p.p.u.gos
|
|
?:(?=(%punk -.p.u.gos) p.p.u.gos %white)
|
|
|
|
|
now
|
|
==
|
|
~(. of her ful)
|
|
--
|
|
--
|
|
==
|
|
=> %= .
|
|
-
|
|
:- :* lov=*loft
|
|
wak=_@da
|
|
==
|
|
[who=`@p`-< how=`path`->]
|
|
==
|
|
|= [est=time *]
|
|
|= ~
|
|
=. wak est
|
|
=< `bowl`[~ ~ hope vent]
|
|
|%
|
|
++ care
|
|
|= [you=@p meg=(list zong) mor=(list gift)]
|
|
=+ len=(lent meg)
|
|
|- ^- (list gift)
|
|
?: =(0 len) mor
|
|
=+ hob=(min len 256)
|
|
:- [%sq you %oy /re (scag hob meg)]
|
|
$(meg (slag hob meg), len (sub len hob))
|
|
::
|
|
++ cede
|
|
|= cub=chub
|
|
^- (list gift)
|
|
?~(cub ~ (care p.i.cub q.i.cub $(cub t.cub)))
|
|
::
|
|
++ hope
|
|
^- (list slip)
|
|
:~ [/yo [%lq %yo]]
|
|
[/wa [%wa wak]]
|
|
[/re [%ow ~]]
|
|
==
|
|
::
|
|
++ take
|
|
|- ^- [chub _+]
|
|
=^ cub lov ~(wake fu est lov)
|
|
[cub +.$]
|
|
::
|
|
++ talk
|
|
|= [her=@p zig=zing]
|
|
^- [chub _+>]
|
|
=^ cub lov (~(yelp fu est lov) her zig)
|
|
[cub +>.$]
|
|
::
|
|
++ vent
|
|
|= [now=@da pax=path nut=note]
|
|
^- bowl
|
|
=. est now
|
|
=^ cub +>
|
|
?+ -.pax !!
|
|
%re ?>(?=(%ow -.nut) [~ +>])
|
|
%wa ?>(?=(%wa -.nut) take(wak (add ~m1 est)))
|
|
%yo ?>(?=(%lq -.nut) (talk p.nut ((hard zing) r.nut)))
|
|
==
|
|
[(cede cub) ~ hope ..$]
|
|
--
|