mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-29 18:06:43 +03:00
Broke out functions, inlined more of the app, fewer declarations, more subject modifications rather than subject additions
This commit is contained in:
parent
5052227ee7
commit
3ae8e55e48
@ -35,7 +35,6 @@
|
||||
=, chat
|
||||
::
|
||||
|%
|
||||
::
|
||||
+$ state
|
||||
$% [%0 str=streams]
|
||||
==
|
||||
@ -52,7 +51,6 @@
|
||||
[%pull wire dock ~]
|
||||
[%diff diff]
|
||||
==
|
||||
::
|
||||
--
|
||||
::
|
||||
|_ [bol=bowl:gall state]
|
||||
@ -64,40 +62,33 @@
|
||||
++ prep
|
||||
|= old=(unit state)
|
||||
^- (quip move _this)
|
||||
=/ launcha (launch-poke [/chattile '/~chat/js/tile.js'])
|
||||
?~ old
|
||||
=/ peer-inbox
|
||||
%+ hall-peer
|
||||
/circle/[(scot %p our.bol)]/inbox/config/group
|
||||
/circle/inbox/config/group
|
||||
=/ circlespat /circles/[(scot %p our.bol)]
|
||||
=/ sourceannounce (hall-source [~marzod %announcements])
|
||||
::
|
||||
=/ hall-actions=(list move)
|
||||
?^ old
|
||||
:_ this(+<+ u.old)
|
||||
[(launch-poke [/chattile '/~chat/js/tile.js'])]~
|
||||
::
|
||||
=/ inbox-path /circle/inbox/config/group
|
||||
::
|
||||
:_ this
|
||||
:* [ost.bol %connect / [~ /'~chat'] %chat]
|
||||
(launch-poke [/chattile '/~chat/js/tile.js'])
|
||||
(hall-peer /circle/(scot %p our.bol)/inbox/config/group inbox-path)
|
||||
(hall-peer /circles/(scot %p our.bol) /circles/(scot %p our.bol))
|
||||
(hall-source [our.bol %i])
|
||||
?: =((clan:title our.bol) %czar)
|
||||
~
|
||||
?: =(our.bol ~marzod)
|
||||
:- (hall-create %announcements 'Announcements from Tlon' %journal)
|
||||
[sourceannounce]~
|
||||
[(hall-source [~marzod %announcements])]~
|
||||
?: =(our.bol ~dopzod)
|
||||
:- (hall-create %urbit-dev 'Chat about developing on Urbit' %channel)
|
||||
[(hall-create %urbit-help 'Help about Urbit' %channel)]~
|
||||
:~ (hall-create %hall-internal-announcements '' %village)
|
||||
(hall-source [our.bol %hall-internal-announcements])
|
||||
sourceannounce
|
||||
(hall-source [~marzod %announcements])
|
||||
==
|
||||
::
|
||||
:_ this
|
||||
:* [ost.bol %connect / [~ /'~chat'] %chat]
|
||||
launcha
|
||||
peer-inbox
|
||||
(hall-peer circlespat circlespat)
|
||||
(hall-source [our.bol %i])
|
||||
hall-actions
|
||||
==
|
||||
::
|
||||
:_ this(+<+ u.old)
|
||||
[launcha]~
|
||||
==
|
||||
::
|
||||
:: +peer-chattile: subscribe to data necessary for chat tile
|
||||
::
|
||||
++ peer-chattile
|
||||
|= wir=wire
|
||||
@ -107,7 +98,6 @@
|
||||
::
|
||||
:: +peer-messages: subscribe to subset of messages and updates
|
||||
::
|
||||
::
|
||||
++ peer-primary
|
||||
|= wir=wire
|
||||
^- (quip move _this)
|
||||
@ -115,27 +105,23 @@
|
||||
:_ this
|
||||
:- [ost.bol %diff %chat-config str]
|
||||
%+ murn ~(tap by messages)
|
||||
|= [cir=circle:hall lis=(list envelope:hall)]
|
||||
|= [cir=circle:hall envelopes=(list envelope:hall)]
|
||||
^- (unit move)
|
||||
=/ envs=(unit (list envelope:hall)) (~(get by messages) cir)
|
||||
?~ envs
|
||||
~
|
||||
=/ length/@ (lent u.envs)
|
||||
=/ start/@
|
||||
=/ length=@ (lent envelopes)
|
||||
=/ start=@
|
||||
?: (gte length 100)
|
||||
(sub length 100)
|
||||
0
|
||||
=/ end/@ length
|
||||
=/ offset/@ (sub end start)
|
||||
=/ end=@ length
|
||||
=/ offset=@ (sub end start)
|
||||
:- ~
|
||||
:* ost.bol
|
||||
%diff
|
||||
%chat-update
|
||||
[%messages cir start end (swag [start offset] u.envs)]
|
||||
[%messages cir start end (swag [start offset] envelopes)]
|
||||
==
|
||||
|
||||
::
|
||||
:: +poke-chat: send us an action
|
||||
:: +poke-chat: send a list of actions to hall
|
||||
::
|
||||
++ poke-chat-action
|
||||
|= act=action:chat
|
||||
@ -144,16 +130,7 @@
|
||||
%+ turn lis.act
|
||||
|= hac=action:hall
|
||||
^- move
|
||||
:* ost.bol
|
||||
%poke
|
||||
/p/[(scot %da now.bol)]
|
||||
[our.bol %hall]
|
||||
[%hall-action hac]
|
||||
==
|
||||
::
|
||||
::
|
||||
:: +hall arms
|
||||
::
|
||||
[ost.bol %poke /p/(scot %da now.bol) [our.bol %hall] [%hall-action hac]]
|
||||
::
|
||||
:: +diff-hall-prize: handle full state initially handed to us by hall
|
||||
::
|
||||
@ -165,81 +142,68 @@
|
||||
?+ i.wir
|
||||
(mean [leaf+"invalid wire for diff: {(spud wir)}"]~)
|
||||
::
|
||||
:: %circles wire
|
||||
%circles
|
||||
?> ?=(%circles -.piz)
|
||||
=. str str(circles cis.piz)
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%circles cis.piz] str])
|
||||
::
|
||||
%circles
|
||||
?> ?=(%circles -.piz)
|
||||
=/ sta
|
||||
%= str
|
||||
circles cis.piz
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%circles cis.piz] sta])
|
||||
::
|
||||
:: %circle wire
|
||||
::
|
||||
%circle
|
||||
?> ?=(%circle -.piz)
|
||||
=/ circle=circle:hall [our.bol &3:wir]
|
||||
::
|
||||
:: fill inbox config and remote configs with prize data
|
||||
::
|
||||
?: =(circle [our.bol %inbox])
|
||||
=/ configs
|
||||
%- ~(uni in configs.str)
|
||||
^- (map circle:hall (unit config:hall))
|
||||
(~(run by rem.cos.piz) |=(a=config:hall `a))
|
||||
%circle
|
||||
?> ?=(%circle -.piz)
|
||||
?. =([our.bol &3:wir] [our.bol %inbox])
|
||||
::
|
||||
=/ circles=(list circle:hall)
|
||||
(turn ~(tap in src.loc.cos.piz) head)
|
||||
:: fill remote configs with message data
|
||||
::
|
||||
=/ meslis=(list [circle:hall (list envelope:hall)])
|
||||
%+ turn circles
|
||||
|= cir=circle:hall
|
||||
^- [circle:hall (list envelope:hall)]
|
||||
[cir ~]
|
||||
=* messages messages.str
|
||||
=/ circle=circle:hall [`@p`(slav %p &2:wir) &3:wir]
|
||||
=/ peers=(map circle:hall (set @p))
|
||||
%- ~(rep by rem.pes.piz)
|
||||
|= [[cir=circle:hall grp=group:hall] acc=(map circle:hall (set @p))]
|
||||
^+ acc
|
||||
(~(put by acc) cir (silt (turn ~(tap by grp) head)))
|
||||
::
|
||||
=. str
|
||||
%= str
|
||||
messages (~(put by messages) circle nes.piz)
|
||||
peers
|
||||
%- ~(uni by peers.str)
|
||||
(~(put by peers) circle ~(key by loc.pes.piz))
|
||||
==
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%messages circle 0 (lent messages) nes.piz] str])
|
||||
::
|
||||
=/ localpeers=(set @p) (silt (turn ~(tap by loc.pes.piz) head))
|
||||
:: fill inbox config and remote configs with prize data
|
||||
::
|
||||
=/ circles=(list circle:hall) (turn ~(tap in src.loc.cos.piz) head)
|
||||
::
|
||||
=/ peers=(map circle:hall (set @p))
|
||||
%- ~(rep by rem.pes.piz)
|
||||
|= [[cir=circle:hall grp=group:hall] acc=(map circle:hall (set @p))]
|
||||
^- (map circle:hall (set @p))
|
||||
^+ acc
|
||||
(~(put by acc) cir (silt (turn ~(tap by grp) head)))
|
||||
::
|
||||
:-
|
||||
%+ turn ~(tap in (~(del in (silt circles)) [our.bol %inbox]))
|
||||
|= cir=circle:hall
|
||||
^- move
|
||||
=/ wir/wire /circle/[(scot %p our.bol)]/[nom.cir]/config/group
|
||||
=/ pat/path /circle/[nom.cir]/config/group
|
||||
[ost.bol %peer wir [our.bol %hall] pat]
|
||||
%+ hall-peer
|
||||
/circle/(scot %p our.bol)/[nom.cir]/config/group
|
||||
/circle/[nom.cir]/config/group
|
||||
%= this
|
||||
inbox.str loc.cos.piz
|
||||
configs.str configs
|
||||
messages.str (molt meslis)
|
||||
peers.str (~(put by peers) [our.bol %inbox] localpeers)
|
||||
==
|
||||
::
|
||||
:: fill remote configs with message data
|
||||
::
|
||||
=* messages messages.str
|
||||
=/ circle=circle:hall [`@p`(slav %p &2:wir) &3:wir]
|
||||
=/ localpeers=(set @p) (silt (turn ~(tap by loc.pes.piz) head))
|
||||
peers.str (~(put by peers) [our.bol %inbox] ~(key by loc.pes.piz))
|
||||
::
|
||||
=/ peers=(map circle:hall (set @p))
|
||||
%- ~(rep by rem.pes.piz)
|
||||
|= [[cir=circle:hall grp=group:hall] acc=(map circle:hall (set @p))]
|
||||
^- (map circle:hall (set @p))
|
||||
(~(put by acc) cir (silt (turn ~(tap by grp) head)))
|
||||
=/ sta
|
||||
%= str
|
||||
messages (~(put by messages) circle nes.piz)
|
||||
peers (~(uni by peers.str) (~(put by peers) circle localpeers))
|
||||
==
|
||||
=/ messageupdate=update [%messages circle 0 (lent messages) nes.piz]
|
||||
:_ this(str sta)
|
||||
(send-chat-update [messageupdate sta])
|
||||
configs.str
|
||||
%- ~(uni in configs.str)
|
||||
^- (map circle:hall (unit config:hall))
|
||||
(~(run by rem.cos.piz) some)
|
||||
::
|
||||
messages.str
|
||||
%- molt
|
||||
%+ turn circles
|
||||
|= cir=circle:hall
|
||||
^- [circle:hall (list envelope:hall)]
|
||||
[cir ~]
|
||||
==
|
||||
==
|
||||
::
|
||||
:: +diff-hall-rumor: handle updates to hall state
|
||||
@ -252,15 +216,25 @@
|
||||
?+ i.wir
|
||||
(mean [leaf+"invalid wire for diff: {(spud wir)}"]~)
|
||||
::
|
||||
:: %circles
|
||||
%circles
|
||||
(handle-rumor-circles rum)
|
||||
::
|
||||
%circles
|
||||
%circle
|
||||
(handle-rumor-circle wir rum)
|
||||
::
|
||||
==
|
||||
::
|
||||
:: +handle-rumor-circles
|
||||
::
|
||||
++ handle-rumor-circles
|
||||
|= rum=rumor:hall
|
||||
^- (quip move _this)
|
||||
?> ?=(%circles -.rum)
|
||||
=/ cis
|
||||
?: add.rum
|
||||
(~(put in circles.str) cir.rum)
|
||||
(~(del in circles.str) cir.rum)
|
||||
=/ sta
|
||||
=. str
|
||||
%= str
|
||||
circles cis
|
||||
peers
|
||||
@ -268,37 +242,81 @@
|
||||
(~(put by peers.str) [our.bol cir.rum] ~)
|
||||
(~(del by peers.str) [our.bol cir.rum])
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%circles cis] sta])
|
||||
::
|
||||
::
|
||||
:: %circle: fill remote configs with message data
|
||||
::
|
||||
%circle
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%circles cis] str])
|
||||
::
|
||||
++ handle-rumor-circle
|
||||
|= [wir=wire rum=rumor:hall]
|
||||
^- (quip move _this)
|
||||
?> ?=(%circle -.rum)
|
||||
=* sto rum.rum
|
||||
?+ -.sto
|
||||
?+ -.rum.rum
|
||||
[~ this]
|
||||
::
|
||||
:: %gram:
|
||||
:: %gram: new message
|
||||
::
|
||||
%gram
|
||||
%gram
|
||||
(handle-rumor-circle-gram wir rum.rum)
|
||||
::
|
||||
:: status: status update
|
||||
::
|
||||
%status
|
||||
(handle-rumor-circle-status rum.rum)
|
||||
::
|
||||
:: %config: config has changed
|
||||
::
|
||||
%config
|
||||
?+ -.dif.rum.rum
|
||||
[~ this]
|
||||
::
|
||||
:: %full: set all of config without side effects
|
||||
::
|
||||
%full
|
||||
=* conf cof.dif.rum.rum
|
||||
=. configs.str (~(put by configs.str) cir.rum.rum `conf)
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%config cir.rum.rum conf] str])
|
||||
::
|
||||
:: %read: the read count of one of our configs has changed
|
||||
::
|
||||
%read
|
||||
(handle-rumor-circle-config-read rum.rum)
|
||||
::
|
||||
:: %source: the sources of our inbox have changed
|
||||
::
|
||||
%source
|
||||
(handle-rumor-circle-config-source rum.rum)
|
||||
::
|
||||
:: %remove: remove a circle
|
||||
::
|
||||
%remove
|
||||
=. str
|
||||
%= str
|
||||
configs (~(del by configs.str) cir.rum.rum)
|
||||
messages (~(del by messages.str) cir.rum.rum)
|
||||
peers (~(del by peers.str) cir.rum.rum)
|
||||
==
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%delete cir.rum.rum] str])
|
||||
::
|
||||
==
|
||||
==
|
||||
::
|
||||
++ handle-rumor-circle-gram
|
||||
|= [wir=wire sto=rumor-story:hall]
|
||||
^- (quip move _this)
|
||||
?> ?=(%gram -.sto)
|
||||
=* messages messages.str
|
||||
=/ circle=circle:hall [`@p`(slav %p &2:wir) &3:wir]
|
||||
=/ nes=(unit (list envelope:hall)) (~(get by messages) circle)
|
||||
?~ nes
|
||||
[~ this]
|
||||
=/ sta
|
||||
%= str
|
||||
messages (~(put by messages) circle (snoc u.nes nev.sto))
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%message circle nev.sto] sta])
|
||||
::
|
||||
:: status:
|
||||
::
|
||||
%status
|
||||
=. messages.str (~(put by messages) circle (snoc u.nes nev.sto))
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%message circle nev.sto] str])
|
||||
::
|
||||
++ handle-rumor-circle-status
|
||||
|= sto=rumor-story:hall
|
||||
^- (quip move _this)
|
||||
?> ?=(%status -.sto)
|
||||
=/ upeers=(unit (set @p)) (~(get by peers.str) cir.sto)
|
||||
?~ upeers
|
||||
@ -307,139 +325,86 @@
|
||||
?: =(%remove -.dif.sto)
|
||||
(~(del in u.upeers) who.sto)
|
||||
(~(put in u.upeers) who.sto)
|
||||
=/ sta
|
||||
%= str
|
||||
peers (~(put by peers.str) cir.sto peers)
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%peers cir.sto peers] sta])
|
||||
::
|
||||
:: %config: config has changed
|
||||
::
|
||||
%config
|
||||
=* circ cir.sto
|
||||
::
|
||||
?+ -.dif.sto
|
||||
=. peers.str (~(put by peers.str) cir.sto peers)
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%peers cir.sto peers] str])
|
||||
::
|
||||
++ handle-rumor-circle-config-read
|
||||
|= sto=rumor-story:hall
|
||||
^- (quip move _this)
|
||||
?> ?=(%config -.sto)
|
||||
?> ?=(%read -.dif.sto)
|
||||
?: =(cir.sto [our.bol %inbox])
|
||||
:: ignore when cir.sto is inbox
|
||||
[~ this]
|
||||
=/ conf=(unit config:hall) (~(got by configs.str) cir.sto)
|
||||
?~ conf
|
||||
[~ this]
|
||||
=. red.u.conf red.dif.sto
|
||||
=. configs.str (~(put by configs.str) cir.sto conf)
|
||||
:_ this(str str)
|
||||
(send-chat-update [[%config cir.sto u.conf] str])
|
||||
::
|
||||
:: +handle-rumor-circle-config-source: on source, subscribe and add to inbox
|
||||
:: on remove source, send delete and remove data from state
|
||||
::
|
||||
++ handle-rumor-circle-config-source
|
||||
|= sto=rumor-story:hall
|
||||
^- (quip move _this)
|
||||
?> ?=(%config -.sto)
|
||||
?> ?=(%source -.dif.sto)
|
||||
?. =(cir.sto [our.bol %inbox])
|
||||
:: ignore when cir.sto is not inbox
|
||||
[~ this]
|
||||
=* circ cir.src.dif.sto
|
||||
=/ wir /circle/(scot %p hos.circ)/[nom.circ]/grams/0/config/group
|
||||
:: we've added a source to our inbox
|
||||
::
|
||||
:: %full: set all of config without side effects
|
||||
::
|
||||
%full
|
||||
=* conf cof.dif.sto
|
||||
=/ sta
|
||||
%= str
|
||||
configs (~(put by configs.str) circ `conf)
|
||||
?: add.dif.sto
|
||||
=. str
|
||||
%_ str
|
||||
src.inbox (~(put in src.inbox.str) src.dif.sto)
|
||||
::
|
||||
configs
|
||||
?: (~(has by configs.str) circ)
|
||||
configs.str
|
||||
(~(put by configs.str) circ ~)
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%config circ conf] sta])
|
||||
::
|
||||
:: %read: the read count of one of our configs has changed
|
||||
::
|
||||
%read
|
||||
?: =(circ [our.bol %inbox])
|
||||
:: ignore when circ is inbox
|
||||
[~ this]
|
||||
=/ uconf/(unit config:hall) (~(got by configs.str) circ)
|
||||
?~ uconf
|
||||
[~ this]
|
||||
=/ conf/config:hall
|
||||
%= u.uconf
|
||||
red red.dif.sto
|
||||
==
|
||||
=/ sta
|
||||
%= str
|
||||
configs (~(put by configs.str) circ `conf)
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%config circ conf] sta])
|
||||
::
|
||||
:: %source: the sources of our inbox have changed
|
||||
::
|
||||
%source
|
||||
?. =(circ [our.bol %inbox])
|
||||
:: ignore when circ is not inbox
|
||||
[~ this]
|
||||
=* affectedcir cir.src.dif.sto
|
||||
=/ newwir/wire
|
||||
/circle/(scot %p hos.affectedcir)/[nom.affectedcir]/grams/0/config/group
|
||||
=/ pat/path /circle/[nom.affectedcir]/grams/0/config/group
|
||||
:: we've added a source to our inbox
|
||||
::
|
||||
?: add.dif.sto
|
||||
=/ newinbox %= inbox.str
|
||||
src (~(put in src.inbox.str) src.dif.sto)
|
||||
==
|
||||
=/ sta
|
||||
%= str
|
||||
inbox newinbox
|
||||
::
|
||||
configs
|
||||
?: (~(has by configs.str) affectedcir)
|
||||
configs.str
|
||||
(~(put by configs.str) affectedcir ~)
|
||||
==
|
||||
::
|
||||
:_ this(str sta)
|
||||
%+ weld
|
||||
[ost.bol %peer newwir [hos.affectedcir %hall] pat]~
|
||||
(send-chat-update [[%inbox newinbox] sta])
|
||||
=/ pax /circle/[nom.circ]/grams/0/config/group
|
||||
:_ this(str str)
|
||||
:- [ost.bol %peer wir [hos.circ %hall] pax]
|
||||
(send-chat-update [[%inbox inbox.str] str])
|
||||
::
|
||||
=. src.inbox.str (~(del in src.inbox.str) src.dif.sto)
|
||||
:: we've removed a source from our inbox
|
||||
::
|
||||
=. str
|
||||
%= str
|
||||
inbox inbox.str
|
||||
::
|
||||
=/ newinbox %= inbox.str
|
||||
src (~(del in src.inbox.str) src.dif.sto)
|
||||
configs (~(del by configs.str) circ)
|
||||
messages (~(del by messages.str) circ)
|
||||
peers (~(del by peers.str) circ)
|
||||
==
|
||||
:: we've removed a source from our inbox
|
||||
=/ fake=circle:hall
|
||||
[our.bol (crip (weld (trip 'hall-internal-') (trip nom.circ)))]
|
||||
::
|
||||
:_ this(str str)
|
||||
;: weld
|
||||
^- (list move)
|
||||
:: just forward the delete to our clients
|
||||
::
|
||||
=/ sta
|
||||
%= str
|
||||
inbox newinbox
|
||||
::
|
||||
configs (~(del by configs.str) affectedcir)
|
||||
messages (~(del by messages.str) affectedcir)
|
||||
peers (~(del by peers.str) affectedcir)
|
||||
==
|
||||
=/ fakecir=circle:hall
|
||||
:- our.bol
|
||||
(crip (weld (trip 'hall-internal-') (trip nom.affectedcir)))
|
||||
::
|
||||
?~ (~(get by configs.str) fakecir)
|
||||
:: just forward the delete to our clients
|
||||
::
|
||||
:_ this(str sta)
|
||||
:- [ost.bol %pull newwir [hos.affectedcir %hall] ~]
|
||||
%+ weld
|
||||
(send-chat-update [[%inbox newinbox] sta])
|
||||
(send-chat-update [[%delete affectedcir] sta])
|
||||
?~ (~(get by configs.str) fake)
|
||||
[ost.bol %pull wir [hos.circ %hall] ~]~
|
||||
:: if we get a delete from another ship, delete our fake circle copy
|
||||
::
|
||||
=/ deletefake [%hall-action [%delete nom.fakecir ~]]
|
||||
:_ this(str sta)
|
||||
:- [ost.bol %pull newwir [hos.affectedcir %hall] ~]
|
||||
:- [ost.bol %poke /fake [our.bol %hall] deletefake]
|
||||
%+ weld
|
||||
(send-chat-update [[%inbox newinbox] sta])
|
||||
(send-chat-update [[%delete affectedcir] sta])
|
||||
:- [ost.bol %pull wir [hos.circ %hall] ~]
|
||||
[ost.bol %poke /f [our.bol %hall] [%hall-action [%delete nom.fake ~]]]~
|
||||
::
|
||||
:: %remove: remove a circle
|
||||
::
|
||||
%remove
|
||||
=/ sta
|
||||
%= str
|
||||
configs (~(del by configs.str) circ)
|
||||
messages (~(del by messages.str) circ)
|
||||
peers (~(del by peers.str) circ)
|
||||
==
|
||||
:_ this(str sta)
|
||||
(send-chat-update [[%delete circ] sta])
|
||||
::
|
||||
(send-chat-update [[%inbox inbox.str] str])
|
||||
(send-chat-update [[%delete circ] str])
|
||||
==
|
||||
:: end of branching on dif.sto type
|
||||
==
|
||||
:: end of branching on sto type
|
||||
==
|
||||
:: end of i.wir branching
|
||||
::
|
||||
:: +lient arms
|
||||
::
|
||||
::
|
||||
:: +bound: lient tells us we successfully bound our server to the ~chat url
|
||||
::
|
||||
@ -587,36 +552,36 @@
|
||||
++ send-chat-update
|
||||
|= [upd=update str=streams]
|
||||
^- (list move)
|
||||
=/ updates=(list move)
|
||||
=/ jon (construct-tile-json str)
|
||||
::
|
||||
%+ weld
|
||||
^- (list move)
|
||||
%+ turn (prey:pubsub:userlib /primary bol)
|
||||
|= [=bone *]
|
||||
[bone %diff %chat-update upd]
|
||||
::
|
||||
=/ jon (construct-tile-json str)
|
||||
=/ tile-updates=(list move)
|
||||
%+ turn (prey:pubsub:userlib /chattile bol)
|
||||
|= [=bone *]
|
||||
[bone %diff %json jon]
|
||||
::
|
||||
(weld updates tile-updates)
|
||||
^- (list move)
|
||||
%+ turn (prey:pubsub:userlib /chattile bol)
|
||||
|= [=bone *]
|
||||
[bone %diff %json jon]
|
||||
::
|
||||
++ construct-tile-json
|
||||
|= str=streams
|
||||
^- json
|
||||
=/ numbers/(list [circle:hall @ud])
|
||||
%+ turn ~(tap by messages.str)
|
||||
:- %o
|
||||
%- my
|
||||
:~ ['config' (config-to-json str)]
|
||||
::
|
||||
:- 'numbers'
|
||||
%- numbers-to-json
|
||||
^- (list [circle:hall @ud])
|
||||
%+ turn ~(tap by messages.str)
|
||||
|= [cir=circle:hall lis=(list envelope:hall)]
|
||||
^- [circle:hall @ud]
|
||||
?~ lis
|
||||
[cir 0]
|
||||
=/ last (snag (dec (lent lis)) `(list envelope:hall)`lis)
|
||||
[cir (add num.last 1)]
|
||||
=/ maptjson=(map @t json)
|
||||
%- my
|
||||
:~ ['config' (config-to-json str)]
|
||||
['numbers' (numbers-to-json numbers)]
|
||||
==
|
||||
[%o maptjson]
|
||||
==
|
||||
::
|
||||
++ launch-poke
|
||||
|= [=path =cord]
|
||||
|
@ -1,8 +1,6 @@
|
||||
/- *chat, hall
|
||||
/+ hall-json
|
||||
|%
|
||||
::
|
||||
::
|
||||
++ msg-to-json
|
||||
=, enjs:format
|
||||
|= upd=update
|
||||
|
Loading…
Reference in New Issue
Block a user