From 791f86445c9841106b882d7a4b6628baab9c871f Mon Sep 17 00:00:00 2001 From: Rick Carlino Date: Sat, 17 Oct 2020 14:03:48 -0500 Subject: [PATCH] [UNSTABLE] TODO: Switch to new blob / bundle protocol. --- lib/pigeon.rb | 11 +---- lib/pigeon/database.rb | 3 -- .../N2RQHF2/AND6J8V.GPG => 622PVGPG.blb} | Bin .../KP0605W/WXYJG4V.MRG => FV0FVMRG.blb} | Bin .../BZHT2CQ/29S5SEP.CSG => YPF1PCSG.blb} | Bin spec/fixtures/has_blobs/messages.pgn | 16 +++---- spec/fixtures/normal/7Z2CWBSG.blb | 0 spec/fixtures/normal/ET9C67PG.blb | 0 spec/fixtures/normal/HDDSANFG.blb | 0 spec/fixtures/normal/messages.pgn | 16 +++---- spec/fixtures/x/messages.pgn | 4 +- spec/pigeon/lexer_spec.rb | 43 ++++-------------- 12 files changed, 27 insertions(+), 66 deletions(-) rename spec/fixtures/has_blobs/{622PRNJ/7C0S05X/R2AHDPK/WMG051B/1QW5SXM/N2RQHF2/AND6J8V.GPG => 622PVGPG.blb} (100%) rename spec/fixtures/has_blobs/{FV0FJ0Y/ZADY7C5/JTTFYPK/DBHTZJ5/JVVP5TC/KP0605W/WXYJG4V.MRG => FV0FVMRG.blb} (100%) rename spec/fixtures/has_blobs/{YPF11E5/N9JFVB6/KB1N1WD/VVT9DXM/CHE0XJW/BZHT2CQ/29S5SEP.CSG => YPF1PCSG.blb} (100%) create mode 100644 spec/fixtures/normal/7Z2CWBSG.blb create mode 100644 spec/fixtures/normal/ET9C67PG.blb create mode 100644 spec/fixtures/normal/HDDSANFG.blb diff --git a/lib/pigeon.rb b/lib/pigeon.rb index 88f107d..9ac25a6 100644 --- a/lib/pigeon.rb +++ b/lib/pigeon.rb @@ -252,16 +252,7 @@ module Pigeon def self.hash2file_path(mhash) mhash = mhash.sub(BLOB_SIGIL, "") - - [ - mhash[0...7], - mhash[7...14], - mhash[14...21], - mhash[21...28], - mhash[28...35], - mhash[35...42], - [mhash[42...49], ".", mhash[49...52]].join(""), - ] + ["#{mhash[0..3]}#{mhash[-4..-1]}.blb"] end def self.decode_multihash(string) diff --git a/lib/pigeon/database.rb b/lib/pigeon/database.rb index 609398d..d7a5684 100644 --- a/lib/pigeon/database.rb +++ b/lib/pigeon/database.rb @@ -147,9 +147,6 @@ module Pigeon .join(BUNDLE_MESSAGE_SEPARATOR) File.write(File.join(file_path, MESSAGE_FILE), content + CR) - rescue => w - require "pry" - binding.pry end def import_bundle(file_path = DEFAULT_BUNDLE_PATH) diff --git a/spec/fixtures/has_blobs/622PRNJ/7C0S05X/R2AHDPK/WMG051B/1QW5SXM/N2RQHF2/AND6J8V.GPG b/spec/fixtures/has_blobs/622PVGPG.blb similarity index 100% rename from spec/fixtures/has_blobs/622PRNJ/7C0S05X/R2AHDPK/WMG051B/1QW5SXM/N2RQHF2/AND6J8V.GPG rename to spec/fixtures/has_blobs/622PVGPG.blb diff --git a/spec/fixtures/has_blobs/FV0FJ0Y/ZADY7C5/JTTFYPK/DBHTZJ5/JVVP5TC/KP0605W/WXYJG4V.MRG b/spec/fixtures/has_blobs/FV0FVMRG.blb similarity index 100% rename from spec/fixtures/has_blobs/FV0FJ0Y/ZADY7C5/JTTFYPK/DBHTZJ5/JVVP5TC/KP0605W/WXYJG4V.MRG rename to spec/fixtures/has_blobs/FV0FVMRG.blb diff --git a/spec/fixtures/has_blobs/YPF11E5/N9JFVB6/KB1N1WD/VVT9DXM/CHE0XJW/BZHT2CQ/29S5SEP.CSG b/spec/fixtures/has_blobs/YPF1PCSG.blb similarity index 100% rename from spec/fixtures/has_blobs/YPF11E5/N9JFVB6/KB1N1WD/VVT9DXM/CHE0XJW/BZHT2CQ/29S5SEP.CSG rename to spec/fixtures/has_blobs/YPF1PCSG.blb diff --git a/spec/fixtures/has_blobs/messages.pgn b/spec/fixtures/has_blobs/messages.pgn index 90e1f21..fdf1205 100644 --- a/spec/fixtures/has_blobs/messages.pgn +++ b/spec/fixtures/has_blobs/messages.pgn @@ -1,4 +1,4 @@ -author USER.4CZHSZAH8473YPHP1F1DR5ZVCRKEA4Q0BY18NMXYE14NZ0XV2PGG +author USER.09XBQDDGZPEKFBFBY67XNR5QA0TRWAKYKYNEDNQTZJV0F1JB0DGG depth 0 kind example lipmaa NONE @@ -6,24 +6,24 @@ prev NONE file_name:FILE.FV0FJ0YZADY7C5JTTFYPKDBHTZJ5JVVP5TCKP0605WWXYJG4VMRG -signature H4SV73PSNKYTJZEA2ESBNDMV4D87K36T72E8FTTG1H74RXAMWJ6PVMQ421W2K6NXPAH5YS6B1PJCG2DVTEPWKBPTMY5T9ZZBXYX3020 +signature ZYSCKNFP8TW9DME9P9DK4Z4RV09APVEE762HK628K18NMS4DX084XKED71TCRXJNZBWY3TWDYVK1W3K496QF7Y55SCKEWP1D0SP5R30 -author USER.4CZHSZAH8473YPHP1F1DR5ZVCRKEA4Q0BY18NMXYE14NZ0XV2PGG +author USER.09XBQDDGZPEKFBFBY67XNR5QA0TRWAKYKYNEDNQTZJV0F1JB0DGG depth 1 kind example lipmaa NONE -prev TEXT.E90DY6RABDQ2CJPVQHYQDYH6N7Q46SZKQ0AQ76J6D684HYBRKE4G +prev TEXT.RGKRHC0APNN9FCJTVBN1NR1ZYQ9ZY34PYYASSMJ6016S30ZTWHR0 file_name:FILE.YPF11E5N9JFVB6KB1N1WDVVT9DXMCHE0XJWBZHT2CQ29S5SEPCSG -signature T2M98QY1P1FRYT4KRMRT1X5RQRY56HKTKPZEJDD5Y7W7HR57XE0RD5X4HF9YSTS9CBH4ZCJ4XM4NAY3SRFEFM6EY1RTV7HSE43A4P20 +signature GAZGWG8PWZSP4VSSNYD8J873CQ6KDM93SBMA9VGGC1YW66FER96HEGZQ4CJBH51YN22WMGYADNY2SCWS0JY6YPX4APFDQ60X751JJ1R -author USER.4CZHSZAH8473YPHP1F1DR5ZVCRKEA4Q0BY18NMXYE14NZ0XV2PGG +author USER.09XBQDDGZPEKFBFBY67XNR5QA0TRWAKYKYNEDNQTZJV0F1JB0DGG depth 2 kind example lipmaa NONE -prev TEXT.7ZKXANAAM31R9AMHMBVGP9Q5BF5HSCP557981VQHBTRYETGTGAK0 +prev TEXT.Z3QS1HPX756E22XWKXAXH7NTSTJGY0AHEM9KQNATTC6HHCACZGN0 file_name:FILE.622PRNJ7C0S05XR2AHDPKWMG051B1QW5SXMN2RQHF2AND6J8VGPG -signature KFMGFGSCZ36J1FKM5J68SVJ7Y074CQR7PF73690ZN4PPRTYZNS28D76AFBYXX9N2F4Z13KKFNG3308ZTGPB13D5N5CBGGZBN4V8A210 +signature W94BVC4ED00Z4TJC0T3BEVC63RJYJC1J4DDS13BJTTGGXK40JSX276B9MV3GPS5JJHZW92YKAZNZ1Q4DCG0K58SCD9ZD0TVZVX7100G diff --git a/spec/fixtures/normal/7Z2CWBSG.blb b/spec/fixtures/normal/7Z2CWBSG.blb new file mode 100644 index 0000000..e69de29 diff --git a/spec/fixtures/normal/ET9C67PG.blb b/spec/fixtures/normal/ET9C67PG.blb new file mode 100644 index 0000000..e69de29 diff --git a/spec/fixtures/normal/HDDSANFG.blb b/spec/fixtures/normal/HDDSANFG.blb new file mode 100644 index 0000000..e69de29 diff --git a/spec/fixtures/normal/messages.pgn b/spec/fixtures/normal/messages.pgn index f5d565a..830f2b9 100644 --- a/spec/fixtures/normal/messages.pgn +++ b/spec/fixtures/normal/messages.pgn @@ -1,4 +1,4 @@ -author USER.R68Q26P1GEFC0SNVVQ9S29SWCVVRGCYRV7D96GAN3XVQE3F9AZJ0 +author USER.Q62ZN46TV1HHYBBD7EFSKWTJQ32PGMYKYXM0GVVM121F8R21RAWG depth 0 kind unit_test1 lipmaa NONE @@ -6,24 +6,24 @@ prev NONE foo:"bar" -signature 2VMAG4SCX5RHVBKCB1RNZCB0AJN4WN6FEMS7W9FM1CVYSZXMX7CPQFCDPYEKCTGG91Y1YSGY4G5K8XAGQ67HEPDFRMRYQHWQBATAC2R +signature HAM8XEPCAB81P0A5DQKZ3DQG19Q06KR1G4RZ28CX4EXYCZA1A1MPVBQG540EZQSWHS46W523GJK4K3EWM4C0NWSM7NNG99AMJ70VC1G -author USER.R68Q26P1GEFC0SNVVQ9S29SWCVVRGCYRV7D96GAN3XVQE3F9AZJ0 +author USER.Q62ZN46TV1HHYBBD7EFSKWTJQ32PGMYKYXM0GVVM121F8R21RAWG depth 1 kind unit_test2 lipmaa NONE -prev TEXT.6CBA4J3756A5SNM1W1GHNCTT9EG95ZP3ZMAT5Z1EJP7TXMNNVZC0 +prev TEXT.DHSWRP0B9241KZ680WJAHVCVR4C79SH5NN3JCE3HFG9DB51WXC2G bar:"baz" -signature Y34Q47V0BY370RM5KWGRJRN9HFNGJN0C3DEYVB2V2476CW9RN5HD4XD7KMQ6T4T42N36R5P3XX6E3FYEWVZR25AVCF6KQPZHJP6EM10 +signature S0CSCTVWQ8R827XP4RNW7MQSQ5AT4EPG0AWF259R4ZWR3C83AZYPARXQXZ9Q32GPKEEWTC9RAKC00A0RTHZCETR712D8T7WVV9RBE18 -author USER.R68Q26P1GEFC0SNVVQ9S29SWCVVRGCYRV7D96GAN3XVQE3F9AZJ0 +author USER.Q62ZN46TV1HHYBBD7EFSKWTJQ32PGMYKYXM0GVVM121F8R21RAWG depth 2 kind unit_test3 lipmaa NONE -prev TEXT.5BQZVA8JDC77AVGMF45CMPVHRNXFHQ2C01QJEAR57N6K12JN6PAG +prev TEXT.8DPH5WX4DWWQ7DF9DBKYMT69Y44XNHHM8W8MV5BNQ7RYRM3W4NSG cats:"meow" -signature W68NWDQB2WTZ8T1RHP5BZA4N1STVKV16K0PXH10MZVR3XTF8HC7T8646X7SAKP5DFZ5K74QEKE3T2K6V0EST50YQQD7FD2PT0H8J62G +signature G9NC8H0SJGZ6KKQFM6V9VCGVK5FS0MM6B6G1RHJ09EM1ACVQSJPMHBB8YJYPZWXX2EDRD4MMKYEZ6725RAAXYY42KXZC9PPRVVGKR3G diff --git a/spec/fixtures/x/messages.pgn b/spec/fixtures/x/messages.pgn index 408fe9a..476c061 100644 --- a/spec/fixtures/x/messages.pgn +++ b/spec/fixtures/x/messages.pgn @@ -1,4 +1,4 @@ -author USER.58844MCNB7ZF7HVKYFRBR7R7E75T8YXP4JBR267AS09RNMHEG3EG +author USER.FFQE19PEB55S1JMT5CVWZXK6V9D6E54GG8SK31QRXBDGF2AGHW50 depth 0 kind nonsense lipmaa NONE @@ -6,4 +6,4 @@ prev NONE example:"Just block me" -signature 689FV4JQGS58PBXM5N69X1G3KSV4742B6H974GQ2Y1NW9EV7SA3GJPVVDH8MDQGNDF8QWM2AZDPJYRBVXFCRM6S2EE4Z1KMAXBH5018 +signature ZCP05Q1N8147YT47M5TY84D3K5MW3AB428CQDA5DK57D0J8PH5V7WWZDG2YYET04YCTM9KN2V847Q5SNS6J04HPNP8RW9B9D0EVX610 diff --git a/spec/pigeon/lexer_spec.rb b/spec/pigeon/lexer_spec.rb index fb86c19..808dcb1 100644 --- a/spec/pigeon/lexer_spec.rb +++ b/spec/pigeon/lexer_spec.rb @@ -2,7 +2,7 @@ require "spec_helper" RSpec.describe Pigeon::Lexer do EXPECTED_TOKENS1 = [ - [:AUTHOR, "USER.R68Q26P1GEFC0SNVVQ9S29SWCVVRGCYRV7D96GAN3XVQE3F9AZJ0", 65], + [:AUTHOR, "USER.Q62ZN46TV1HHYBBD7EFSKWTJQ32PGMYKYXM0GVVM121F8R21RAWG", 65], [:DEPTH, 0, 73], [:KIND, "unit_test1", 89], [:LIPMAA, "NONE", 101], @@ -10,33 +10,27 @@ RSpec.describe Pigeon::Lexer do [:HEADER_END, 112], [:BODY_ENTRY, "foo", "\"bar\"", 122], [:BODY_END, 123], - [:SIGNATURE, - "2VMAG4SCX5RHVBKCB1RNZCB0AJN4WN6FEMS7W9FM1CVYSZXMX7CPQFCDPYEKCTGG91Y1YSGY4G5K8XAGQ67HEPDFRMRYQHWQBATAC2R", - 237], + [:SIGNATURE, "HAM8XEPCAB81P0A5DQKZ3DQG19Q06KR1G4RZ28CX4EXYCZA1A1MPVBQG540EZQSWHS46W523GJK4K3EWM4C0NWSM7NNG99AMJ70VC1G", 237], [:MESSAGE_DELIM, 238], - [:AUTHOR, "USER.R68Q26P1GEFC0SNVVQ9S29SWCVVRGCYRV7D96GAN3XVQE3F9AZJ0", 303], + [:AUTHOR, "USER.Q62ZN46TV1HHYBBD7EFSKWTJQ32PGMYKYXM0GVVM121F8R21RAWG", 303], [:DEPTH, 1, 311], [:KIND, "unit_test2", 327], [:LIPMAA, "NONE", 339], - [:PREV, "TEXT.6CBA4J3756A5SNM1W1GHNCTT9EG95ZP3ZMAT5Z1EJP7TXMNNVZC0", 402], + [:PREV, "TEXT.DHSWRP0B9241KZ680WJAHVCVR4C79SH5NN3JCE3HFG9DB51WXC2G", 402], [:HEADER_END, 403], [:BODY_ENTRY, "bar", "\"baz\"", 413], [:BODY_END, 414], - [:SIGNATURE, - "Y34Q47V0BY370RM5KWGRJRN9HFNGJN0C3DEYVB2V2476CW9RN5HD4XD7KMQ6T4T42N36R5P3XX6E3FYEWVZR25AVCF6KQPZHJP6EM10", - 528], + [:SIGNATURE, "S0CSCTVWQ8R827XP4RNW7MQSQ5AT4EPG0AWF259R4ZWR3C83AZYPARXQXZ9Q32GPKEEWTC9RAKC00A0RTHZCETR712D8T7WVV9RBE18", 528], [:MESSAGE_DELIM, 529], - [:AUTHOR, "USER.R68Q26P1GEFC0SNVVQ9S29SWCVVRGCYRV7D96GAN3XVQE3F9AZJ0", 594], + [:AUTHOR, "USER.Q62ZN46TV1HHYBBD7EFSKWTJQ32PGMYKYXM0GVVM121F8R21RAWG", 594], [:DEPTH, 2, 602], [:KIND, "unit_test3", 618], [:LIPMAA, "NONE", 630], - [:PREV, "TEXT.5BQZVA8JDC77AVGMF45CMPVHRNXFHQ2C01QJEAR57N6K12JN6PAG", 693], + [:PREV, "TEXT.8DPH5WX4DWWQ7DF9DBKYMT69Y44XNHHM8W8MV5BNQ7RYRM3W4NSG", 693], [:HEADER_END, 694], [:BODY_ENTRY, "cats", "\"meow\"", 706], [:BODY_END, 707], - [:SIGNATURE, - "W68NWDQB2WTZ8T1RHP5BZA4N1STVKV16K0PXH10MZVR3XTF8HC7T8646X7SAKP5DFZ5K74QEKE3T2K6V0EST50YQQD7FD2PT0H8J62G", - 821], + [:SIGNATURE, "G9NC8H0SJGZ6KKQFM6V9VCGVK5FS0MM6B6G1RHJ09EM1ACVQSJPMHBB8YJYPZWXX2EDRD4MMKYEZ6725RAAXYY42KXZC9PPRVVGKR3G", 821], [:MESSAGE_DELIM, 821], ].freeze @@ -94,25 +88,4 @@ RSpec.describe Pigeon::Lexer do expect(hash[:PREV]).to eq Pigeon::NOTHING expect(hash[:SIGNATURE]).to eq(message.signature) end - - # it "catches syntax errors" do - # e = Pigeon::Lexer::LexError - # err_map = { - # 0 => "Syntax error pos 0 by START field in HEADER", - # 1 => "Syntax error pos 69 by AUTHOR field in HEADER", - # 2 => "Syntax error pos 77 by DEPTH field in HEADER", - # 3 => "Syntax error pos 92 by KIND field in HEADER", - # 4 => "Syntax error pos 104 by LIPMAA field in HEADER", - # 5 => "Syntax error pos 114 by PREV field in HEADER", - # 6 => "Syntax error pos 115 by HEADER_SEPERATOR field in BODY", - # 7 => "Syntax error pos 125 by A_BODY_ENTRY field in BODY", - # 8 => "Parse error at 126. Double carriage return not found.", - # } - # (0..8).to_a.map do |n| - # t = MESSAGE_LINES.dup.insert(n, "TEXT.@@").join("\n") - # emsg = err_map.fetch(n) - # puts "=== #{n}:" - # expect { Pigeon::Lexer.tokenize(t) }.to raise_error(e, emsg) - # end - # end end