shrub/lib/talk.hoon

159 lines
3.2 KiB
Plaintext
Raw Normal View History

2015-01-15 22:32:04 +03:00
::
2016-02-11 03:41:28 +03:00
:::: /hoon/talk/lib
::
2015-01-15 22:32:04 +03:00
:: This file is in the public domain.
::
/? 310
/- talk
!:
2015-01-15 22:32:04 +03:00
::::
::
2015-09-02 03:24:18 +03:00
[. ^talk]
2016-03-15 03:37:34 +03:00
|_ bol/bowl
2015-01-15 22:32:04 +03:00
++ main :: main story
2015-12-20 23:50:45 +03:00
|= our/ship ^- cord
2015-01-15 22:32:04 +03:00
=+ can=(clan our)
?+ can %porch
2015-12-09 04:54:26 +03:00
$czar %court
$king %floor
==
2015-06-02 21:36:56 +03:00
::
2016-03-15 03:37:34 +03:00
++ said-url :: app url
|= url/purl
2016-03-15 04:02:59 +03:00
:^ ost.bol %poke /said-url
:+ [our.bol %talk] %talk-action
^- action
:+ %phrase
[[%& our.bol (main our.bol)] ~ ~]
[%app dap.bol (crip (earn url))]~ :: XX
2016-03-15 03:37:34 +03:00
::
2015-06-02 02:25:22 +03:00
++ said :: app message
2016-08-11 21:15:06 +03:00
|= {our/@p dap/term now/@da eny/@uvJ mes/(list tank)}
:- %talk-action
^- action
:- %convey
|- ^- (list thought)
?~ mes ~
2015-06-06 02:01:44 +03:00
:_ $(mes t.mes, eny (sham eny mes))
^- thought
:+ (shaf %thot eny)
[[[%& our (main our)] [*envelope %pending]] ~ ~]
[now *bouquet [%app dap (crip ~(ram re i.mes))]]
::
++ uniq
|= eny/@uvJ
^- (quid serial eny)
[(shaf %serial eny) (shax eny)]
::
++ change-glyphs ::< ...
::>
::
|= {gys/(jug char (set partner)) bin/? gyf/char pas/(set partner)}
^+ gys
:: simple bind.
?: bin (~(put ju gys) gyf pas)
:: unbind all of glyph.
?~ pas (~(del by gys) gyf)
:: unbind single.
(~(del ju gys) gyf pas)
::
++ change-nicks ::< ...
::>
::
|= {nis/(map ship cord) who/ship nic/cord}
^+ nis
?: =(nic '')
(~(del by nis) who)
(~(put by nis) who nic)
::
++ change-friends ::< ...
::>
::
|= {cis/(set circle) add/? cir/circle}
^+ cis
%. cir
?: add
~(put in cis)
~(del in cis)
::
++ change-config ::< ...
::>
::
|= {cof/config dif/diff-config}
^+ cof
?- -.dif
$full cof.dif
$caption cof(cap cap.dif)
$filter cof(fit fit.dif)
$remove cof
::
$source
%= cof
src
%. `(set partner)`pas.dif ::TODO? why do we *need* to cast?
?: add.dif
~(uni in src.cof)
~(dif in src.cof)
==
::
$permit
%= cof
ses.con
%. sis.dif
?: add.dif
~(uni in ses.con.cof)
~(dif in ses.con.cof)
==
::
$secure
%= cof
sec.con
sec.dif
::
ses.con
?. .= ?=(?($white $green) sec.dif)
?=(?($white $green) sec.con.cof)
~
ses.con.cof
==
::
$federal
%= cof
fes.fed
?. fed.dif fes.fed.cof
%. sis.dif
?: add.dif
~(uni in fes.fed.cof)
~(dif in fes.fed.cof)
::
may.fed
?: fed.dif may.fed.cof
%. sis.dif
?: add.dif
~(uni in may.fed.cof)
~(dif in may.fed.cof)
==
==
::
++ change-status ::< ...
::>
::
|= {sat/status dif/diff-status}
^+ sat
?- -.dif
$full sat.dif
$presence sat(pec pec.dif)
$remove sat
::
$human
%= sat
man
?- -.dif.dif
$full man.dif.dif
$true [tru.dif.dif han.man.sat]
$handle [tru.man.sat han.dif.dif]
==
==
==
2015-01-15 22:32:04 +03:00
--