blob: 9390c3547d5bbe9953ee54226ea10b5ddbff9e5d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/- chat
|%
+$ eyre-id @ta
+$ card card:agent:gall
:: cards
++ watch-chat
|= [our=ship =term]
^- card
:* %pass
/listen/[term]
%agent
[our %chat]
%watch
/chat/(scot %p our)/[term]/ui/writs
==
++ leave-chat
|= [our=ship =term]
^- card
[%pass /listen/[term] %agent [our %chat] %leave ~]
++ handle-msg
|= [=wire =sign:agent:gall]
^- (quip card _this)
?. ?=(%fact -.sign) `this
=* mark p.cage.sign
=* vase q.cage.sign
?. ?=(%writ-diff p.cage.sign) `this
=^ cards state
(handle-chat-update:do source !<(diff:writs:chat vase))
[cards this]
==
==
++ handle-chat-update
|= =diff:writs:chat ^- (list card)
:: TODO other stuff
?. ?=(%add -.q.diff) `this
(send-to-viewers p.q.diff)
++ send-to-viewers
|= =memo:chat
=/ ids=(set eyre-id) (sy ~['lol'])
:_ ~
:* %give
%fact
::
%+ turn ~(tap in ids)
|= =eyre-id
/http-response/[eyre-id]
::
%http-response-data
!> ^- (unit octs)
%- some
(make-stream-data (scot %uw (jam memo)))
==
+$ channel-event
$% $>(%poke-ack sign:agent:gall)
$>(%watch-ack sign:agent:gall)
$>(%kick sign:agent:gall)
[%fact =desk =mark =noun]
==
++ channel-event-to-tape
|= [request-id=@ud =channel-event]
=+ [request-id channel-event]
(scow %uw (jam -))
++ make-stream-data
|= =cord
^- octs
%- as-octs:mimes:html
(rap 3 'data:' cord '\0a\0a' ~)
:: user management
:: ++ ban-comet
:: |= who=ship
:: ^- (quip card _state)
:: :- ~
:: %_ state
:: guests (~(del by guests) who)
:: banned (~(uni in banned) (~(get ju guests) who))
:: ==
:: ::
:: ++ unban-ip
:: |= =address:eyre
:: ^- (quip card _state)
:: :- ~
:: %_ state
:: banned (~(del in banned) address.action)
:: ==
--
|