commit
01c1c8a436
@ -0,0 +1 @@ |
|||||||
|
/target |
||||||
@ -0,0 +1,910 @@ |
|||||||
|
# This file is automatically @generated by Cargo. |
||||||
|
# It is not intended for manual editing. |
||||||
|
version = 3 |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "ansi_term" |
||||||
|
version = "0.11.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" |
||||||
|
dependencies = [ |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "atty" |
||||||
|
version = "0.2.14" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" |
||||||
|
dependencies = [ |
||||||
|
"hermit-abi", |
||||||
|
"libc", |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "autocfg" |
||||||
|
version = "1.0.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "bitflags" |
||||||
|
version = "1.3.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "block-buffer" |
||||||
|
version = "0.7.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" |
||||||
|
dependencies = [ |
||||||
|
"block-padding", |
||||||
|
"byte-tools", |
||||||
|
"byteorder", |
||||||
|
"generic-array 0.12.4", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "block-padding" |
||||||
|
version = "0.1.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" |
||||||
|
dependencies = [ |
||||||
|
"byte-tools", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "byte-tools" |
||||||
|
version = "0.3.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "byteorder" |
||||||
|
version = "1.4.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "bytes" |
||||||
|
version = "1.1.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "calllog" |
||||||
|
version = "0.1.0" |
||||||
|
dependencies = [ |
||||||
|
"html_parser", |
||||||
|
"hyper", |
||||||
|
"srp", |
||||||
|
"tokio", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "cfg-if" |
||||||
|
version = "1.0.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "clap" |
||||||
|
version = "2.33.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002" |
||||||
|
dependencies = [ |
||||||
|
"ansi_term", |
||||||
|
"atty", |
||||||
|
"bitflags", |
||||||
|
"strsim", |
||||||
|
"textwrap", |
||||||
|
"unicode-width", |
||||||
|
"vec_map", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "digest" |
||||||
|
version = "0.8.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" |
||||||
|
dependencies = [ |
||||||
|
"generic-array 0.12.4", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "digest" |
||||||
|
version = "0.9.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" |
||||||
|
dependencies = [ |
||||||
|
"generic-array 0.14.4", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "fake-simd" |
||||||
|
version = "0.1.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "fnv" |
||||||
|
version = "1.0.7" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "futures-channel" |
||||||
|
version = "0.3.17" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888" |
||||||
|
dependencies = [ |
||||||
|
"futures-core", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "futures-core" |
||||||
|
version = "0.3.17" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "futures-sink" |
||||||
|
version = "0.3.17" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "36ea153c13024fe480590b3e3d4cad89a0cfacecc24577b68f86c6ced9c2bc11" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "futures-task" |
||||||
|
version = "0.3.17" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "1d3d00f4eddb73e498a54394f228cd55853bdf059259e8e7bc6e69d408892e99" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "futures-util" |
||||||
|
version = "0.3.17" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481" |
||||||
|
dependencies = [ |
||||||
|
"autocfg", |
||||||
|
"futures-core", |
||||||
|
"futures-task", |
||||||
|
"pin-project-lite", |
||||||
|
"pin-utils", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "generic-array" |
||||||
|
version = "0.12.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" |
||||||
|
dependencies = [ |
||||||
|
"typenum", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "generic-array" |
||||||
|
version = "0.14.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" |
||||||
|
dependencies = [ |
||||||
|
"typenum", |
||||||
|
"version_check", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "h2" |
||||||
|
version = "0.3.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472" |
||||||
|
dependencies = [ |
||||||
|
"bytes", |
||||||
|
"fnv", |
||||||
|
"futures-core", |
||||||
|
"futures-sink", |
||||||
|
"futures-util", |
||||||
|
"http", |
||||||
|
"indexmap", |
||||||
|
"slab", |
||||||
|
"tokio", |
||||||
|
"tokio-util", |
||||||
|
"tracing", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "hashbrown" |
||||||
|
version = "0.11.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "heck" |
||||||
|
version = "0.3.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" |
||||||
|
dependencies = [ |
||||||
|
"unicode-segmentation", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "hermit-abi" |
||||||
|
version = "0.1.19" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" |
||||||
|
dependencies = [ |
||||||
|
"libc", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "html_parser" |
||||||
|
version = "0.6.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "58112d7b68ff61447bd22a489d7877a79ee688f6f34d57d3857842776d42dd0c" |
||||||
|
dependencies = [ |
||||||
|
"pest", |
||||||
|
"pest_derive", |
||||||
|
"serde", |
||||||
|
"serde_derive", |
||||||
|
"serde_json", |
||||||
|
"structopt", |
||||||
|
"thiserror", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "http" |
||||||
|
version = "0.2.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" |
||||||
|
dependencies = [ |
||||||
|
"bytes", |
||||||
|
"fnv", |
||||||
|
"itoa", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "http-body" |
||||||
|
version = "0.4.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5" |
||||||
|
dependencies = [ |
||||||
|
"bytes", |
||||||
|
"http", |
||||||
|
"pin-project-lite", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "httparse" |
||||||
|
version = "1.5.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "httpdate" |
||||||
|
version = "1.0.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "6456b8a6c8f33fee7d958fcd1b60d55b11940a79e63ae87013e6d22e26034440" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "hyper" |
||||||
|
version = "0.14.13" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593" |
||||||
|
dependencies = [ |
||||||
|
"bytes", |
||||||
|
"futures-channel", |
||||||
|
"futures-core", |
||||||
|
"futures-util", |
||||||
|
"h2", |
||||||
|
"http", |
||||||
|
"http-body", |
||||||
|
"httparse", |
||||||
|
"httpdate", |
||||||
|
"itoa", |
||||||
|
"pin-project-lite", |
||||||
|
"socket2", |
||||||
|
"tokio", |
||||||
|
"tower-service", |
||||||
|
"tracing", |
||||||
|
"want", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "indexmap" |
||||||
|
version = "1.7.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" |
||||||
|
dependencies = [ |
||||||
|
"autocfg", |
||||||
|
"hashbrown", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "instant" |
||||||
|
version = "0.1.10" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d" |
||||||
|
dependencies = [ |
||||||
|
"cfg-if", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "itoa" |
||||||
|
version = "0.4.8" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "lazy_static" |
||||||
|
version = "1.4.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "libc" |
||||||
|
version = "0.2.102" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "lock_api" |
||||||
|
version = "0.4.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "712a4d093c9976e24e7dbca41db895dabcbac38eb5f4045393d17a95bdfb1109" |
||||||
|
dependencies = [ |
||||||
|
"scopeguard", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "log" |
||||||
|
version = "0.4.14" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" |
||||||
|
dependencies = [ |
||||||
|
"cfg-if", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "maplit" |
||||||
|
version = "1.0.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "memchr" |
||||||
|
version = "2.4.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "mio" |
||||||
|
version = "0.7.13" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16" |
||||||
|
dependencies = [ |
||||||
|
"libc", |
||||||
|
"log", |
||||||
|
"miow", |
||||||
|
"ntapi", |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "miow" |
||||||
|
version = "0.3.7" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" |
||||||
|
dependencies = [ |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "ntapi" |
||||||
|
version = "0.3.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44" |
||||||
|
dependencies = [ |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "num-bigint" |
||||||
|
version = "0.2.6" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" |
||||||
|
dependencies = [ |
||||||
|
"autocfg", |
||||||
|
"num-integer", |
||||||
|
"num-traits", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "num-integer" |
||||||
|
version = "0.1.44" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" |
||||||
|
dependencies = [ |
||||||
|
"autocfg", |
||||||
|
"num-traits", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "num-traits" |
||||||
|
version = "0.2.14" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" |
||||||
|
dependencies = [ |
||||||
|
"autocfg", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "num_cpus" |
||||||
|
version = "1.13.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" |
||||||
|
dependencies = [ |
||||||
|
"hermit-abi", |
||||||
|
"libc", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "once_cell" |
||||||
|
version = "1.8.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "opaque-debug" |
||||||
|
version = "0.2.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "parking_lot" |
||||||
|
version = "0.11.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" |
||||||
|
dependencies = [ |
||||||
|
"instant", |
||||||
|
"lock_api", |
||||||
|
"parking_lot_core", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "parking_lot_core" |
||||||
|
version = "0.8.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" |
||||||
|
dependencies = [ |
||||||
|
"cfg-if", |
||||||
|
"instant", |
||||||
|
"libc", |
||||||
|
"redox_syscall", |
||||||
|
"smallvec", |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest" |
||||||
|
version = "2.1.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" |
||||||
|
dependencies = [ |
||||||
|
"ucd-trie", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest_derive" |
||||||
|
version = "2.1.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "833d1ae558dc601e9a60366421196a8d94bc0ac980476d0b67e1d0988d72b2d0" |
||||||
|
dependencies = [ |
||||||
|
"pest", |
||||||
|
"pest_generator", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest_generator" |
||||||
|
version = "2.1.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "99b8db626e31e5b81787b9783425769681b347011cc59471e33ea46d2ea0cf55" |
||||||
|
dependencies = [ |
||||||
|
"pest", |
||||||
|
"pest_meta", |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pest_meta" |
||||||
|
version = "2.1.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "54be6e404f5317079812fc8f9f5279de376d8856929e21c184ecf6bbd692a11d" |
||||||
|
dependencies = [ |
||||||
|
"maplit", |
||||||
|
"pest", |
||||||
|
"sha-1", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pin-project-lite" |
||||||
|
version = "0.2.7" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "pin-utils" |
||||||
|
version = "0.1.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "proc-macro-error" |
||||||
|
version = "1.0.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro-error-attr", |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
"version_check", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "proc-macro-error-attr" |
||||||
|
version = "1.0.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"version_check", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "proc-macro2" |
||||||
|
version = "1.0.29" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d" |
||||||
|
dependencies = [ |
||||||
|
"unicode-xid", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "quote" |
||||||
|
version = "1.0.9" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "redox_syscall" |
||||||
|
version = "0.2.10" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" |
||||||
|
dependencies = [ |
||||||
|
"bitflags", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "ryu" |
||||||
|
version = "1.0.5" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "scopeguard" |
||||||
|
version = "1.1.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "serde" |
||||||
|
version = "1.0.130" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913" |
||||||
|
dependencies = [ |
||||||
|
"serde_derive", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "serde_derive" |
||||||
|
version = "1.0.130" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "serde_json" |
||||||
|
version = "1.0.68" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8" |
||||||
|
dependencies = [ |
||||||
|
"itoa", |
||||||
|
"ryu", |
||||||
|
"serde", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "sha-1" |
||||||
|
version = "0.8.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" |
||||||
|
dependencies = [ |
||||||
|
"block-buffer", |
||||||
|
"digest 0.8.1", |
||||||
|
"fake-simd", |
||||||
|
"opaque-debug", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "signal-hook-registry" |
||||||
|
version = "1.4.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" |
||||||
|
dependencies = [ |
||||||
|
"libc", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "slab" |
||||||
|
version = "0.4.4" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "smallvec" |
||||||
|
version = "1.6.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "socket2" |
||||||
|
version = "0.4.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516" |
||||||
|
dependencies = [ |
||||||
|
"libc", |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "srp" |
||||||
|
version = "0.5.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "9fc20fc53a66157eca583fc840564f81db6b409ab49d231f66d2d1a243cf7c31" |
||||||
|
dependencies = [ |
||||||
|
"digest 0.9.0", |
||||||
|
"generic-array 0.12.4", |
||||||
|
"lazy_static", |
||||||
|
"num-bigint", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "strsim" |
||||||
|
version = "0.8.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "structopt" |
||||||
|
version = "0.3.23" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "bf9d950ef167e25e0bdb073cf1d68e9ad2795ac826f2f3f59647817cf23c0bfa" |
||||||
|
dependencies = [ |
||||||
|
"clap", |
||||||
|
"lazy_static", |
||||||
|
"structopt-derive", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "structopt-derive" |
||||||
|
version = "0.4.16" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "134d838a2c9943ac3125cf6df165eda53493451b719f3255b2a26b85f772d0ba" |
||||||
|
dependencies = [ |
||||||
|
"heck", |
||||||
|
"proc-macro-error", |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "syn" |
||||||
|
version = "1.0.76" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "c6f107db402c2c2055242dbf4d2af0e69197202e9faacbef9571bbe47f5a1b84" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"unicode-xid", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "textwrap" |
||||||
|
version = "0.11.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" |
||||||
|
dependencies = [ |
||||||
|
"unicode-width", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "thiserror" |
||||||
|
version = "1.0.29" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88" |
||||||
|
dependencies = [ |
||||||
|
"thiserror-impl", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "thiserror-impl" |
||||||
|
version = "1.0.29" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "tokio" |
||||||
|
version = "1.12.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "c2c2416fdedca8443ae44b4527de1ea633af61d8f7169ffa6e72c5b53d24efcc" |
||||||
|
dependencies = [ |
||||||
|
"autocfg", |
||||||
|
"bytes", |
||||||
|
"libc", |
||||||
|
"memchr", |
||||||
|
"mio", |
||||||
|
"num_cpus", |
||||||
|
"once_cell", |
||||||
|
"parking_lot", |
||||||
|
"pin-project-lite", |
||||||
|
"signal-hook-registry", |
||||||
|
"tokio-macros", |
||||||
|
"winapi", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "tokio-macros" |
||||||
|
version = "1.3.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "54473be61f4ebe4efd09cec9bd5d16fa51d70ea0192213d754d2d500457db110" |
||||||
|
dependencies = [ |
||||||
|
"proc-macro2", |
||||||
|
"quote", |
||||||
|
"syn", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "tokio-util" |
||||||
|
version = "0.6.8" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd" |
||||||
|
dependencies = [ |
||||||
|
"bytes", |
||||||
|
"futures-core", |
||||||
|
"futures-sink", |
||||||
|
"log", |
||||||
|
"pin-project-lite", |
||||||
|
"tokio", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "tower-service" |
||||||
|
version = "0.3.1" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "tracing" |
||||||
|
version = "0.1.28" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "84f96e095c0c82419687c20ddf5cb3eadb61f4e1405923c9dc8e53a1adacbda8" |
||||||
|
dependencies = [ |
||||||
|
"cfg-if", |
||||||
|
"pin-project-lite", |
||||||
|
"tracing-core", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "tracing-core" |
||||||
|
version = "0.1.20" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "46125608c26121c81b0c6d693eab5a420e416da7e43c426d2e8f7df8da8a3acf" |
||||||
|
dependencies = [ |
||||||
|
"lazy_static", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "try-lock" |
||||||
|
version = "0.2.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "typenum" |
||||||
|
version = "1.14.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "ucd-trie" |
||||||
|
version = "0.1.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "unicode-segmentation" |
||||||
|
version = "1.8.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "unicode-width" |
||||||
|
version = "0.1.9" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "unicode-xid" |
||||||
|
version = "0.2.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "vec_map" |
||||||
|
version = "0.8.2" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "version_check" |
||||||
|
version = "0.9.3" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "want" |
||||||
|
version = "0.3.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" |
||||||
|
dependencies = [ |
||||||
|
"log", |
||||||
|
"try-lock", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "winapi" |
||||||
|
version = "0.3.9" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" |
||||||
|
dependencies = [ |
||||||
|
"winapi-i686-pc-windows-gnu", |
||||||
|
"winapi-x86_64-pc-windows-gnu", |
||||||
|
] |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "winapi-i686-pc-windows-gnu" |
||||||
|
version = "0.4.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" |
||||||
|
|
||||||
|
[[package]] |
||||||
|
name = "winapi-x86_64-pc-windows-gnu" |
||||||
|
version = "0.4.0" |
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index" |
||||||
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" |
||||||
@ -0,0 +1,12 @@ |
|||||||
|
[package] |
||||||
|
name = "calllog" |
||||||
|
version = "0.1.0" |
||||||
|
edition = "2018" |
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html |
||||||
|
|
||||||
|
[dependencies] |
||||||
|
hyper = { version = "0.14", features = ["full"] } |
||||||
|
tokio = { version = "1", features = ["full"] } |
||||||
|
html_parser = { version = "0.6.2" } |
||||||
|
srp = { version = "0.5.0" } |
||||||
@ -0,0 +1,23 @@ |
|||||||
|
mod parsing; |
||||||
|
mod request; |
||||||
|
|
||||||
|
use hyper::{body::HttpBody, Client}; |
||||||
|
use tokio::{io::{stdout, AsyncWriteExt as _}, sync::mpsc::Sender}; |
||||||
|
|
||||||
|
use crate::request::CallLog; |
||||||
|
|
||||||
|
#[tokio::main] |
||||||
|
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { |
||||||
|
let (tx, rx): (Sender<Sender<CallLog>>, _)= tokio::sync::mpsc::channel(1024); |
||||||
|
tokio::spawn(request::fetch_thread(rx)); |
||||||
|
|
||||||
|
loop { |
||||||
|
if tx.is_closed() { |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
tokio::time::sleep(std::time::Duration::from_millis(100)).await; |
||||||
|
} |
||||||
|
|
||||||
|
Ok(()) |
||||||
|
} |
||||||
@ -0,0 +1,29 @@ |
|||||||
|
use html_parser::Node; |
||||||
|
|
||||||
|
pub fn extract_csrf_token_from_node(node: &Node) -> Option<String> { |
||||||
|
match node { |
||||||
|
Node::Text(_) => None, |
||||||
|
Node::Element(e) => { |
||||||
|
if let Some(Some(name)) = e.attributes.get("name") { |
||||||
|
if name == "CSRFtoken" { |
||||||
|
if let Some(Some(token)) = e.attributes.get("content") { |
||||||
|
Some(token.clone()) |
||||||
|
} else { |
||||||
|
None |
||||||
|
} |
||||||
|
} else { |
||||||
|
None |
||||||
|
} |
||||||
|
} else { |
||||||
|
for child in e.children.iter() { |
||||||
|
let token = extract_csrf_token_from_node(child); |
||||||
|
if token.is_some() { |
||||||
|
return token; |
||||||
|
} |
||||||
|
} |
||||||
|
None |
||||||
|
} |
||||||
|
} |
||||||
|
Node::Comment(_) => None, |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,105 @@ |
|||||||
|
use std::{io::Read, time::Instant}; |
||||||
|
|
||||||
|
use hyper::{body::HttpBody, Client, Response}; |
||||||
|
use tokio::sync::mpsc::{Receiver, Sender}; |
||||||
|
use html_parser::Dom; |
||||||
|
|
||||||
|
use crate::parsing::extract_csrf_token_from_node; |
||||||
|
|
||||||
|
const CALLLOG_URI: &'static str = "http://192.168.1.1/modals/mmpbx-log-modal.lp"; |
||||||
|
|
||||||
|
enum ResponseParse { |
||||||
|
NotLoggedIn { csrf_token: String }, |
||||||
|
CallLog(CallLog), |
||||||
|
Error(String), |
||||||
|
} |
||||||
|
|
||||||
|
pub struct CallLog {} |
||||||
|
|
||||||
|
pub struct RequestCache { |
||||||
|
last_update: std::time::Instant, |
||||||
|
cookie: Option<String>, |
||||||
|
} |
||||||
|
|
||||||
|
pub async fn fetch_thread(channel: Receiver<Sender<CallLog>>) { |
||||||
|
let mut channel = channel; |
||||||
|
let mut request_cache = RequestCache { |
||||||
|
last_update: Instant::now(), |
||||||
|
cookie: None, |
||||||
|
}; |
||||||
|
|
||||||
|
let mut calllog = loop { |
||||||
|
match try_fetch_updated_data().await { |
||||||
|
ResponseParse::NotLoggedIn { csrf_token } => { |
||||||
|
println!("{}", csrf_token); |
||||||
|
todo!() |
||||||
|
} |
||||||
|
ResponseParse::CallLog(log) => break log, |
||||||
|
ResponseParse::Error(e) => { |
||||||
|
println!("{}", e); |
||||||
|
todo!() |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
loop { |
||||||
|
let _ = channel.recv().await; |
||||||
|
|
||||||
|
//
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
async fn try_fetch_updated_data() -> ResponseParse { |
||||||
|
let client = Client::new(); |
||||||
|
|
||||||
|
let uri = CALLLOG_URI.parse().unwrap(); |
||||||
|
|
||||||
|
match client.get(uri).await { |
||||||
|
Ok(mut resp) => { |
||||||
|
let mut buffer: Vec<u8> = Vec::new(); |
||||||
|
|
||||||
|
while let Some(chunk) = resp.body_mut().data().await { |
||||||
|
match chunk { |
||||||
|
Ok(bytes) => buffer.append(&mut bytes.to_vec()), |
||||||
|
Err(e) => return ResponseParse::Error(e.to_string()), |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
match String::from_utf8(buffer) { |
||||||
|
Ok(body) => { |
||||||
|
if let Some(log) = extract_calllog_from_body(&body) { |
||||||
|
ResponseParse::CallLog(log) |
||||||
|
} else { |
||||||
|
if let Some(csrf_token) = extract_csfr_token_from_body(&body) { |
||||||
|
ResponseParse::NotLoggedIn { csrf_token } |
||||||
|
} else { |
||||||
|
todo!() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
Err(e) => ResponseParse::Error(e.to_string()), |
||||||
|
} |
||||||
|
} |
||||||
|
Err(e) => ResponseParse::Error(e.to_string()), |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
fn extract_calllog_from_body(body: &str) -> Option<CallLog> { |
||||||
|
//todo!()
|
||||||
|
None |
||||||
|
} |
||||||
|
|
||||||
|
fn extract_csfr_token_from_body(body: &str) -> Option<String> { |
||||||
|
let dom = Dom::parse(body); |
||||||
|
if let Ok(dom) = dom { |
||||||
|
for element in dom.children.iter() { |
||||||
|
if let Some(csfr_token) = extract_csrf_token_from_node(element) { |
||||||
|
return Some(csfr_token); |
||||||
|
} |
||||||
|
} |
||||||
|
None |
||||||
|
} else { |
||||||
|
println!("Unable to parse DOM"); |
||||||
|
None |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue