Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Show message about nobody is online |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
29c25f391e1d659fb5987d8a294b1acc |
User & Date: | bernd 2019-07-05 20:42:22.998 |
Context
2019-07-05
| ||
22:14 | Saving away in Chinese check-in: 9e33f84c70 user: bernd tags: trunk | |
20:42 | Show message about nobody is online check-in: 29c25f391e user: bernd tags: trunk | |
15:01 | Add better chain support check-in: 8afee7be22 user: bernd tags: trunk | |
Changes
Changes to classes.fs.
︙ | ︙ | |||
170 171 172 173 174 175 176 177 178 179 180 181 182 183 | method like method lock method unlock method away method end method display \ display one message method redisplay \ display full set }class cmd-class class{ pay field: sources[] \ all the sources stored here, an array field: sinks[] \ all the signatures stored here, an array field: assets[] \ all selected assets (array [asset,amount]*) field: balances[] \ all balances (amount[asset]) | > | 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 | method like method lock method unlock method away method end method display \ display one message method redisplay \ display full set method .nobody \ show nobody is online }class cmd-class class{ pay field: sources[] \ all the sources stored here, an array field: sinks[] \ all the signatures stored here, an array field: assets[] \ all selected assets (array [asset,amount]*) field: balances[] \ all balances (amount[asset]) |
︙ | ︙ |
Changes to gui.fs.
︙ | ︙ | |||
408 409 410 411 412 413 414 415 416 417 418 419 420 421 | $FFFFFFFF text-color: realwhite $FFFFFFFF new-color: edit-bg $80FF80FF new-color: send-color $00FF0020 new-color: pet-color $FFFF80FF new-color, fvalue users-color# $FFCCCCFF new-color, fvalue gps-color# $000077FF new-color, fvalue chain-color# : nick[] ( box o:nick -- box ) [: data >o ." clicked on " ke-nick $. cr o> ;] o click[] ; Hash: avatar# glue new Constant glue*avatar | > | 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 | $FFFFFFFF text-color: realwhite $FFFFFFFF new-color: edit-bg $80FF80FF new-color: send-color $00FF0020 new-color: pet-color $FFFF80FF new-color, fvalue users-color# $FFCCCCFF new-color, fvalue gps-color# $000077FF new-color, fvalue chain-color# $FF000000 $FF0000FF fade-color: show-error-color : nick[] ( box o:nick -- box ) [: data >o ." clicked on " ke-nick $. cr o> ;] o click[] ; Hash: avatar# glue new Constant glue*avatar |
︙ | ︙ | |||
808 809 810 811 812 813 814 | :noname ( -- ) glue*ll }}glue msg-box .child+ dpy-w @ 90% fm* msg-par .par-split {{ msg-par unbox }} dup >r 0 ?DO I pick box[] "unboxed" name! drop LOOP r> msg-vbox .+childs | | > > > | 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 | :noname ( -- ) glue*ll }}glue msg-box .child+ dpy-w @ 90% fm* msg-par .par-split {{ msg-par unbox }} dup >r 0 ?DO I pick box[] "unboxed" name! drop LOOP r> msg-vbox .+childs ; wmsg-class is msg:end 0 Value nobody-online-text \ nobody is online warning :noname 2e nobody-online-text [: f2* sin-t .fade +sync ;] >animate ; wmsg-class is msg:.nobody : new-msg-par ( -- ) {{ }}p "msg-par" name! dup .subbox box[] drop box[] cbl >bl dup .subbox "msg-box" name! to msg-box to msg-par ; :noname { d: pk -- o } pk [: .simple-id ." : " ;] $tmp notify-nick! |
︙ | ︙ | |||
860 861 862 863 864 865 866 | me? >bubble-border }}z box[] "msg-zbox" name! glue*ll }}glue me? IF swap rot THEN }}h box[] "msgs-box" name! msgs-box .child+ blackish THEN | | | | | | | | | | | | 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 | me? >bubble-border }}z box[] "msg-zbox" name! glue*ll }}glue me? IF swap rot THEN }}h box[] "msgs-box" name! msgs-box .child+ blackish THEN ; wmsg-class is msg:start :noname { d: string -- o } link-blue \mono string [: '#' emit type ;] $tmp ['] utf8-sanitize $tmp }}text text-color! \sans msg-box .child+ ; wmsg-class is msg:tag :noname { d: string -- o } text-color! string ['] utf8-sanitize $tmp }}text 25%bv "text" name! msg-box .child+ ; wmsg-class is msg:text :noname { d: string -- o } \italic last-otr? IF light-blue ELSE dark-blue THEN string ['] utf8-sanitize $tmp }}text 25%bv \regular text-color! "action" name! msg-box .child+ ; wmsg-class is msg:action :noname { d: string -- o } last-otr? IF light-blue ELSE dark-blue THEN string ['] utf8-sanitize $tmp }}text _underline_ 25%bv text-color! [: data >o text$ o> open-url ;] over click[] click( ." url: " dup ..parents cr ) "url" name! msg-box .child+ ; wmsg-class is msg:url :noname { d: string -- o } {{ glue*l gps-color# slide-frame dup .button1 string [: ." GPS: " .coords ;] $tmp }}text 25%b }}z "gps" name! msg-box .child+ ; wmsg-class is msg:coord :noname { d: string -- o } {{ glue*l chain-color# slide-frame dup .button1 string sighash? IF re-green ELSE obj-red THEN string [: ." <" drop le-64@ .ticks ;] $tmp }}text 25%b }}z "chain" name! msg-box .child+ ; wmsg-class is msg:chain :noname { d: pk -- o } {{ x-color { f: xc } pk key| 2dup 0 .pk@ key| str= last-otr? IF IF my-signal-otr ELSE other-signal-otr THEN ELSE IF my-signal ELSE other-signal THEN THEN x-color glue*l slide-frame dup .button1 40%b >r black# to x-color [: '@' emit .key-id ;] $tmp ['] utf8-sanitize $tmp }}text 25%b r> swap xc to x-color }}z msg-box .child+ ; wmsg-class is msg:signal :noname ( addr u -- ) re-green [: ." [" 85type ." ]→" ;] $tmp }}text msg-box .child+ text-color! ; wmsg-class is msg:re :noname ( addr u -- ) obj-red [: ." [" 85type ." ]:" ;] $tmp }}text msg-box .child+ text-color! ; wmsg-class is msg:id :noname { sig u' addr u -- } u' 64'+ u = u sigsize# = and IF addr u startdate@ 64dup date>i >r 64#1 64+ date>i' r> \ 2dup = IF ." [otrified] " addr u startdate@ .ticks THEN U+DO I msg-group-o .msg:log[] $[]@ 2dup dup sigpksize# - /string key| msg:id$ str= IF |
︙ | ︙ | |||
978 979 980 981 982 983 984 | vp-y fnegate to vmotion-dy 0.333e o ['] vp-scroll >animate o> ; : wmsg-display ( addr u -- ) msg-tdisplay msgs-box >o [: +sync +resize ;] vp-needed vp-bottom +sync +resize o> ; | | | 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 | vp-y fnegate to vmotion-dy 0.333e o ['] vp-scroll >animate o> ; : wmsg-display ( addr u -- ) msg-tdisplay msgs-box >o [: +sync +resize ;] vp-needed vp-bottom +sync +resize o> ; ' wmsg-display wmsg-class is msg:display #128 Value gui-msgs# \ display last 128 messages 0 Value chat-edit \ chat edit field 0 Value chat-edit-bg \ chat edit background : (gui-msgs) ( gaddr u -- ) reset-time |
︙ | ︙ | |||
1057 1058 1059 1060 1061 1062 1063 | dup font-size# 66% f* fdup vslider over >r }}h box[] r> font-size# 66% f* fdup hslider }}v box[] {{ {{ glue*lll edit-bg x-color font-size# 40% f* }}frame dup .button3 dup to chat-edit-bg | > > > | | 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 | dup font-size# 66% f* fdup vslider over >r }}h box[] r> font-size# 66% f* fdup hslider }}v box[] {{ {{ glue*lll edit-bg x-color font-size# 40% f* }}frame dup .button3 dup to chat-edit-bg show-error-color \normal \regular !i18n l" Nobody is online" }}text' !lit dup to nobody-online-text /center {{ blackish "" }}edit 40%b dup to chat-edit glue*l }}glue glue*lll }}glue }}h box[] }}z chat-edit [: edit-w .chat-edit-enter drop nip 0 tuck false ;] edit[] ' size-limit filter[] >o act >o [: connection .chat-next-line ;] is edit-next-line o> o o> >o act >o [: connection .chat-prev-line ;] is edit-prev-line o> o o> {{ glue*l send-color x-color font-size# 40% f* }}frame dup .button2 |
︙ | ︙ |
Changes to lang/de.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 | Öffentlicher Schlüssel Schlüsselsignaturdatum Meine Schlüssel Meine Gruppen Meine Freunde Posting Einladungen | > | 10 11 12 13 14 15 16 17 18 19 | Öffentlicher Schlüssel Schlüsselsignaturdatum Meine Schlüssel Meine Gruppen Meine Freunde Posting Niemand ist online, speichere weg Einladungen |
Changes to lang/en.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 | Pubkey Key date My key My groups My peers Post Invitations | > | 10 11 12 13 14 15 16 17 18 19 | Pubkey Key date My key My groups My peers Post Nobody is online, saving away Invitations |
Changes to lang/zh.
︙ | ︙ | |||
10 11 12 13 14 15 16 17 18 | 公钥 关键签名日期 我的钥匙 我的集团 我的朋友 贴子 发送 请帖 | > | 10 11 12 13 14 15 16 17 18 19 | 公钥 关键签名日期 我的钥匙 我的集团 我的朋友 贴子 没有人在线 发送 请帖 |
Changes to msg.fs.
︙ | ︙ | |||
478 479 480 481 482 483 484 485 486 487 488 489 490 491 | 0 endcase ." ]" <default> ; msg-class is msg:object :noname ( addr u -- ) $utf8> <warn> forth:type <default> ; msg-class is msg:action :noname ( addr u -- ) <warn> ." GPS: " .coords <default> ; msg-class is msg:coord : replace-sig { addrsig usig addrmsg umsg -- } \ !!dummy!! need to verify signature! addrsig usig addrmsg umsg usig - [: type type ;] $tmp 2dup pk-sig? !!sig!! 2drop addrmsg umsg smove ; : new-otrsig ( addr u -- addrsig usig ) 2dup startdate@ old>otr c:0key sigpksize# - c:hash ['] .sig $tmp 1 64s /string ; | > > > > > > > > > > > > | 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 | 0 endcase ." ]" <default> ; msg-class is msg:object :noname ( addr u -- ) $utf8> <warn> forth:type <default> ; msg-class is msg:action :noname ( addr u -- ) <warn> ." GPS: " .coords <default> ; msg-class is msg:coord : wait-2s-key ( -- ) ntime 50 0 DO key? ?LEAVE 2dup i #40000000 um* d+ deadline LOOP 2drop ; : xclear ( addr u -- ) x-width 1+ x-erase ; :noname ( -- ) <info> [: ." nobody's online" msg-group-o .msg:?otr 0= IF ." , saving away" THEN ;] $tmp 2dup type <default> wait-2s-key xclear ; msg-class is msg:.nobody : replace-sig { addrsig usig addrmsg umsg -- } \ !!dummy!! need to verify signature! addrsig usig addrmsg umsg usig - [: type type ;] $tmp 2dup pk-sig? !!sig!! 2drop addrmsg umsg smove ; : new-otrsig ( addr u -- addrsig usig ) 2dup startdate@ old>otr c:0key sigpksize# - c:hash ['] .sig $tmp 1 64s /string ; |
︙ | ︙ | |||
1120 1121 1122 1123 1124 1125 1126 | : chat-history ( -- ) chat-terminal edit-out ! ; \ chat line editor $200 Constant maxmsg# | < < | 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 | : chat-history ( -- ) chat-terminal edit-out ! ; \ chat line editor $200 Constant maxmsg# : get-input-line ( -- addr u ) BEGIN pad maxmsg# ['] accept catch dup dup -56 = swap -28 = or \ quit or ^c to leave IF drop 2drop "/bye" ELSE dup 0= IF drop pad swap 2dup xclear |
︙ | ︙ | |||
1150 1151 1152 1153 1154 1155 1156 | connection .data-rmap 0= ?EXIT net2o-code expect-msg log !time end-with join, get-ip end-code ; : chat-entry ( -- ) ?.net2o/chats word-args <warn> ." Type ctrl-D or '/bye' as single item to quit" <default> cr ; | < < < < < < < < < | | 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 | connection .data-rmap 0= ?EXIT net2o-code expect-msg log !time end-with join, get-ip end-code ; : chat-entry ( -- ) ?.net2o/chats word-args <warn> ." Type ctrl-D or '/bye' as single item to quit" <default> cr ; also net2o-base \ chain messages to one previous message : chain, ( msgaddr u -- ) [: 2dup startdate@ 64#0 { 64^ sd } sd le-64! sd 1 64s forth:type c:0key sigonly@ >hash hashtmp hash#128 forth:type ;] $tmp $, msg-chain ; : (send-avalanche) ( xt -- addr u flag ) [: 0 >o [: sign[ msg-start execute msg> ;] gen-cmd$ o> +last-signed msg-log, ;] [group] ; previous : send-avalanche ( xt -- ) msg-group-o .msg:?otr IF now>otr ELSE now>never THEN (send-avalanche) >r .chat r> 0= IF msg-group-o .msg:.nobody THEN ; \ chat helper words Variable chat-keys : @/ ( addr u -- addr1 u1 addr2 u2 ) '@' $split ; : @/2 ( addr u -- addr2 u2 ) '@' $split 2nip ; |
︙ | ︙ |