Loading msg.fs +41 −12 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ Sema msglog-sema REPEAT drop ;] msglog-sema c-section ; forward msg-scan-hash forward msg-add-hashs forward msg-serialize-hash : serialize-log ( addr u -- $addr ) Loading @@ -89,6 +90,14 @@ forward msg-serialize-hash msg-serialize-hash ;] msg-scan-hash ;] gen-cmd ; : scan-log-hashs ( -- ) msg-log@ over >r [: bounds ?DO I $@ msg:display cell +LOOP msg-add-hashs ;] msg-scan-hash r> free throw ; Variable saved-msg$ 64Variable saved-msg-ticks Loading Loading @@ -309,7 +318,7 @@ Forward msg:want hash: fetch-finish# Variable fetch-queue[] hash: ihave# hash: have# : .@host.id ( pk+host u -- ) '@' emit Loading @@ -317,7 +326,7 @@ hash: ihave# key2| .simple-id ; : .ihaves ( -- ) ." ====== hash owend by ======" cr ihave# [: dup $@ 85type ." :" have# [: dup $@ 85type ." :" cell+ $@ bounds U+DO space I $@ .@host.id cell +LOOP cr ;] #map ; Loading @@ -325,7 +334,7 @@ hash: ihave# : msg:ihave ( id u1 hash u2 -- ) \ ." ihave:" 2over dump 2dup dump 2dup ihave$ $+! 2over mehave$ $! bounds U+DO 2dup I keysize ihave# #!ins[] keysize +LOOP 2drop ; bounds U+DO 2dup I keysize have# #!ins[] keysize +LOOP 2drop ; : pk.host ( -- addr u ) [: pk@ type host$ $. ;] $tmp ; : >ihave ( hash u -- ) pk.host 2swap msg:ihave ; Loading Loading @@ -577,7 +586,7 @@ event: :>hash-finished { d: hash -- } item cell+ $@ bounds U+DO net2o-code expect+slurp $10 blocksize! $A blockalign! I' I U+DO I keysize ihave# $@ dup IF I keysize have# $@ dup IF 0 -rot bounds U+DO I $@ pk$ $@ str= or cell +LOOP Loading @@ -602,7 +611,7 @@ event: :>fetch-queue fetch-queue ; : transmit-queue ( queue -- ) { w^ queue[] | w^ want# } queue[] want# [{: want# :}l 2dup ihave# #@ dup IF queue[] want# [{: want# :}l 2dup have# #@ dup IF bounds U+DO 2dup I $@ want# #+! cell +LOOP 2drop Loading Loading @@ -909,18 +918,34 @@ also }scope \ serialize hashes : ?ihave ( addr u pk$ want# -- ) { pk$ want# -- } 2dup need-hashed? 0= IF pk$ $@ 2over have# #!ins[] 2dup pk$ $@ want# #+! THEN ; : msg-add-hashs ( -- ) 0 .pk.host $make { w^ pk$ } ?hashs[] pk$ [{: pk$ :}l 2dup need-hashed? 0= IF pk$ $@ 2over have# #!ins[] THEN 2drop ;] $[]map ?hashs[] $[]free pk$ $free ; : msg-serialize-hash ( -- ) 0 .pk.host $make { w^ pk$ | w^ want# } ?hashs[] want# pk$ [{: want# pk$ :}l 2dup need-hashed? 0= IF pk$ $@ 2over ihave# #!ins[] 2dup pk$ $@ want# #+! THEN 2dup ihave# #@ dup IF 2dup have# #@ dup IF false { flag } bounds U+DO 2dup I $@ want# #+! I $@ pk$ $@ str= +to flag cell +LOOP ELSE 2drop THEN flag 0= IF pk$ want# ?ihave THEN ELSE 2drop pk$ want# ?ihave THEN 2drop ;] $[]map want# [: Loading Loading @@ -1004,7 +1029,7 @@ $8 Value max-want# : have>want ( hashs u want# -- ) { want# } \ transform have into wants bounds U+DO I keysize ihave# #@ bounds U+DO I keysize have# #@ bounds U+DO J keysize I $@ want# #+! cell +LOOP keysize +LOOP ; Loading Loading @@ -1629,6 +1654,9 @@ umethod /have ( addr u -- ) umethod /imgs ( addr u -- ) \U imgs print out img list \G imgs: print out hashes for album viewer umethod /rescan# ( addr u -- ) \U rescan# rescan for hashes \G rescan#: search the entire chat log for hashes and if you have them end-class chat-cmds chat-cmds new Constant text-chat-cmd-o Loading Loading @@ -1758,6 +1786,7 @@ is /help 2drop msg-group-o .msg:?lock 0= IF ." un" THEN ." locked" forth:cr ; is /lock? ' .ihaves is /have ' scan-log-hashs is /rescan# $100 buffer: permchar>bits msg:role-admin# msg:key-admin# msg:moderator# or or 'a' permchar>bits + c! Loading Loading
msg.fs +41 −12 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ Sema msglog-sema REPEAT drop ;] msglog-sema c-section ; forward msg-scan-hash forward msg-add-hashs forward msg-serialize-hash : serialize-log ( addr u -- $addr ) Loading @@ -89,6 +90,14 @@ forward msg-serialize-hash msg-serialize-hash ;] msg-scan-hash ;] gen-cmd ; : scan-log-hashs ( -- ) msg-log@ over >r [: bounds ?DO I $@ msg:display cell +LOOP msg-add-hashs ;] msg-scan-hash r> free throw ; Variable saved-msg$ 64Variable saved-msg-ticks Loading Loading @@ -309,7 +318,7 @@ Forward msg:want hash: fetch-finish# Variable fetch-queue[] hash: ihave# hash: have# : .@host.id ( pk+host u -- ) '@' emit Loading @@ -317,7 +326,7 @@ hash: ihave# key2| .simple-id ; : .ihaves ( -- ) ." ====== hash owend by ======" cr ihave# [: dup $@ 85type ." :" have# [: dup $@ 85type ." :" cell+ $@ bounds U+DO space I $@ .@host.id cell +LOOP cr ;] #map ; Loading @@ -325,7 +334,7 @@ hash: ihave# : msg:ihave ( id u1 hash u2 -- ) \ ." ihave:" 2over dump 2dup dump 2dup ihave$ $+! 2over mehave$ $! bounds U+DO 2dup I keysize ihave# #!ins[] keysize +LOOP 2drop ; bounds U+DO 2dup I keysize have# #!ins[] keysize +LOOP 2drop ; : pk.host ( -- addr u ) [: pk@ type host$ $. ;] $tmp ; : >ihave ( hash u -- ) pk.host 2swap msg:ihave ; Loading Loading @@ -577,7 +586,7 @@ event: :>hash-finished { d: hash -- } item cell+ $@ bounds U+DO net2o-code expect+slurp $10 blocksize! $A blockalign! I' I U+DO I keysize ihave# $@ dup IF I keysize have# $@ dup IF 0 -rot bounds U+DO I $@ pk$ $@ str= or cell +LOOP Loading @@ -602,7 +611,7 @@ event: :>fetch-queue fetch-queue ; : transmit-queue ( queue -- ) { w^ queue[] | w^ want# } queue[] want# [{: want# :}l 2dup ihave# #@ dup IF queue[] want# [{: want# :}l 2dup have# #@ dup IF bounds U+DO 2dup I $@ want# #+! cell +LOOP 2drop Loading Loading @@ -909,18 +918,34 @@ also }scope \ serialize hashes : ?ihave ( addr u pk$ want# -- ) { pk$ want# -- } 2dup need-hashed? 0= IF pk$ $@ 2over have# #!ins[] 2dup pk$ $@ want# #+! THEN ; : msg-add-hashs ( -- ) 0 .pk.host $make { w^ pk$ } ?hashs[] pk$ [{: pk$ :}l 2dup need-hashed? 0= IF pk$ $@ 2over have# #!ins[] THEN 2drop ;] $[]map ?hashs[] $[]free pk$ $free ; : msg-serialize-hash ( -- ) 0 .pk.host $make { w^ pk$ | w^ want# } ?hashs[] want# pk$ [{: want# pk$ :}l 2dup need-hashed? 0= IF pk$ $@ 2over ihave# #!ins[] 2dup pk$ $@ want# #+! THEN 2dup ihave# #@ dup IF 2dup have# #@ dup IF false { flag } bounds U+DO 2dup I $@ want# #+! I $@ pk$ $@ str= +to flag cell +LOOP ELSE 2drop THEN flag 0= IF pk$ want# ?ihave THEN ELSE 2drop pk$ want# ?ihave THEN 2drop ;] $[]map want# [: Loading Loading @@ -1004,7 +1029,7 @@ $8 Value max-want# : have>want ( hashs u want# -- ) { want# } \ transform have into wants bounds U+DO I keysize ihave# #@ bounds U+DO I keysize have# #@ bounds U+DO J keysize I $@ want# #+! cell +LOOP keysize +LOOP ; Loading Loading @@ -1629,6 +1654,9 @@ umethod /have ( addr u -- ) umethod /imgs ( addr u -- ) \U imgs print out img list \G imgs: print out hashes for album viewer umethod /rescan# ( addr u -- ) \U rescan# rescan for hashes \G rescan#: search the entire chat log for hashes and if you have them end-class chat-cmds chat-cmds new Constant text-chat-cmd-o Loading Loading @@ -1758,6 +1786,7 @@ is /help 2drop msg-group-o .msg:?lock 0= IF ." un" THEN ." locked" forth:cr ; is /lock? ' .ihaves is /have ' scan-log-hashs is /rescan# $100 buffer: permchar>bits msg:role-admin# msg:key-admin# msg:moderator# or or 'a' permchar>bits + c! Loading