mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-14 04:19:22 +03:00
Removing chat clutter
This commit is contained in:
parent
96411cdf33
commit
88fac8916c
@ -1,496 +0,0 @@
|
|||||||
/- mess,user,users,zing,zong,zung
|
|
||||||
::
|
|
||||||
[sed=!>(.) .]
|
|
||||||
::
|
|
||||||
!:
|
|
||||||
=> |%
|
|
||||||
++ axle
|
|
||||||
$: %0
|
|
||||||
air=(map path station)
|
|
||||||
pom=(unit ship)
|
|
||||||
sen=(set mess)
|
|
||||||
$= fal
|
|
||||||
$: eth=?
|
|
||||||
qit=?
|
|
||||||
let=?
|
|
||||||
sat=path
|
|
||||||
pad=ship
|
|
||||||
==
|
|
||||||
==
|
|
||||||
++ blitz
|
|
||||||
$% [%prompt p=cord q=prom r=cord]
|
|
||||||
[%tang p=(list tank)]
|
|
||||||
[%txt p=cord]
|
|
||||||
[%zong p=zong]
|
|
||||||
[%user p=user]
|
|
||||||
==
|
|
||||||
++ chat :: user action
|
|
||||||
$% [%all p=mess] :: say
|
|
||||||
[%back p=?(%da %dr %ud) q=@] :: backlog
|
|
||||||
[%def p=mess] :: use current prompt
|
|
||||||
[%how ~] :: help
|
|
||||||
[%priv p=@p q=mess] :: private
|
|
||||||
[%who ~] :: who
|
|
||||||
== ::
|
|
||||||
++ chat-arg
|
|
||||||
$? %monitor %quiet %noob %leet %time
|
|
||||||
[%s p=path]
|
|
||||||
[%tower p=ship]
|
|
||||||
==
|
|
||||||
++ idad ,[p=@p q=@t]
|
|
||||||
++ iron
|
|
||||||
$% [%prompt p=cord q=prom r=cord]
|
|
||||||
[%txt p=cord]
|
|
||||||
[%zongs p=(list zong)]
|
|
||||||
[%users p=users]
|
|
||||||
[%hymn p=manx] :: HTML format
|
|
||||||
[%json p=json] :: JSON format
|
|
||||||
==
|
|
||||||
++ gift
|
|
||||||
$% [%mean ares]
|
|
||||||
[%nice ~]
|
|
||||||
[%rush blitz]
|
|
||||||
[%rust iron]
|
|
||||||
==
|
|
||||||
++ hapt ,[p=ship q=path]
|
|
||||||
++ move ,[p=bone q=(mold note gift)]
|
|
||||||
++ note
|
|
||||||
$? $: %g
|
|
||||||
$% [%mess p=hapt q=ship r=cage]
|
|
||||||
[%nuke p=hapt q=ship]
|
|
||||||
[%show p=hapt q=ship r=path]
|
|
||||||
[%took p=hapt q=ship]
|
|
||||||
== == ==
|
|
||||||
++ sign
|
|
||||||
$? $: %g
|
|
||||||
$% [%mean p=ares]
|
|
||||||
[%nice ~]
|
|
||||||
$: %rush
|
|
||||||
$= p
|
|
||||||
$% [%txt p=cord]
|
|
||||||
[%user p=user]
|
|
||||||
[%zong p=zong]
|
|
||||||
== ==
|
|
||||||
$: %rust
|
|
||||||
$= p
|
|
||||||
$% [%txt p=cord]
|
|
||||||
[%users p=users]
|
|
||||||
[%zongs p=(list zong)]
|
|
||||||
== ==
|
|
||||||
== == ==
|
|
||||||
++ station
|
|
||||||
$: msg=(list zong)
|
|
||||||
sub=(unit bone)
|
|
||||||
ami=(map ,@p ,@t)
|
|
||||||
==
|
|
||||||
--
|
|
||||||
!:
|
|
||||||
::::
|
|
||||||
::
|
|
||||||
=| lat=@da
|
|
||||||
|%
|
|
||||||
++ chat
|
|
||||||
=<
|
|
||||||
%+ cook |=(a=^chat a)
|
|
||||||
;~ pose
|
|
||||||
(cold [%how ~] wut)
|
|
||||||
(cold [%who ~] tis)
|
|
||||||
(stag %back dat)
|
|
||||||
(stag %priv ;~(plug ;~(pfix sig fed:ag) ;~(pfix ace mess)))
|
|
||||||
(stag %all ;~(pfix pam mess))
|
|
||||||
(stag %def mess)
|
|
||||||
==
|
|
||||||
|%
|
|
||||||
++ dat
|
|
||||||
%+ sear
|
|
||||||
|= p=coin
|
|
||||||
?. ?=([%$ ?(%da %dr %ud) @] p) ~
|
|
||||||
(some +.p)
|
|
||||||
;~(pfix bas bas (star ace) nuck:so)
|
|
||||||
::
|
|
||||||
++ expn
|
|
||||||
%- sear
|
|
||||||
:_ text
|
|
||||||
|= a=@t
|
|
||||||
^- (unit ,[p=@t q=tank])
|
|
||||||
=+ hun=(rush a wide:(vang | &1:% &2:% (scot %da lat) |3:%))
|
|
||||||
?~ hun ~
|
|
||||||
?~(a ~ [~ a (sell (slap sed u.hun))])
|
|
||||||
::
|
|
||||||
++ mess
|
|
||||||
%+ cook |=(a=^mess a)
|
|
||||||
;~ pose
|
|
||||||
(stag %do ;~(pfix pat text))
|
|
||||||
(stag %exp ;~(pfix hax expn))
|
|
||||||
(stag %do (full (easy '')))
|
|
||||||
(stag %say text)
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ text (boss 256 (star prn))
|
|
||||||
--
|
|
||||||
--
|
|
||||||
!:
|
|
||||||
::::
|
|
||||||
::
|
|
||||||
|_ [hid=hide axle]
|
|
||||||
++ exec-cmd
|
|
||||||
|= [ost=bone txt=cord]
|
|
||||||
^- [(list move) _+>]
|
|
||||||
?: =(0 txt) [~ +>.$]
|
|
||||||
=+ rey=(rush txt chat(lat lat.hid))
|
|
||||||
?~ rey
|
|
||||||
[(print %leaf "invalid input") +>.$]
|
|
||||||
|-
|
|
||||||
?- -.u.rey
|
|
||||||
%all =+ ^= mof
|
|
||||||
?~ pom ~
|
|
||||||
(send /out %rush %prompt '& ' %text '')
|
|
||||||
=^ mow +>.^$
|
|
||||||
(poke-zung(pom ~) ost our.hid %mess sat.fal p.u.rey)
|
|
||||||
[(welp mof mow) +>.^$(sen (~(put in sen) p.u.rey))]
|
|
||||||
%back
|
|
||||||
:_ +>.^$
|
|
||||||
%+ send /out :+ %rush %tang
|
|
||||||
%- turn :_ |=(a=zong (zong-to-tank | a))
|
|
||||||
%- flop
|
|
||||||
?- p.u.rey
|
|
||||||
%ud (scag q.u.rey msg:(grab sat.fal))
|
|
||||||
%da (since msg:(grab sat.fal) q.u.rey)
|
|
||||||
%dr (since msg:(grab sat.fal) (sub lat.hid q.u.rey))
|
|
||||||
==
|
|
||||||
%def $(u.rey ?~(pom [%all p.u.rey] [%priv u.pom p.u.rey]))
|
|
||||||
%priv
|
|
||||||
:_ +>.^$(pom `p.u.rey)
|
|
||||||
:- :* ost %pass /priv %g
|
|
||||||
%mess [p.u.rey %chat ~] our.hid %mess !>(q.u.rey)
|
|
||||||
==
|
|
||||||
?: =(pom [~ p.u.rey]) ~
|
|
||||||
(send /out %rush %prompt (cat 3 (scot %p p.u.rey) ' ') %text '')
|
|
||||||
%who
|
|
||||||
:_ +>.^$
|
|
||||||
%^ print %rose [", " "" ""]
|
|
||||||
%+ turn (~(tap by ami:(grab sat.fal)))
|
|
||||||
|= a=idad
|
|
||||||
:- %leaf
|
|
||||||
%- trip %^ cat 3 %^ cat 3 (scot %p p.a) ' ' q.a
|
|
||||||
%how
|
|
||||||
:_ +>.^$
|
|
||||||
%+ send /out :+ %rush %tang
|
|
||||||
%- turn :_ |=(a=@t [%leaf (trip a)])
|
|
||||||
%- lore
|
|
||||||
%- (hard ,@t)
|
|
||||||
.^(/cx/(scot %p our.hid)/main/(scot %da lat.hid)/pub/src/doc/chat/help/txt)
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ grab
|
|
||||||
|= sta=path
|
|
||||||
(fall (~(get by air) sta) *station)
|
|
||||||
::
|
|
||||||
++ iden
|
|
||||||
|= her=ship
|
|
||||||
^- tape
|
|
||||||
?: let.fal (scow %p her)
|
|
||||||
=+ ide=(trip (fall (~(get by ami:(grab sat.fal)) her) ''))
|
|
||||||
%+ welp (scow %p her)
|
|
||||||
?~ ide ""
|
|
||||||
[' ' ide]
|
|
||||||
::
|
|
||||||
++ peer
|
|
||||||
|= [ost=bone you=ship pax=path]
|
|
||||||
^- [(list move) _+>]
|
|
||||||
:_ +>.$
|
|
||||||
?: ?=(~ pax)
|
|
||||||
[ost %give %rust %hymn page]~
|
|
||||||
=+ ya=(grab t.pax)
|
|
||||||
?+ i.pax !!
|
|
||||||
%out
|
|
||||||
[ost %give %rust %prompt '& ' %text '']~
|
|
||||||
%private
|
|
||||||
~
|
|
||||||
%amigos
|
|
||||||
[ost %give %rust %users (~(tap by ami.ya))]~
|
|
||||||
%mensajes
|
|
||||||
[ost %give %rust %zongs msg.ya]~
|
|
||||||
==
|
|
||||||
++ page
|
|
||||||
^- manx
|
|
||||||
;html
|
|
||||||
;head
|
|
||||||
;title: Radio
|
|
||||||
;script(type "text/javascript", src "//use.typekit.net/fkv0sjk.js");
|
|
||||||
;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs".
|
|
||||||
"/jquery/2.1.1/jquery.min.js");
|
|
||||||
;script:'try{Typekit.load();}catch(e){}'
|
|
||||||
;link(rel "stylesheet", type "text/css", href "/main/pub/src/chat/main.css");
|
|
||||||
==
|
|
||||||
;body
|
|
||||||
;div#c;
|
|
||||||
;script(type "text/javascript", src "/main/lib/urb.js");
|
|
||||||
;script(type "text/javascript", src "/main/pub/src/chat/main.js");
|
|
||||||
==
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ poke-chat-args
|
|
||||||
|= [ost=bone you=ship arg=(list chat-arg)]
|
|
||||||
^- [(list move) _+>]
|
|
||||||
=. fal (process-args arg)
|
|
||||||
=^ mow +>.$ (poke-zung ost you %init pad.fal sat.fal)
|
|
||||||
:_ +>.$
|
|
||||||
%+ welp
|
|
||||||
:+ [ost %pass /cmd-in %g %show [our.hid +.imp.hid] you /in/[-.imp.hid]]
|
|
||||||
[ost %pass /private %g %show [our.hid /chat] you /private]
|
|
||||||
(send /out %rush %prompt '& ' %text '')
|
|
||||||
mow
|
|
||||||
::
|
|
||||||
++ poke-mess
|
|
||||||
|= [ost=bone you=ship mes=mess]
|
|
||||||
^- [(list move) _+>]
|
|
||||||
[[[ost %give %nice ~] (spam & %mess lat.hid you mes)] +>.$]
|
|
||||||
::
|
|
||||||
++ poke-zung :: nice should be moved out
|
|
||||||
|= [ost=bone you=ship zug=zung]
|
|
||||||
^- [(list move) _+>]
|
|
||||||
?. =(you our.hid)
|
|
||||||
[[ost %give %mean ~ %no-sos-mi-amigo ~]~ +>.$]
|
|
||||||
?- -.zug
|
|
||||||
%mess
|
|
||||||
:: ~& [%send-mess zug]
|
|
||||||
:_ +>.$ :_ ~
|
|
||||||
:* ost %pass /mesg %g
|
|
||||||
%mess [pad.fal %radio ~] you %zing !>(zug)
|
|
||||||
==
|
|
||||||
::
|
|
||||||
%init
|
|
||||||
=+ ya=(grab q.zug)
|
|
||||||
?: =(sub.ya ~)
|
|
||||||
=. pad.fal p.zug
|
|
||||||
=. sub.ya `ost
|
|
||||||
=. air (~(put by air) q.zug ya)
|
|
||||||
:_ +>.$
|
|
||||||
:~
|
|
||||||
:* ost %pass radi-m/q.zug %g
|
|
||||||
%show [[p.zug /radio] you mensajes/q.zug]
|
|
||||||
==
|
|
||||||
:* ost %pass radi-a/q.zug %g
|
|
||||||
%show [[p.zug /radio] you amigos/q.zug]
|
|
||||||
==
|
|
||||||
==
|
|
||||||
[[ost %give %nice ~]~ +>.$]
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ pull
|
|
||||||
|= ost=bone
|
|
||||||
^- [(list move) _+>]
|
|
||||||
?: ?=([* ~ ~] sup.hid)
|
|
||||||
:_ +>.$(pad.fal *@p, air ~)
|
|
||||||
%- ^zing %+ turn (~(tap by air))
|
|
||||||
|= [pax=path sta=station]
|
|
||||||
?~ sub.sta
|
|
||||||
~
|
|
||||||
:~ [u.sub.sta %pass radi-a/pax %g %nuke [[pad.fal /radio] our.hid]]
|
|
||||||
[u.sub.sta %pass radi-m/pax %g %nuke [[pad.fal /radio] our.hid]]
|
|
||||||
==
|
|
||||||
[~ +>.$]
|
|
||||||
::
|
|
||||||
++ took
|
|
||||||
|= [ost=bone pax=path imp=path moz=(list move)]
|
|
||||||
:_ +>.$
|
|
||||||
:_(moz [ost %pass pax %g %took [our.hid imp] our.hid])
|
|
||||||
::
|
|
||||||
++ pour
|
|
||||||
|= [ost=bone pax=path sih=*]
|
|
||||||
^- [(list move) _+>]
|
|
||||||
:: ~& sih=sih
|
|
||||||
=+ sih=((hard sign) sih)
|
|
||||||
?~ pax ~& %chat-pour-strange-path !!
|
|
||||||
:: ~& [%pour-mess pax]
|
|
||||||
?+ i.pax ~& %chat-pour-strange-path !!
|
|
||||||
%cmd-in
|
|
||||||
?- +<.sih
|
|
||||||
%nice [~ +>.$]
|
|
||||||
%mean [(send /out +.sih) +>.$]
|
|
||||||
?(%rush %rust)
|
|
||||||
?> ?=(%txt -.p.sih)
|
|
||||||
=^ moz +>.$ (exec-cmd ost p.p.sih)
|
|
||||||
(took ost pax +.imp.hid moz)
|
|
||||||
==
|
|
||||||
::
|
|
||||||
?(%mesg %priv)
|
|
||||||
?> ?=(?(%mean %nice) +<.sih)
|
|
||||||
[[ost %give +.sih]~ +>.$]
|
|
||||||
::
|
|
||||||
%private
|
|
||||||
?: ?=(?(%nice %mean) +<.sih)
|
|
||||||
[~ +>.$]
|
|
||||||
?> ?=(%rush +<.sih)
|
|
||||||
?> ?=(%zong -.p.sih)
|
|
||||||
(took ost pax /chat (print (zong-to-tank & p.p.sih)))
|
|
||||||
::
|
|
||||||
?(%radi-a %radi-m)
|
|
||||||
?: ?=(%nice +<.sih)
|
|
||||||
:_ +>.$
|
|
||||||
?: ?=(%radi-a i.pax) ~
|
|
||||||
[ost %give +.sih]~
|
|
||||||
?: ?=(%mean +<.sih)
|
|
||||||
:_ +>.$ :_ ~
|
|
||||||
=- ~& [%trying-again -] -
|
|
||||||
:* ost %pass pax %g %show
|
|
||||||
[pad.fal /radio] our.hid
|
|
||||||
?-(i.pax %radi-a %amigos, %radi-m %mensajes)
|
|
||||||
sat.fal
|
|
||||||
==
|
|
||||||
=+ ya=(grab t.pax)
|
|
||||||
=. ya
|
|
||||||
?- i.pax
|
|
||||||
%radi-a
|
|
||||||
%_ ya
|
|
||||||
ami
|
|
||||||
^- (set idad)
|
|
||||||
?- +<.sih
|
|
||||||
%rust ?>(?=(%users -.p.sih) (sa p.p.sih))
|
|
||||||
%rush
|
|
||||||
?> ?=(%user -.p.sih)
|
|
||||||
?- -.p.p.sih
|
|
||||||
%in (~(put by ami.ya) p.p.p.sih)
|
|
||||||
%out (~(del by ami.ya) p.p.p.p.sih)
|
|
||||||
==
|
|
||||||
==
|
|
||||||
==
|
|
||||||
%radi-m
|
|
||||||
%_ ya
|
|
||||||
msg
|
|
||||||
^- (list zong)
|
|
||||||
?- +<.sih
|
|
||||||
%rush ?>(?=(%zong -.p.sih) [p.p.sih msg.ya])
|
|
||||||
%rust ?>(?=(%zongs -.p.sih) p.p.sih)
|
|
||||||
==
|
|
||||||
==
|
|
||||||
==
|
|
||||||
=+ ^= pout ?:(=(i.pax %radi-a) %amigos %mensajes)
|
|
||||||
=. air (~(put by air) t.pax ya)
|
|
||||||
=+ mow=(send [pout t.pax] +.sih)
|
|
||||||
=< (took ost pax /radio mow)
|
|
||||||
:: =< [mow +>.$]
|
|
||||||
:: XX yes, I just used an inline comment
|
|
||||||
:: XX and multiple XX's. why? because
|
|
||||||
:: XX tmi is incredibly lame.
|
|
||||||
^+ .
|
|
||||||
?: =(%zong -.p.sih)
|
|
||||||
=+ zog=((hard zong) p.p.sih)
|
|
||||||
:: ?: &(=(our.hid q.zog) (~(has in sen) r.zog))
|
|
||||||
:: + :: suppress own messages
|
|
||||||
:: ?: &(=(our.hid q.zog) =(`r.zog ~(top to sen)))
|
|
||||||
:: %_(+ sen ^+(sen ~(nap to sen)))
|
|
||||||
%_ +
|
|
||||||
mow
|
|
||||||
(welp mow (print (zong-to-tank | zog)))
|
|
||||||
==
|
|
||||||
?: =(%zongs -.p.sih)
|
|
||||||
=+ zos=(scag 200 ((hard (list zong)) p.p.sih))
|
|
||||||
|- ^+ +>.$
|
|
||||||
?: =(~ zos) +>.$ :: XX tm freakin i
|
|
||||||
=+ zoy=((hard zong) -.zos)
|
|
||||||
=. +>.$ $(zos +.zos)
|
|
||||||
?: &(=(our.hid &3.zoy) (~(has in sen) &4.zoy))
|
|
||||||
+>.$
|
|
||||||
:: ?: &(=(our.hid &3.zoy) =(`&4.zoy ~(top to sen)))
|
|
||||||
:: %_(+>.$ sen `(qeu mess)`~(nap to sen))
|
|
||||||
%_ +>.$
|
|
||||||
mow
|
|
||||||
(welp mow (print (zong-to-tank | zoy)))
|
|
||||||
==
|
|
||||||
?: =(%user -.p.sih)
|
|
||||||
=+ use=((hard user) p.p.sih)
|
|
||||||
%_ +
|
|
||||||
mow
|
|
||||||
?: let.fal ~
|
|
||||||
%+ print %leaf
|
|
||||||
%+ weld
|
|
||||||
?: eth.fal "" (timestamp lat.hid)
|
|
||||||
%+ weld "{(iden p.p.use)} "
|
|
||||||
?- -.use
|
|
||||||
%in "comes on the air"
|
|
||||||
%out "signs off"
|
|
||||||
==
|
|
||||||
==
|
|
||||||
. :: XX users?
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ process-args
|
|
||||||
|= arg=(list chat-arg)
|
|
||||||
^- [? ? ? path ship]
|
|
||||||
%+ roll arg
|
|
||||||
=< .(|4.b (sein our.hid))
|
|
||||||
|= [a=chat-arg b=[? ? ? path ship]]
|
|
||||||
?- a
|
|
||||||
%time b(&1 |)
|
|
||||||
%monitor b(&2 |)
|
|
||||||
%quiet b(&2 &)
|
|
||||||
%noob b(&3 |)
|
|
||||||
%leet b(&3 &)
|
|
||||||
[%s *] b(&4 p.a)
|
|
||||||
[%tower *] b(|4 p.a)
|
|
||||||
==
|
|
||||||
::
|
|
||||||
++ print |=(a=tank (send /out %rush %tang [a]~))
|
|
||||||
++ send
|
|
||||||
|= [pax=path msg=gift]
|
|
||||||
^- (list move)
|
|
||||||
:: ~& [%send pus.hid]
|
|
||||||
%+ turn (~(tap in (~(get ju pus.hid) pax)))
|
|
||||||
|=(ost=bone [ost %give msg])
|
|
||||||
::
|
|
||||||
++ since
|
|
||||||
|= [ya=msg=(list zong) tim=@da]
|
|
||||||
|- ^- (list zong)
|
|
||||||
?: |(?=(~ msg.ya) (lth p.i.msg.ya tim)) ~
|
|
||||||
[i.msg.ya $(msg.ya t.msg.ya)]
|
|
||||||
::
|
|
||||||
++ spam
|
|
||||||
|= [pri=? zog=zong]
|
|
||||||
^- (list move)
|
|
||||||
%+ welp
|
|
||||||
(send /private %rush %zong zog)
|
|
||||||
%+ welp
|
|
||||||
(print (zong-to-tank pri zog))
|
|
||||||
%+ murn (~(tap by sup.hid))
|
|
||||||
|= [ost=bone her=ship pax=path]
|
|
||||||
?~ pax ~
|
|
||||||
?. ?=(%mensajes i.pax) ~
|
|
||||||
(some [ost %give %rush %zong zog])
|
|
||||||
::
|
|
||||||
++ timestamp
|
|
||||||
|= t=@da
|
|
||||||
=+ da=(yell t)
|
|
||||||
"{?:((gth 10 h.da) "0" "")}{(scow %ud h.da)}:".
|
|
||||||
"{?:((gth 10 m.da) "0" "")}{(scow %ud m.da)} "
|
|
||||||
::
|
|
||||||
++ zong-to-tank
|
|
||||||
|= [pri=? zog=zong]
|
|
||||||
^- tank
|
|
||||||
=+ pre=?.(pri "" "(private) ")
|
|
||||||
?- -.r.zog
|
|
||||||
%do
|
|
||||||
=+ mes=?:(=(0 p.r.zog) "remains quietly present" (trip p.r.zog))
|
|
||||||
:- %leaf
|
|
||||||
%+ weld
|
|
||||||
?: eth.fal "" (timestamp p.zog)
|
|
||||||
"{pre}{(iden q.zog)} {mes}"
|
|
||||||
::
|
|
||||||
%exp
|
|
||||||
:~ %rose
|
|
||||||
[" " "" ""]
|
|
||||||
:- %leaf
|
|
||||||
%+ weld
|
|
||||||
?: eth.fal "" (timestamp p.zog)
|
|
||||||
"{pre}{(iden q.zog)} {(trip p.r.zog)}"
|
|
||||||
q.r.zog
|
|
||||||
==
|
|
||||||
::
|
|
||||||
%say
|
|
||||||
:- %leaf
|
|
||||||
%+ weld
|
|
||||||
?: eth.fal "" (timestamp p.zog)
|
|
||||||
"{pre}{(iden q.zog)}: {(trip p.r.zog)}"
|
|
||||||
==
|
|
||||||
--
|
|
@ -12,5 +12,5 @@ is a general-purpose computing stack designed to live in the cloud.
|
|||||||
------------------------------------------------------------------------
|
------------------------------------------------------------------------
|
||||||
|
|
||||||
If you're new to the system, take a look at some of the
|
If you're new to the system, take a look at some of the
|
||||||
[guides](doc/guide) to get oriented. Come join us on `:chat` to ask
|
[guides](doc/guide) to get oriented. Come join us on `:talk` in the
|
||||||
questions and get help.
|
`/urbit-meta` channel to ask questions and get help.
|
||||||
|
@ -982,8 +982,8 @@ that, we handle the `/q/ge` and `/q/gh` cases for gall requests and
|
|||||||
responses, respectively.
|
responses, respectively.
|
||||||
|
|
||||||
In both cases, we require the next term in the path to be the name of
|
In both cases, we require the next term in the path to be the name of
|
||||||
the intended recipient `%gall` app. Thus, a message to `/q/ge/chat` for
|
the intended recipient `%gall` app. Thus, a message to `/q/ge/talk` for
|
||||||
example, will send a message to the chat app.
|
example, will send a message to the talk app.
|
||||||
|
|
||||||
We then send a message to the app itself. The message is either a
|
We then send a message to the app itself. The message is either a
|
||||||
`%rote` or a `%roth` for a request and a response, respectively. The
|
`%rote` or a `%roth` for a request and a response, respectively. The
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
|
XX The CLI is under heavy development with, with pieces being folded
|
||||||
|
into the "window manager" `sole` and the new cli `dojo`. Don't expect
|
||||||
|
any of the following to work as described.
|
||||||
|
|
||||||
This guide is intended to get you oriented in the Arvo command prompt
|
This guide is intended to get you oriented in the Arvo command prompt
|
||||||
and give you a tour of some basic utilities. The command prompt comes in
|
and give you a tour of some basic utilities. The command prompt comes in
|
||||||
two flavors, in a web browser and in a terminal. For the most part
|
two flavors, in a web browser and in a terminal. For the most part
|
||||||
they're the same, except that in a browser you can evaluate tall-form
|
they're the same, except that in a browser you can evaluate tall-form
|
||||||
Hoon expressions but you can't run readline apps, such as `:chat`.
|
Hoon expressions but you can't run readline apps, such as `:talk`.
|
||||||
|
|
||||||
Every Arvo command prompt is also a Hoon REPL. The command line is a
|
Every Arvo command prompt is also a Hoon REPL. The command line is a
|
||||||
great place to test out your hoon knowledge. In this guide we're just
|
great place to test out your hoon knowledge. In this guide we're just
|
||||||
going to talk about some basic system utilities and get comfortable
|
going to talk about some basic system utilities and get comfortable
|
||||||
moving around in `%clay`. If you'd just like to see a list of
|
moving around in `%clay`. If you'd just like to see a list of
|
||||||
command-line utilities, you can find the Arvo man pages [here]().
|
command-line utilities, you can find the Arvo man pages
|
||||||
|
[here](../arvo/util.md).
|
||||||
|
|
||||||
This rudimentary tour should work well in both places.
|
This rudimentary tour should work well in both places.
|
||||||
|
|
||||||
@ -96,37 +101,54 @@ Here you can see that our files are synced back to unix as they are
|
|||||||
changed in urbit, and vice-versa. As you change files in unix you'll see
|
changed in urbit, and vice-versa. As you change files in unix you'll see
|
||||||
those changes appear in `%clay`.
|
those changes appear in `%clay`.
|
||||||
|
|
||||||
my-pier/talsur-todres/$ ls main/app/
|
my-pier/talsur-todres/$ ls base/app/
|
||||||
bang grep poke solid unsync
|
bang grep peek solid tweet
|
||||||
began hi radio sync verb
|
began helm poke sync twit
|
||||||
begin into reload talk ye
|
begin hi pope talk twitter-auth
|
||||||
cat label reset terminal
|
cat into reboot tease twitter-feed
|
||||||
chat ls rm test
|
code label reload terminal type
|
||||||
cp mv shell ticket
|
cp ls reset test unsync
|
||||||
my-pier/talsur-todres/$ cat main/app/ls/core.hook
|
curl matrix rm ticket verb
|
||||||
|
dojo mv shell time wipe
|
||||||
|
gnab nop sole tree ye
|
||||||
|
my-pier/talsur-todres/$ cat base/app/ls/core.hook
|
||||||
|
:: ConCATenate file listings
|
||||||
|
::
|
||||||
|
:::: /hook/core/cat/app
|
||||||
|
::
|
||||||
|
/+ sh-utils
|
||||||
|
// /%%%/ls/subdir
|
||||||
!:
|
!:
|
||||||
|
::::
|
||||||
|
::
|
||||||
|_ [hid=hide ~]
|
|_ [hid=hide ~]
|
||||||
++ poke-ls-args
|
++ peer ,_`.
|
||||||
|= [ost=bone you=ship arg=path ~]
|
++ poke--args
|
||||||
=+ lon=((hard arch) .^(%cy arg))
|
%+ args-into-gate .
|
||||||
:_ +>.$
|
|= [arg=(list path)]
|
||||||
:* [ost %pass / %g %cide %$]
|
=- tang/(zing -)
|
||||||
[ost %give %nice ~]
|
%+ turn arg
|
||||||
%+ turn (~(tap by sup.hid))
|
|= pax=path
|
||||||
|= [ost=bone *]
|
^- tang
|
||||||
:^ ost %give %rush
|
=+ ark=;;(arch .^(%cy pax))
|
||||||
:- %tang
|
?^ q.ark
|
||||||
:_ ~
|
:- leaf/(spud pax)
|
||||||
:+ %rose [" " ~ ~]
|
%+ turn (lore ;;(@t .^(%cx pax)))
|
||||||
(turn (~(tap by r.lon) ~) |=([a=@ta b=*] leaf/(trip a)))
|
|=(a=cord leaf/(trip a))
|
||||||
|
?- r.ark :: handle ambiguity
|
||||||
|
~
|
||||||
|
[rose/[" " `~]^~[leaf/"~" (smyt pax)]]~
|
||||||
|
[[@t ~] ~ ~]
|
||||||
|
$(pax (welp pax /[p.n.r.ark]))
|
||||||
|
*
|
||||||
|
=- [palm/[": " ``~]^-]~
|
||||||
|
:~ rose/[" " `~]^~[leaf/"*" (smyt pax)]
|
||||||
|
`tank`(subdir pax r.ark)
|
||||||
|
==
|
||||||
==
|
==
|
||||||
++ peer
|
|
||||||
|=
|
|
||||||
*
|
|
||||||
`+>
|
|
||||||
--
|
--
|
||||||
|
|
||||||
Here you can see that `/main/app` is the main location where our apps
|
Here you can see that `/base/app` is the main location where our apps
|
||||||
are stored, and the contents of the `:ls` app. urbit applications are of
|
are stored, and the contents of the `:ls` app. urbit applications are of
|
||||||
course written in hoon, our naitive programming language. Don't worry
|
course written in hoon, our naitive programming language. Don't worry
|
||||||
about the contents of the file for now. Since changes in unix are synced
|
about the contents of the file for now. Since changes in unix are synced
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
::
|
|
||||||
::
|
|
||||||
:::: /hook/hymn/fab/chat/pub/
|
|
||||||
::
|
|
||||||
^- manx
|
|
||||||
;html
|
|
||||||
;head
|
|
||||||
;meta(charset "utf-8");
|
|
||||||
;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js");
|
|
||||||
;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js");
|
|
||||||
;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/react/0.12.1/react.min.js");
|
|
||||||
;meta(name "viewport", content "width=432, initial-scale=1");
|
|
||||||
;script(type "text/javascript", src "//use.typekit.net/fkv0sjk.js");
|
|
||||||
;script:'''
|
|
||||||
try{Typekit.load();}catch(e){}
|
|
||||||
'''
|
|
||||||
;link(type "text/css", rel "stylesheet", href "/base/pub/radio/src/main.css");
|
|
||||||
;script(type "text/javascript", src "/gop/hart.js");
|
|
||||||
;title: Radio
|
|
||||||
==
|
|
||||||
;body
|
|
||||||
;div#c;
|
|
||||||
;script(type "text/javascript", src "/base/lib/urb.js");
|
|
||||||
;script(type "text/javascript", src "/base/pub/radio/src/main.js");
|
|
||||||
==
|
|
||||||
==
|
|
@ -1,327 +0,0 @@
|
|||||||
@font-face {
|
|
||||||
font-family: "bau";
|
|
||||||
src: url("https://s3-us-west-2.amazonaws.com/urbit/bauregular.otf");
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "bau";
|
|
||||||
src: url("https://s3-us-west-2.amazonaws.com/urbit/bauregularitalic.otf");
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "bau";
|
|
||||||
src: url("https://s3-us-west-2.amazonaws.com/urbit/baumedium.otf");
|
|
||||||
font-weight: 500;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "bau";
|
|
||||||
src: url("https://s3-us-west-2.amazonaws.com/urbit/baumediumitalic.otf");
|
|
||||||
font-weight: 500;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "bau";
|
|
||||||
src: url("https://s3-us-west-2.amazonaws.com/urbit/baubold.otf");
|
|
||||||
font-weight: 600;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "bau";
|
|
||||||
src: url("https://s3-us-west-2.amazonaws.com/urbit/baubolditalic.otf");
|
|
||||||
font-weight: 600;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
.iden,
|
|
||||||
.time,
|
|
||||||
#length,
|
|
||||||
input.join,
|
|
||||||
.stations {
|
|
||||||
font-family: "source-code-pro";
|
|
||||||
}
|
|
||||||
input {
|
|
||||||
-webkit-appearance: none;
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
height: 100%;
|
|
||||||
font-family: "bau";
|
|
||||||
}
|
|
||||||
#length,
|
|
||||||
.time {
|
|
||||||
font-size: 0.6rem;
|
|
||||||
letter-spacing: 0;
|
|
||||||
font-weight: 200;
|
|
||||||
}
|
|
||||||
input.join,
|
|
||||||
.stations,
|
|
||||||
.iden,
|
|
||||||
#station {
|
|
||||||
font-size: 0.7rem;
|
|
||||||
}
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
font-size: 18px;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
background-color: #fefefe;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
#c {
|
|
||||||
width: 66rem;
|
|
||||||
top: 0;
|
|
||||||
padding: 1rem 1rem 0 1rem;
|
|
||||||
background-color: #fff;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
#stations-container {
|
|
||||||
position: fixed;
|
|
||||||
top: 1rem;
|
|
||||||
left: 1rem;
|
|
||||||
width: 12rem;
|
|
||||||
}
|
|
||||||
#station-container {
|
|
||||||
position: fixed;
|
|
||||||
top: 1rem;
|
|
||||||
left: 54rem;
|
|
||||||
width: 12rem;
|
|
||||||
}
|
|
||||||
#stations-container,
|
|
||||||
#messages-container {
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
#station {
|
|
||||||
width: 18rem;
|
|
||||||
}
|
|
||||||
#station .iden {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.stations {
|
|
||||||
width: 4rem;
|
|
||||||
}
|
|
||||||
.station {
|
|
||||||
display: inline-block;
|
|
||||||
width: 9rem;
|
|
||||||
margin-bottom: 0.3rem;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.station .name {
|
|
||||||
border-bottom: 2px solid transparent;
|
|
||||||
}
|
|
||||||
.station.selected .name {
|
|
||||||
font-weight: 600;
|
|
||||||
border-bottom: 2px solid #000;
|
|
||||||
}
|
|
||||||
.station > div {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
.station .remove {
|
|
||||||
display: none;
|
|
||||||
float: right;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
line-height: 1rem;
|
|
||||||
}
|
|
||||||
.station:hover .remove {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
.join-ctrl {
|
|
||||||
margin-top: 1.2rem;
|
|
||||||
}
|
|
||||||
.join-ctrl input {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
.join-ctrl input::-webkit-input-placeholder {
|
|
||||||
font-weight: 200;
|
|
||||||
}
|
|
||||||
.join-ctrl input {
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
.message {
|
|
||||||
margin-bottom: 0.2rem;
|
|
||||||
}
|
|
||||||
#messages .message:last-child {
|
|
||||||
margin-bottom: 2rem;
|
|
||||||
}
|
|
||||||
#messages .message .time {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
#messages .message:last-child .time,
|
|
||||||
#messages .message:hover .time {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.time {
|
|
||||||
margin-right: 0.6rem;
|
|
||||||
}
|
|
||||||
.member {
|
|
||||||
width: 12rem;
|
|
||||||
margin: 0.3rem 0.6rem 0.3rem 0;
|
|
||||||
}
|
|
||||||
#messages {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
.attr {
|
|
||||||
width: 9rem;
|
|
||||||
text-align: right;
|
|
||||||
margin-right: 2rem;
|
|
||||||
}
|
|
||||||
.mess,
|
|
||||||
.attr,
|
|
||||||
.iden,
|
|
||||||
.attr > div,
|
|
||||||
#station .member div,
|
|
||||||
#writing {
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
.iden > div {
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
.mess,
|
|
||||||
#writing,
|
|
||||||
#length {
|
|
||||||
vertical-align: top;
|
|
||||||
}
|
|
||||||
.mess {
|
|
||||||
font-size: 0.8rem;
|
|
||||||
letter-spacing: 0.03rem;
|
|
||||||
word-wrap: break-word;
|
|
||||||
max-width: 31rem;
|
|
||||||
}
|
|
||||||
.ship,
|
|
||||||
.name {
|
|
||||||
font-weight: 500;
|
|
||||||
}
|
|
||||||
.ship.talk:before {
|
|
||||||
content: "...";
|
|
||||||
margin-left: -1.3rem;
|
|
||||||
margin-right: 0.3rem;
|
|
||||||
width: 1rem;
|
|
||||||
margin-top: -0.4rem;
|
|
||||||
vertical-align: middle;
|
|
||||||
display: inline-block;
|
|
||||||
line-height: 0.2rem;
|
|
||||||
letter-spacing: -0.1rem;
|
|
||||||
}
|
|
||||||
#writing-container {
|
|
||||||
bottom: 4rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
#messages-container,
|
|
||||||
#writing-container {
|
|
||||||
margin-left: 12rem;
|
|
||||||
}
|
|
||||||
.writing #length {
|
|
||||||
display: inline;
|
|
||||||
margin-left: 1rem;
|
|
||||||
margin-top: 1.2rem;
|
|
||||||
}
|
|
||||||
#writing {
|
|
||||||
font-size: 0.8rem;
|
|
||||||
}
|
|
||||||
#writing,
|
|
||||||
input.join {
|
|
||||||
min-height: 1.2rem;
|
|
||||||
padding: 0.3rem 0.6rem;
|
|
||||||
margin-left: -0.6rem;
|
|
||||||
outline: none;
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
}
|
|
||||||
#writing:focus,
|
|
||||||
input.join:focus {
|
|
||||||
background-color: #eee;
|
|
||||||
}
|
|
||||||
.pending {
|
|
||||||
color: #ccc;
|
|
||||||
}
|
|
||||||
#scrolling {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.scrolling #scrolling {
|
|
||||||
position: fixed;
|
|
||||||
bottom: 3rem;
|
|
||||||
left: 2rem;
|
|
||||||
height: 1rem;
|
|
||||||
padding: 1rem;
|
|
||||||
height: 2rem;
|
|
||||||
background-color: #f9f9f9;
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
@media (max-width: 40rem) {
|
|
||||||
#c {
|
|
||||||
left: 0;
|
|
||||||
margin-left: 0;
|
|
||||||
width: 24rem;
|
|
||||||
}
|
|
||||||
#messages-container,
|
|
||||||
#writing-container {
|
|
||||||
margin-left: 1rem;
|
|
||||||
}
|
|
||||||
#stations-container,
|
|
||||||
#station-container {
|
|
||||||
position: relative;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
#stations-container {
|
|
||||||
width: 8rem;
|
|
||||||
}
|
|
||||||
#station-container {
|
|
||||||
left: auto;
|
|
||||||
}
|
|
||||||
.station {
|
|
||||||
width: 5rem;
|
|
||||||
}
|
|
||||||
.attr {
|
|
||||||
display: block;
|
|
||||||
text-align: left;
|
|
||||||
width: 2rem;
|
|
||||||
margin-right: 1rem;
|
|
||||||
}
|
|
||||||
.message {
|
|
||||||
height: 1.6rem;
|
|
||||||
}
|
|
||||||
.join-ctrl input,
|
|
||||||
.stations,
|
|
||||||
.iden,
|
|
||||||
#station {
|
|
||||||
font-size: 0.5rem;
|
|
||||||
}
|
|
||||||
.join-ctrl input {
|
|
||||||
width: 6rem;
|
|
||||||
}
|
|
||||||
.station .remove {
|
|
||||||
display: inline;
|
|
||||||
font-size: 0.6rem;
|
|
||||||
line-height: 0.6rem;
|
|
||||||
}
|
|
||||||
.ship.talk:before {
|
|
||||||
margin-left: -0.3rem;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
.attr {
|
|
||||||
width: 4rem;
|
|
||||||
}
|
|
||||||
.iden > div {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.attr > .time {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.mess {
|
|
||||||
max-width: 12rem;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
#writing {
|
|
||||||
max-width: 12rem;
|
|
||||||
}
|
|
||||||
#station {
|
|
||||||
width: 8rem;
|
|
||||||
}
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
@ -1,29 +0,0 @@
|
|||||||
prompts:
|
|
||||||
& broadcast message to station
|
|
||||||
~ship private message to ship
|
|
||||||
|
|
||||||
type the prompt, then the message. ex: to send to ~hoclur-bicrel, type
|
|
||||||
"~hoclur-bicrel hello mars". prompt changes are persistent.
|
|
||||||
|
|
||||||
actions:
|
|
||||||
@ send message in third person (irc /me)
|
|
||||||
# evaluate expression (ex: "#(add 2 2)")
|
|
||||||
|
|
||||||
other:
|
|
||||||
= show ships in current station
|
|
||||||
\\ 5 show recent backlog (last n messages)
|
|
||||||
\\ ~m5 show recent backlog (using @dr syntax)
|
|
||||||
\\ ~2014.7.4 show recent backlog (using @da syntax)
|
|
||||||
|
|
||||||
command-line parameters:
|
|
||||||
[%tower ~hoclur-bicrel] select haus server (default: ticketing ship)
|
|
||||||
[%s /mars] select a station (default: /)
|
|
||||||
%monitor display entrance and exit notices
|
|
||||||
%quiet do not display entrance and exit notices
|
|
||||||
%leet only display ship names
|
|
||||||
%noob display ship and textual names
|
|
||||||
%time display timestamps for messages
|
|
||||||
|
|
||||||
only one of %monitor and %quiet may be specfied. default behavior is %quiet.
|
|
||||||
only one of %leet and %noob may be specified. default behavior is %leet.
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
|||||||
;html
|
|
||||||
;head
|
|
||||||
;title: Radio Tests
|
|
||||||
;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js");
|
|
||||||
;script(type "text/javascript", src "/gep/hart.js");
|
|
||||||
==
|
|
||||||
;body
|
|
||||||
;script(type "text/javascript", src "/base/lib/urb.js");
|
|
||||||
;script(type "text/javascript", src "/base/pub/src/radio/main.js");
|
|
||||||
==
|
|
||||||
==
|
|
@ -1,14 +0,0 @@
|
|||||||
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"/Users/galen/Documents/Projects/urbit.tlon/chat/pub/src/radio/main.coffee":[function(require,module,exports){
|
|
||||||
$(function() {
|
|
||||||
return window.urb.subscribe({
|
|
||||||
appl: "radio",
|
|
||||||
path: "/"
|
|
||||||
}, function(err, res) {
|
|
||||||
console.log('updates');
|
|
||||||
return console.log(arguments);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},{}]},{},["/Users/galen/Documents/Projects/urbit.tlon/chat/pub/src/radio/main.coffee"]);
|
|
@ -1,6 +1,6 @@
|
|||||||
::
|
::
|
||||||
::
|
::
|
||||||
:::: /hook/hymn/fab/chat/pub/
|
:::: /hook/hymn/fab/talk/pub/
|
||||||
::
|
::
|
||||||
|%
|
|%
|
||||||
++ cdnj
|
++ cdnj
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "urbit-radio",
|
"name": "urbit-talk",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type":"git",
|
"type":"git",
|
||||||
"url":"https://github.com/urbit/urbit"
|
"url":"https://github.com/urbit/urbit"
|
||||||
},
|
},
|
||||||
"description": "urbit radio frontend",
|
"description": "urbit talk frontend",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"coffeeify": "~0.7.0",
|
"coffeeify": "~0.7.0",
|
||||||
|
Loading…
Reference in New Issue
Block a user