CLI utility to ingest embedded json metadata from yt-dlp downloads to a SQLite database file
yt-dlp
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: Proof of concept - it works, for the first time ever.

This is insanely poorly built but it kind of generates the db properly
so we'll at least start here

0xBA5E64 134ff9ab 1ec827a6

+1630 -70
+2 -1
.gitignore
··· 1 1 /target 2 2 .idea/* 3 - test-files 3 + test-files 4 + *.sqlite
+12
.sqlx/query-0e2129fa1949dbe5a40787be0f4897e2fbd5699f6d83c4d90a90fb7c97b789af.json
··· 1 + { 2 + "db_name": "SQLite", 3 + "query": "INSERT INTO videos (video_path, metadata) VALUES (?1, ?2)", 4 + "describe": { 5 + "columns": [], 6 + "parameters": { 7 + "Right": 2 8 + }, 9 + "nullable": [] 10 + }, 11 + "hash": "0e2129fa1949dbe5a40787be0f4897e2fbd5699f6d83c4d90a90fb7c97b789af" 12 + }
+1538 -51
Cargo.lock
··· 3 3 version = 4 4 4 5 5 [[package]] 6 + name = "allocator-api2" 7 + version = "0.2.21" 8 + source = "registry+https://github.com/rust-lang/crates.io-index" 9 + checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" 10 + 11 + [[package]] 6 12 name = "anstream" 7 13 version = "1.0.0" 8 14 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 34 40 35 41 [[package]] 36 42 name = "anstyle-query" 37 - version = "1.1.2" 43 + version = "1.1.5" 38 44 source = "registry+https://github.com/rust-lang/crates.io-index" 39 - checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" 45 + checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" 40 46 dependencies = [ 41 - "windows-sys", 47 + "windows-sys 0.61.2", 42 48 ] 43 49 44 50 [[package]] 45 51 name = "anstyle-wincon" 46 - version = "3.0.6" 52 + version = "3.0.11" 47 53 source = "registry+https://github.com/rust-lang/crates.io-index" 48 - checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" 54 + checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" 49 55 dependencies = [ 50 56 "anstyle", 51 - "windows-sys", 57 + "once_cell_polyfill", 58 + "windows-sys 0.61.2", 59 + ] 60 + 61 + [[package]] 62 + name = "atoi" 63 + version = "2.0.0" 64 + source = "registry+https://github.com/rust-lang/crates.io-index" 65 + checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528" 66 + dependencies = [ 67 + "num-traits", 68 + ] 69 + 70 + [[package]] 71 + name = "autocfg" 72 + version = "1.5.0" 73 + source = "registry+https://github.com/rust-lang/crates.io-index" 74 + checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" 75 + 76 + [[package]] 77 + name = "base64" 78 + version = "0.22.1" 79 + source = "registry+https://github.com/rust-lang/crates.io-index" 80 + checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" 81 + 82 + [[package]] 83 + name = "base64ct" 84 + version = "1.8.3" 85 + source = "registry+https://github.com/rust-lang/crates.io-index" 86 + checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" 87 + 88 + [[package]] 89 + name = "bitflags" 90 + version = "2.11.0" 91 + source = "registry+https://github.com/rust-lang/crates.io-index" 92 + checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" 93 + dependencies = [ 94 + "serde_core", 52 95 ] 53 96 54 97 [[package]] ··· 61 104 ] 62 105 63 106 [[package]] 107 + name = "block-buffer" 108 + version = "0.10.4" 109 + source = "registry+https://github.com/rust-lang/crates.io-index" 110 + checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 111 + dependencies = [ 112 + "generic-array", 113 + ] 114 + 115 + [[package]] 116 + name = "byteorder" 117 + version = "1.5.0" 118 + source = "registry+https://github.com/rust-lang/crates.io-index" 119 + checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 120 + 121 + [[package]] 122 + name = "bytes" 123 + version = "1.11.1" 124 + source = "registry+https://github.com/rust-lang/crates.io-index" 125 + checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" 126 + 127 + [[package]] 128 + name = "cc" 129 + version = "1.2.60" 130 + source = "registry+https://github.com/rust-lang/crates.io-index" 131 + checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" 132 + dependencies = [ 133 + "find-msvc-tools", 134 + "shlex", 135 + ] 136 + 137 + [[package]] 138 + name = "cfg-if" 139 + version = "1.0.4" 140 + source = "registry+https://github.com/rust-lang/crates.io-index" 141 + checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 142 + 143 + [[package]] 64 144 name = "clap" 65 145 version = "4.6.0" 66 146 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 102 182 103 183 [[package]] 104 184 name = "colorchoice" 105 - version = "1.0.3" 185 + version = "1.0.5" 186 + source = "registry+https://github.com/rust-lang/crates.io-index" 187 + checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" 188 + 189 + [[package]] 190 + name = "concurrent-queue" 191 + version = "2.5.0" 192 + source = "registry+https://github.com/rust-lang/crates.io-index" 193 + checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" 194 + dependencies = [ 195 + "crossbeam-utils", 196 + ] 197 + 198 + [[package]] 199 + name = "const-oid" 200 + version = "0.9.6" 106 201 source = "registry+https://github.com/rust-lang/crates.io-index" 107 - checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" 202 + checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 108 203 109 204 [[package]] 110 205 name = "core2" ··· 116 211 ] 117 212 118 213 [[package]] 214 + name = "cpufeatures" 215 + version = "0.2.17" 216 + source = "registry+https://github.com/rust-lang/crates.io-index" 217 + checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" 218 + dependencies = [ 219 + "libc", 220 + ] 221 + 222 + [[package]] 223 + name = "crc" 224 + version = "3.4.0" 225 + source = "registry+https://github.com/rust-lang/crates.io-index" 226 + checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" 227 + dependencies = [ 228 + "crc-catalog", 229 + ] 230 + 231 + [[package]] 232 + name = "crc-catalog" 233 + version = "2.4.0" 234 + source = "registry+https://github.com/rust-lang/crates.io-index" 235 + checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" 236 + 237 + [[package]] 238 + name = "crossbeam-queue" 239 + version = "0.3.12" 240 + source = "registry+https://github.com/rust-lang/crates.io-index" 241 + checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" 242 + dependencies = [ 243 + "crossbeam-utils", 244 + ] 245 + 246 + [[package]] 247 + name = "crossbeam-utils" 248 + version = "0.8.21" 249 + source = "registry+https://github.com/rust-lang/crates.io-index" 250 + checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" 251 + 252 + [[package]] 253 + name = "crypto-common" 254 + version = "0.1.7" 255 + source = "registry+https://github.com/rust-lang/crates.io-index" 256 + checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" 257 + dependencies = [ 258 + "generic-array", 259 + "typenum", 260 + ] 261 + 262 + [[package]] 263 + name = "der" 264 + version = "0.7.10" 265 + source = "registry+https://github.com/rust-lang/crates.io-index" 266 + checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" 267 + dependencies = [ 268 + "const-oid", 269 + "pem-rfc7468", 270 + "zeroize", 271 + ] 272 + 273 + [[package]] 274 + name = "digest" 275 + version = "0.10.7" 276 + source = "registry+https://github.com/rust-lang/crates.io-index" 277 + checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 278 + dependencies = [ 279 + "block-buffer", 280 + "const-oid", 281 + "crypto-common", 282 + "subtle", 283 + ] 284 + 285 + [[package]] 286 + name = "displaydoc" 287 + version = "0.2.5" 288 + source = "registry+https://github.com/rust-lang/crates.io-index" 289 + checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 290 + dependencies = [ 291 + "proc-macro2", 292 + "quote", 293 + "syn", 294 + ] 295 + 296 + [[package]] 297 + name = "dotenvy" 298 + version = "0.15.7" 299 + source = "registry+https://github.com/rust-lang/crates.io-index" 300 + checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" 301 + 302 + [[package]] 303 + name = "either" 304 + version = "1.15.0" 305 + source = "registry+https://github.com/rust-lang/crates.io-index" 306 + checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" 307 + dependencies = [ 308 + "serde", 309 + ] 310 + 311 + [[package]] 312 + name = "equivalent" 313 + version = "1.0.2" 314 + source = "registry+https://github.com/rust-lang/crates.io-index" 315 + checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 316 + 317 + [[package]] 318 + name = "errno" 319 + version = "0.3.14" 320 + source = "registry+https://github.com/rust-lang/crates.io-index" 321 + checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 322 + dependencies = [ 323 + "libc", 324 + "windows-sys 0.61.2", 325 + ] 326 + 327 + [[package]] 328 + name = "etcetera" 329 + version = "0.8.0" 330 + source = "registry+https://github.com/rust-lang/crates.io-index" 331 + checksum = "136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943" 332 + dependencies = [ 333 + "cfg-if", 334 + "home", 335 + "windows-sys 0.48.0", 336 + ] 337 + 338 + [[package]] 339 + name = "event-listener" 340 + version = "5.4.1" 341 + source = "registry+https://github.com/rust-lang/crates.io-index" 342 + checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" 343 + dependencies = [ 344 + "concurrent-queue", 345 + "parking", 346 + "pin-project-lite", 347 + ] 348 + 349 + [[package]] 350 + name = "find-msvc-tools" 351 + version = "0.1.9" 352 + source = "registry+https://github.com/rust-lang/crates.io-index" 353 + checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" 354 + 355 + [[package]] 356 + name = "flume" 357 + version = "0.11.1" 358 + source = "registry+https://github.com/rust-lang/crates.io-index" 359 + checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095" 360 + dependencies = [ 361 + "futures-core", 362 + "futures-sink", 363 + "spin", 364 + ] 365 + 366 + [[package]] 367 + name = "foldhash" 368 + version = "0.1.5" 369 + source = "registry+https://github.com/rust-lang/crates.io-index" 370 + checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" 371 + 372 + [[package]] 373 + name = "form_urlencoded" 374 + version = "1.2.2" 375 + source = "registry+https://github.com/rust-lang/crates.io-index" 376 + checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 377 + dependencies = [ 378 + "percent-encoding", 379 + ] 380 + 381 + [[package]] 382 + name = "futures-channel" 383 + version = "0.3.32" 384 + source = "registry+https://github.com/rust-lang/crates.io-index" 385 + checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" 386 + dependencies = [ 387 + "futures-core", 388 + "futures-sink", 389 + ] 390 + 391 + [[package]] 392 + name = "futures-core" 393 + version = "0.3.32" 394 + source = "registry+https://github.com/rust-lang/crates.io-index" 395 + checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" 396 + 397 + [[package]] 398 + name = "futures-executor" 399 + version = "0.3.32" 400 + source = "registry+https://github.com/rust-lang/crates.io-index" 401 + checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" 402 + dependencies = [ 403 + "futures-core", 404 + "futures-task", 405 + "futures-util", 406 + ] 407 + 408 + [[package]] 409 + name = "futures-intrusive" 410 + version = "0.5.0" 411 + source = "registry+https://github.com/rust-lang/crates.io-index" 412 + checksum = "1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f" 413 + dependencies = [ 414 + "futures-core", 415 + "lock_api", 416 + "parking_lot", 417 + ] 418 + 419 + [[package]] 420 + name = "futures-io" 421 + version = "0.3.32" 422 + source = "registry+https://github.com/rust-lang/crates.io-index" 423 + checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" 424 + 425 + [[package]] 426 + name = "futures-sink" 427 + version = "0.3.32" 428 + source = "registry+https://github.com/rust-lang/crates.io-index" 429 + checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" 430 + 431 + [[package]] 432 + name = "futures-task" 433 + version = "0.3.32" 434 + source = "registry+https://github.com/rust-lang/crates.io-index" 435 + checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" 436 + 437 + [[package]] 438 + name = "futures-util" 439 + version = "0.3.32" 440 + source = "registry+https://github.com/rust-lang/crates.io-index" 441 + checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" 442 + dependencies = [ 443 + "futures-core", 444 + "futures-io", 445 + "futures-sink", 446 + "futures-task", 447 + "memchr", 448 + "pin-project-lite", 449 + "slab", 450 + ] 451 + 452 + [[package]] 453 + name = "generic-array" 454 + version = "0.14.7" 455 + source = "registry+https://github.com/rust-lang/crates.io-index" 456 + checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 457 + dependencies = [ 458 + "typenum", 459 + "version_check", 460 + ] 461 + 462 + [[package]] 463 + name = "getrandom" 464 + version = "0.2.17" 465 + source = "registry+https://github.com/rust-lang/crates.io-index" 466 + checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" 467 + dependencies = [ 468 + "cfg-if", 469 + "libc", 470 + "wasi", 471 + ] 472 + 473 + [[package]] 474 + name = "hashbrown" 475 + version = "0.15.5" 476 + source = "registry+https://github.com/rust-lang/crates.io-index" 477 + checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" 478 + dependencies = [ 479 + "allocator-api2", 480 + "equivalent", 481 + "foldhash", 482 + ] 483 + 484 + [[package]] 485 + name = "hashbrown" 486 + version = "0.17.0" 487 + source = "registry+https://github.com/rust-lang/crates.io-index" 488 + checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" 489 + 490 + [[package]] 491 + name = "hashlink" 492 + version = "0.10.0" 493 + source = "registry+https://github.com/rust-lang/crates.io-index" 494 + checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1" 495 + dependencies = [ 496 + "hashbrown 0.15.5", 497 + ] 498 + 499 + [[package]] 119 500 name = "heck" 120 501 version = "0.5.0" 121 502 source = "registry+https://github.com/rust-lang/crates.io-index" 122 503 checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 123 504 124 505 [[package]] 506 + name = "hex" 507 + version = "0.4.3" 508 + source = "registry+https://github.com/rust-lang/crates.io-index" 509 + checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 510 + 511 + [[package]] 512 + name = "hkdf" 513 + version = "0.12.4" 514 + source = "registry+https://github.com/rust-lang/crates.io-index" 515 + checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" 516 + dependencies = [ 517 + "hmac", 518 + ] 519 + 520 + [[package]] 521 + name = "hmac" 522 + version = "0.12.1" 523 + source = "registry+https://github.com/rust-lang/crates.io-index" 524 + checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 525 + dependencies = [ 526 + "digest", 527 + ] 528 + 529 + [[package]] 530 + name = "home" 531 + version = "0.5.12" 532 + source = "registry+https://github.com/rust-lang/crates.io-index" 533 + checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" 534 + dependencies = [ 535 + "windows-sys 0.61.2", 536 + ] 537 + 538 + [[package]] 539 + name = "icu_collections" 540 + version = "2.2.0" 541 + source = "registry+https://github.com/rust-lang/crates.io-index" 542 + checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" 543 + dependencies = [ 544 + "displaydoc", 545 + "potential_utf", 546 + "utf8_iter", 547 + "yoke", 548 + "zerofrom", 549 + "zerovec", 550 + ] 551 + 552 + [[package]] 553 + name = "icu_locale_core" 554 + version = "2.2.0" 555 + source = "registry+https://github.com/rust-lang/crates.io-index" 556 + checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" 557 + dependencies = [ 558 + "displaydoc", 559 + "litemap", 560 + "tinystr", 561 + "writeable", 562 + "zerovec", 563 + ] 564 + 565 + [[package]] 566 + name = "icu_normalizer" 567 + version = "2.2.0" 568 + source = "registry+https://github.com/rust-lang/crates.io-index" 569 + checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" 570 + dependencies = [ 571 + "icu_collections", 572 + "icu_normalizer_data", 573 + "icu_properties", 574 + "icu_provider", 575 + "smallvec", 576 + "zerovec", 577 + ] 578 + 579 + [[package]] 580 + name = "icu_normalizer_data" 581 + version = "2.2.0" 582 + source = "registry+https://github.com/rust-lang/crates.io-index" 583 + checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" 584 + 585 + [[package]] 586 + name = "icu_properties" 587 + version = "2.2.0" 588 + source = "registry+https://github.com/rust-lang/crates.io-index" 589 + checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" 590 + dependencies = [ 591 + "icu_collections", 592 + "icu_locale_core", 593 + "icu_properties_data", 594 + "icu_provider", 595 + "zerotrie", 596 + "zerovec", 597 + ] 598 + 599 + [[package]] 600 + name = "icu_properties_data" 601 + version = "2.2.0" 602 + source = "registry+https://github.com/rust-lang/crates.io-index" 603 + checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" 604 + 605 + [[package]] 606 + name = "icu_provider" 607 + version = "2.2.0" 608 + source = "registry+https://github.com/rust-lang/crates.io-index" 609 + checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" 610 + dependencies = [ 611 + "displaydoc", 612 + "icu_locale_core", 613 + "writeable", 614 + "yoke", 615 + "zerofrom", 616 + "zerotrie", 617 + "zerovec", 618 + ] 619 + 620 + [[package]] 621 + name = "idna" 622 + version = "1.1.0" 623 + source = "registry+https://github.com/rust-lang/crates.io-index" 624 + checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 625 + dependencies = [ 626 + "idna_adapter", 627 + "smallvec", 628 + "utf8_iter", 629 + ] 630 + 631 + [[package]] 632 + name = "idna_adapter" 633 + version = "1.2.1" 634 + source = "registry+https://github.com/rust-lang/crates.io-index" 635 + checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 636 + dependencies = [ 637 + "icu_normalizer", 638 + "icu_properties", 639 + ] 640 + 641 + [[package]] 642 + name = "indexmap" 643 + version = "2.14.0" 644 + source = "registry+https://github.com/rust-lang/crates.io-index" 645 + checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" 646 + dependencies = [ 647 + "equivalent", 648 + "hashbrown 0.17.0", 649 + ] 650 + 651 + [[package]] 125 652 name = "is_terminal_polyfill" 126 - version = "1.70.1" 653 + version = "1.70.2" 127 654 source = "registry+https://github.com/rust-lang/crates.io-index" 128 - checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" 655 + checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" 129 656 130 657 [[package]] 131 658 name = "itoa" 132 - version = "1.0.11" 659 + version = "1.0.18" 660 + source = "registry+https://github.com/rust-lang/crates.io-index" 661 + checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" 662 + 663 + [[package]] 664 + name = "lazy_static" 665 + version = "1.5.0" 666 + source = "registry+https://github.com/rust-lang/crates.io-index" 667 + checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 668 + dependencies = [ 669 + "spin", 670 + ] 671 + 672 + [[package]] 673 + name = "libc" 674 + version = "0.2.185" 675 + source = "registry+https://github.com/rust-lang/crates.io-index" 676 + checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" 677 + 678 + [[package]] 679 + name = "libm" 680 + version = "0.2.16" 681 + source = "registry+https://github.com/rust-lang/crates.io-index" 682 + checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" 683 + 684 + [[package]] 685 + name = "libredox" 686 + version = "0.1.16" 687 + source = "registry+https://github.com/rust-lang/crates.io-index" 688 + checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" 689 + dependencies = [ 690 + "bitflags", 691 + "libc", 692 + "plain", 693 + "redox_syscall 0.7.4", 694 + ] 695 + 696 + [[package]] 697 + name = "libsqlite3-sys" 698 + version = "0.30.1" 699 + source = "registry+https://github.com/rust-lang/crates.io-index" 700 + checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149" 701 + dependencies = [ 702 + "cc", 703 + "pkg-config", 704 + "vcpkg", 705 + ] 706 + 707 + [[package]] 708 + name = "litemap" 709 + version = "0.8.2" 710 + source = "registry+https://github.com/rust-lang/crates.io-index" 711 + checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" 712 + 713 + [[package]] 714 + name = "lock_api" 715 + version = "0.4.14" 716 + source = "registry+https://github.com/rust-lang/crates.io-index" 717 + checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" 718 + dependencies = [ 719 + "scopeguard", 720 + ] 721 + 722 + [[package]] 723 + name = "log" 724 + version = "0.4.29" 133 725 source = "registry+https://github.com/rust-lang/crates.io-index" 134 - checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 726 + checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" 135 727 136 728 [[package]] 137 729 name = "matroska" ··· 144 736 ] 145 737 146 738 [[package]] 739 + name = "md-5" 740 + version = "0.10.6" 741 + source = "registry+https://github.com/rust-lang/crates.io-index" 742 + checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" 743 + dependencies = [ 744 + "cfg-if", 745 + "digest", 746 + ] 747 + 748 + [[package]] 147 749 name = "memchr" 148 - version = "2.7.4" 750 + version = "2.8.0" 751 + source = "registry+https://github.com/rust-lang/crates.io-index" 752 + checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" 753 + 754 + [[package]] 755 + name = "mio" 756 + version = "1.2.0" 757 + source = "registry+https://github.com/rust-lang/crates.io-index" 758 + checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" 759 + dependencies = [ 760 + "libc", 761 + "wasi", 762 + "windows-sys 0.61.2", 763 + ] 764 + 765 + [[package]] 766 + name = "num-bigint-dig" 767 + version = "0.8.6" 768 + source = "registry+https://github.com/rust-lang/crates.io-index" 769 + checksum = "e661dda6640fad38e827a6d4a310ff4763082116fe217f279885c97f511bb0b7" 770 + dependencies = [ 771 + "lazy_static", 772 + "libm", 773 + "num-integer", 774 + "num-iter", 775 + "num-traits", 776 + "rand", 777 + "smallvec", 778 + "zeroize", 779 + ] 780 + 781 + [[package]] 782 + name = "num-integer" 783 + version = "0.1.46" 784 + source = "registry+https://github.com/rust-lang/crates.io-index" 785 + checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" 786 + dependencies = [ 787 + "num-traits", 788 + ] 789 + 790 + [[package]] 791 + name = "num-iter" 792 + version = "0.1.45" 793 + source = "registry+https://github.com/rust-lang/crates.io-index" 794 + checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" 795 + dependencies = [ 796 + "autocfg", 797 + "num-integer", 798 + "num-traits", 799 + ] 800 + 801 + [[package]] 802 + name = "num-traits" 803 + version = "0.2.19" 149 804 source = "registry+https://github.com/rust-lang/crates.io-index" 150 - checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 805 + checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" 806 + dependencies = [ 807 + "autocfg", 808 + "libm", 809 + ] 810 + 811 + [[package]] 812 + name = "once_cell" 813 + version = "1.21.4" 814 + source = "registry+https://github.com/rust-lang/crates.io-index" 815 + checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" 816 + 817 + [[package]] 818 + name = "once_cell_polyfill" 819 + version = "1.70.2" 820 + source = "registry+https://github.com/rust-lang/crates.io-index" 821 + checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" 822 + 823 + [[package]] 824 + name = "parking" 825 + version = "2.2.1" 826 + source = "registry+https://github.com/rust-lang/crates.io-index" 827 + checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" 828 + 829 + [[package]] 830 + name = "parking_lot" 831 + version = "0.12.5" 832 + source = "registry+https://github.com/rust-lang/crates.io-index" 833 + checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" 834 + dependencies = [ 835 + "lock_api", 836 + "parking_lot_core", 837 + ] 838 + 839 + [[package]] 840 + name = "parking_lot_core" 841 + version = "0.9.12" 842 + source = "registry+https://github.com/rust-lang/crates.io-index" 843 + checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" 844 + dependencies = [ 845 + "cfg-if", 846 + "libc", 847 + "redox_syscall 0.5.18", 848 + "smallvec", 849 + "windows-link", 850 + ] 851 + 852 + [[package]] 853 + name = "pem-rfc7468" 854 + version = "0.7.0" 855 + source = "registry+https://github.com/rust-lang/crates.io-index" 856 + checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" 857 + dependencies = [ 858 + "base64ct", 859 + ] 860 + 861 + [[package]] 862 + name = "percent-encoding" 863 + version = "2.3.2" 864 + source = "registry+https://github.com/rust-lang/crates.io-index" 865 + checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 151 866 152 867 [[package]] 153 868 name = "phf" 154 - version = "0.11.2" 869 + version = "0.11.3" 155 870 source = "registry+https://github.com/rust-lang/crates.io-index" 156 - checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" 871 + checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" 157 872 dependencies = [ 158 873 "phf_macros", 159 874 "phf_shared", ··· 161 876 162 877 [[package]] 163 878 name = "phf_generator" 164 - version = "0.11.2" 879 + version = "0.11.3" 165 880 source = "registry+https://github.com/rust-lang/crates.io-index" 166 - checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" 881 + checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" 167 882 dependencies = [ 168 883 "phf_shared", 169 884 "rand", ··· 171 886 172 887 [[package]] 173 888 name = "phf_macros" 174 - version = "0.11.2" 889 + version = "0.11.3" 175 890 source = "registry+https://github.com/rust-lang/crates.io-index" 176 - checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" 891 + checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" 177 892 dependencies = [ 178 893 "phf_generator", 179 894 "phf_shared", ··· 184 899 185 900 [[package]] 186 901 name = "phf_shared" 187 - version = "0.11.2" 902 + version = "0.11.3" 188 903 source = "registry+https://github.com/rust-lang/crates.io-index" 189 - checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" 904 + checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" 190 905 dependencies = [ 191 906 "siphasher", 192 907 ] 193 908 194 909 [[package]] 910 + name = "pin-project-lite" 911 + version = "0.2.17" 912 + source = "registry+https://github.com/rust-lang/crates.io-index" 913 + checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" 914 + 915 + [[package]] 916 + name = "pkcs1" 917 + version = "0.7.5" 918 + source = "registry+https://github.com/rust-lang/crates.io-index" 919 + checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" 920 + dependencies = [ 921 + "der", 922 + "pkcs8", 923 + "spki", 924 + ] 925 + 926 + [[package]] 927 + name = "pkcs8" 928 + version = "0.10.2" 929 + source = "registry+https://github.com/rust-lang/crates.io-index" 930 + checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" 931 + dependencies = [ 932 + "der", 933 + "spki", 934 + ] 935 + 936 + [[package]] 937 + name = "pkg-config" 938 + version = "0.3.33" 939 + source = "registry+https://github.com/rust-lang/crates.io-index" 940 + checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" 941 + 942 + [[package]] 943 + name = "plain" 944 + version = "0.2.3" 945 + source = "registry+https://github.com/rust-lang/crates.io-index" 946 + checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" 947 + 948 + [[package]] 949 + name = "potential_utf" 950 + version = "0.1.5" 951 + source = "registry+https://github.com/rust-lang/crates.io-index" 952 + checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" 953 + dependencies = [ 954 + "zerovec", 955 + ] 956 + 957 + [[package]] 958 + name = "ppv-lite86" 959 + version = "0.2.21" 960 + source = "registry+https://github.com/rust-lang/crates.io-index" 961 + checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" 962 + dependencies = [ 963 + "zerocopy", 964 + ] 965 + 966 + [[package]] 195 967 name = "proc-macro2" 196 968 version = "1.0.106" 197 969 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 215 987 source = "registry+https://github.com/rust-lang/crates.io-index" 216 988 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 217 989 dependencies = [ 990 + "libc", 991 + "rand_chacha", 992 + "rand_core", 993 + ] 994 + 995 + [[package]] 996 + name = "rand_chacha" 997 + version = "0.3.1" 998 + source = "registry+https://github.com/rust-lang/crates.io-index" 999 + checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 1000 + dependencies = [ 1001 + "ppv-lite86", 218 1002 "rand_core", 219 1003 ] 220 1004 ··· 223 1007 version = "0.6.4" 224 1008 source = "registry+https://github.com/rust-lang/crates.io-index" 225 1009 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 1010 + dependencies = [ 1011 + "getrandom", 1012 + ] 1013 + 1014 + [[package]] 1015 + name = "redox_syscall" 1016 + version = "0.5.18" 1017 + source = "registry+https://github.com/rust-lang/crates.io-index" 1018 + checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" 1019 + dependencies = [ 1020 + "bitflags", 1021 + ] 1022 + 1023 + [[package]] 1024 + name = "redox_syscall" 1025 + version = "0.7.4" 1026 + source = "registry+https://github.com/rust-lang/crates.io-index" 1027 + checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" 1028 + dependencies = [ 1029 + "bitflags", 1030 + ] 1031 + 1032 + [[package]] 1033 + name = "rsa" 1034 + version = "0.9.10" 1035 + source = "registry+https://github.com/rust-lang/crates.io-index" 1036 + checksum = "b8573f03f5883dcaebdfcf4725caa1ecb9c15b2ef50c43a07b816e06799bb12d" 1037 + dependencies = [ 1038 + "const-oid", 1039 + "digest", 1040 + "num-bigint-dig", 1041 + "num-integer", 1042 + "num-traits", 1043 + "pkcs1", 1044 + "pkcs8", 1045 + "rand_core", 1046 + "signature", 1047 + "spki", 1048 + "subtle", 1049 + "zeroize", 1050 + ] 1051 + 1052 + [[package]] 1053 + name = "ryu" 1054 + version = "1.0.23" 1055 + source = "registry+https://github.com/rust-lang/crates.io-index" 1056 + checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" 1057 + 1058 + [[package]] 1059 + name = "same-file" 1060 + version = "1.0.6" 1061 + source = "registry+https://github.com/rust-lang/crates.io-index" 1062 + checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1063 + dependencies = [ 1064 + "winapi-util", 1065 + ] 1066 + 1067 + [[package]] 1068 + name = "scopeguard" 1069 + version = "1.2.0" 1070 + source = "registry+https://github.com/rust-lang/crates.io-index" 1071 + checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 226 1072 227 1073 [[package]] 228 1074 name = "serde" ··· 231 1077 checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 232 1078 dependencies = [ 233 1079 "serde_core", 1080 + "serde_derive", 234 1081 ] 235 1082 236 1083 [[package]] ··· 267 1114 ] 268 1115 269 1116 [[package]] 1117 + name = "serde_urlencoded" 1118 + version = "0.7.1" 1119 + source = "registry+https://github.com/rust-lang/crates.io-index" 1120 + checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 1121 + dependencies = [ 1122 + "form_urlencoded", 1123 + "itoa", 1124 + "ryu", 1125 + "serde", 1126 + ] 1127 + 1128 + [[package]] 1129 + name = "sha1" 1130 + version = "0.10.6" 1131 + source = "registry+https://github.com/rust-lang/crates.io-index" 1132 + checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 1133 + dependencies = [ 1134 + "cfg-if", 1135 + "cpufeatures", 1136 + "digest", 1137 + ] 1138 + 1139 + [[package]] 1140 + name = "sha2" 1141 + version = "0.10.9" 1142 + source = "registry+https://github.com/rust-lang/crates.io-index" 1143 + checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" 1144 + dependencies = [ 1145 + "cfg-if", 1146 + "cpufeatures", 1147 + "digest", 1148 + ] 1149 + 1150 + [[package]] 1151 + name = "shlex" 1152 + version = "1.3.0" 1153 + source = "registry+https://github.com/rust-lang/crates.io-index" 1154 + checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 1155 + 1156 + [[package]] 1157 + name = "signal-hook-registry" 1158 + version = "1.4.8" 1159 + source = "registry+https://github.com/rust-lang/crates.io-index" 1160 + checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" 1161 + dependencies = [ 1162 + "errno", 1163 + "libc", 1164 + ] 1165 + 1166 + [[package]] 1167 + name = "signature" 1168 + version = "2.2.0" 1169 + source = "registry+https://github.com/rust-lang/crates.io-index" 1170 + checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" 1171 + dependencies = [ 1172 + "digest", 1173 + "rand_core", 1174 + ] 1175 + 1176 + [[package]] 270 1177 name = "siphasher" 271 - version = "0.3.11" 1178 + version = "1.0.2" 1179 + source = "registry+https://github.com/rust-lang/crates.io-index" 1180 + checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" 1181 + 1182 + [[package]] 1183 + name = "slab" 1184 + version = "0.4.12" 1185 + source = "registry+https://github.com/rust-lang/crates.io-index" 1186 + checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" 1187 + 1188 + [[package]] 1189 + name = "smallvec" 1190 + version = "1.15.1" 1191 + source = "registry+https://github.com/rust-lang/crates.io-index" 1192 + checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 1193 + dependencies = [ 1194 + "serde", 1195 + ] 1196 + 1197 + [[package]] 1198 + name = "socket2" 1199 + version = "0.6.3" 1200 + source = "registry+https://github.com/rust-lang/crates.io-index" 1201 + checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" 1202 + dependencies = [ 1203 + "libc", 1204 + "windows-sys 0.61.2", 1205 + ] 1206 + 1207 + [[package]] 1208 + name = "spin" 1209 + version = "0.9.8" 1210 + source = "registry+https://github.com/rust-lang/crates.io-index" 1211 + checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1212 + dependencies = [ 1213 + "lock_api", 1214 + ] 1215 + 1216 + [[package]] 1217 + name = "spki" 1218 + version = "0.7.3" 1219 + source = "registry+https://github.com/rust-lang/crates.io-index" 1220 + checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" 1221 + dependencies = [ 1222 + "base64ct", 1223 + "der", 1224 + ] 1225 + 1226 + [[package]] 1227 + name = "sqlx" 1228 + version = "0.8.6" 1229 + source = "registry+https://github.com/rust-lang/crates.io-index" 1230 + checksum = "1fefb893899429669dcdd979aff487bd78f4064e5e7907e4269081e0ef7d97dc" 1231 + dependencies = [ 1232 + "sqlx-core", 1233 + "sqlx-macros", 1234 + "sqlx-mysql", 1235 + "sqlx-postgres", 1236 + "sqlx-sqlite", 1237 + ] 1238 + 1239 + [[package]] 1240 + name = "sqlx-core" 1241 + version = "0.8.6" 1242 + source = "registry+https://github.com/rust-lang/crates.io-index" 1243 + checksum = "ee6798b1838b6a0f69c007c133b8df5866302197e404e8b6ee8ed3e3a5e68dc6" 1244 + dependencies = [ 1245 + "base64", 1246 + "bytes", 1247 + "crc", 1248 + "crossbeam-queue", 1249 + "either", 1250 + "event-listener", 1251 + "futures-core", 1252 + "futures-intrusive", 1253 + "futures-io", 1254 + "futures-util", 1255 + "hashbrown 0.15.5", 1256 + "hashlink", 1257 + "indexmap", 1258 + "log", 1259 + "memchr", 1260 + "once_cell", 1261 + "percent-encoding", 1262 + "serde", 1263 + "serde_json", 1264 + "sha2", 1265 + "smallvec", 1266 + "thiserror", 1267 + "tokio", 1268 + "tokio-stream", 1269 + "tracing", 1270 + "url", 1271 + ] 1272 + 1273 + [[package]] 1274 + name = "sqlx-macros" 1275 + version = "0.8.6" 1276 + source = "registry+https://github.com/rust-lang/crates.io-index" 1277 + checksum = "a2d452988ccaacfbf5e0bdbc348fb91d7c8af5bee192173ac3636b5fb6e6715d" 1278 + dependencies = [ 1279 + "proc-macro2", 1280 + "quote", 1281 + "sqlx-core", 1282 + "sqlx-macros-core", 1283 + "syn", 1284 + ] 1285 + 1286 + [[package]] 1287 + name = "sqlx-macros-core" 1288 + version = "0.8.6" 272 1289 source = "registry+https://github.com/rust-lang/crates.io-index" 273 - checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" 1290 + checksum = "19a9c1841124ac5a61741f96e1d9e2ec77424bf323962dd894bdb93f37d5219b" 1291 + dependencies = [ 1292 + "dotenvy", 1293 + "either", 1294 + "heck", 1295 + "hex", 1296 + "once_cell", 1297 + "proc-macro2", 1298 + "quote", 1299 + "serde", 1300 + "serde_json", 1301 + "sha2", 1302 + "sqlx-core", 1303 + "sqlx-mysql", 1304 + "sqlx-postgres", 1305 + "sqlx-sqlite", 1306 + "syn", 1307 + "tokio", 1308 + "url", 1309 + ] 1310 + 1311 + [[package]] 1312 + name = "sqlx-mysql" 1313 + version = "0.8.6" 1314 + source = "registry+https://github.com/rust-lang/crates.io-index" 1315 + checksum = "aa003f0038df784eb8fecbbac13affe3da23b45194bd57dba231c8f48199c526" 1316 + dependencies = [ 1317 + "atoi", 1318 + "base64", 1319 + "bitflags", 1320 + "byteorder", 1321 + "bytes", 1322 + "crc", 1323 + "digest", 1324 + "dotenvy", 1325 + "either", 1326 + "futures-channel", 1327 + "futures-core", 1328 + "futures-io", 1329 + "futures-util", 1330 + "generic-array", 1331 + "hex", 1332 + "hkdf", 1333 + "hmac", 1334 + "itoa", 1335 + "log", 1336 + "md-5", 1337 + "memchr", 1338 + "once_cell", 1339 + "percent-encoding", 1340 + "rand", 1341 + "rsa", 1342 + "serde", 1343 + "sha1", 1344 + "sha2", 1345 + "smallvec", 1346 + "sqlx-core", 1347 + "stringprep", 1348 + "thiserror", 1349 + "tracing", 1350 + "whoami", 1351 + ] 1352 + 1353 + [[package]] 1354 + name = "sqlx-postgres" 1355 + version = "0.8.6" 1356 + source = "registry+https://github.com/rust-lang/crates.io-index" 1357 + checksum = "db58fcd5a53cf07c184b154801ff91347e4c30d17a3562a635ff028ad5deda46" 1358 + dependencies = [ 1359 + "atoi", 1360 + "base64", 1361 + "bitflags", 1362 + "byteorder", 1363 + "crc", 1364 + "dotenvy", 1365 + "etcetera", 1366 + "futures-channel", 1367 + "futures-core", 1368 + "futures-util", 1369 + "hex", 1370 + "hkdf", 1371 + "hmac", 1372 + "home", 1373 + "itoa", 1374 + "log", 1375 + "md-5", 1376 + "memchr", 1377 + "once_cell", 1378 + "rand", 1379 + "serde", 1380 + "serde_json", 1381 + "sha2", 1382 + "smallvec", 1383 + "sqlx-core", 1384 + "stringprep", 1385 + "thiserror", 1386 + "tracing", 1387 + "whoami", 1388 + ] 1389 + 1390 + [[package]] 1391 + name = "sqlx-sqlite" 1392 + version = "0.8.6" 1393 + source = "registry+https://github.com/rust-lang/crates.io-index" 1394 + checksum = "c2d12fe70b2c1b4401038055f90f151b78208de1f9f89a7dbfd41587a10c3eea" 1395 + dependencies = [ 1396 + "atoi", 1397 + "flume", 1398 + "futures-channel", 1399 + "futures-core", 1400 + "futures-executor", 1401 + "futures-intrusive", 1402 + "futures-util", 1403 + "libsqlite3-sys", 1404 + "log", 1405 + "percent-encoding", 1406 + "serde", 1407 + "serde_urlencoded", 1408 + "sqlx-core", 1409 + "thiserror", 1410 + "tracing", 1411 + "url", 1412 + ] 1413 + 1414 + [[package]] 1415 + name = "stable_deref_trait" 1416 + version = "1.2.1" 1417 + source = "registry+https://github.com/rust-lang/crates.io-index" 1418 + checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 1419 + 1420 + [[package]] 1421 + name = "stringprep" 1422 + version = "0.1.5" 1423 + source = "registry+https://github.com/rust-lang/crates.io-index" 1424 + checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" 1425 + dependencies = [ 1426 + "unicode-bidi", 1427 + "unicode-normalization", 1428 + "unicode-properties", 1429 + ] 274 1430 275 1431 [[package]] 276 1432 name = "strsim" ··· 279 1435 checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 280 1436 281 1437 [[package]] 1438 + name = "subtle" 1439 + version = "2.6.1" 1440 + source = "registry+https://github.com/rust-lang/crates.io-index" 1441 + checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" 1442 + 1443 + [[package]] 282 1444 name = "syn" 283 1445 version = "2.0.117" 284 1446 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 290 1452 ] 291 1453 292 1454 [[package]] 1455 + name = "synstructure" 1456 + version = "0.13.2" 1457 + source = "registry+https://github.com/rust-lang/crates.io-index" 1458 + checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 1459 + dependencies = [ 1460 + "proc-macro2", 1461 + "quote", 1462 + "syn", 1463 + ] 1464 + 1465 + [[package]] 293 1466 name = "thiserror" 294 1467 version = "2.0.18" 295 1468 source = "registry+https://github.com/rust-lang/crates.io-index" ··· 310 1483 ] 311 1484 312 1485 [[package]] 1486 + name = "tinystr" 1487 + version = "0.8.3" 1488 + source = "registry+https://github.com/rust-lang/crates.io-index" 1489 + checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" 1490 + dependencies = [ 1491 + "displaydoc", 1492 + "zerovec", 1493 + ] 1494 + 1495 + [[package]] 1496 + name = "tinyvec" 1497 + version = "1.11.0" 1498 + source = "registry+https://github.com/rust-lang/crates.io-index" 1499 + checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" 1500 + dependencies = [ 1501 + "tinyvec_macros", 1502 + ] 1503 + 1504 + [[package]] 1505 + name = "tinyvec_macros" 1506 + version = "0.1.1" 1507 + source = "registry+https://github.com/rust-lang/crates.io-index" 1508 + checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 1509 + 1510 + [[package]] 1511 + name = "tokio" 1512 + version = "1.51.1" 1513 + source = "registry+https://github.com/rust-lang/crates.io-index" 1514 + checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" 1515 + dependencies = [ 1516 + "bytes", 1517 + "libc", 1518 + "mio", 1519 + "parking_lot", 1520 + "pin-project-lite", 1521 + "signal-hook-registry", 1522 + "socket2", 1523 + "tokio-macros", 1524 + "windows-sys 0.61.2", 1525 + ] 1526 + 1527 + [[package]] 1528 + name = "tokio-macros" 1529 + version = "2.7.0" 1530 + source = "registry+https://github.com/rust-lang/crates.io-index" 1531 + checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" 1532 + dependencies = [ 1533 + "proc-macro2", 1534 + "quote", 1535 + "syn", 1536 + ] 1537 + 1538 + [[package]] 1539 + name = "tokio-stream" 1540 + version = "0.1.18" 1541 + source = "registry+https://github.com/rust-lang/crates.io-index" 1542 + checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" 1543 + dependencies = [ 1544 + "futures-core", 1545 + "pin-project-lite", 1546 + "tokio", 1547 + ] 1548 + 1549 + [[package]] 1550 + name = "tracing" 1551 + version = "0.1.44" 1552 + source = "registry+https://github.com/rust-lang/crates.io-index" 1553 + checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" 1554 + dependencies = [ 1555 + "log", 1556 + "pin-project-lite", 1557 + "tracing-attributes", 1558 + "tracing-core", 1559 + ] 1560 + 1561 + [[package]] 1562 + name = "tracing-attributes" 1563 + version = "0.1.31" 1564 + source = "registry+https://github.com/rust-lang/crates.io-index" 1565 + checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" 1566 + dependencies = [ 1567 + "proc-macro2", 1568 + "quote", 1569 + "syn", 1570 + ] 1571 + 1572 + [[package]] 1573 + name = "tracing-core" 1574 + version = "0.1.36" 1575 + source = "registry+https://github.com/rust-lang/crates.io-index" 1576 + checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" 1577 + dependencies = [ 1578 + "once_cell", 1579 + ] 1580 + 1581 + [[package]] 1582 + name = "typenum" 1583 + version = "1.19.0" 1584 + source = "registry+https://github.com/rust-lang/crates.io-index" 1585 + checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" 1586 + 1587 + [[package]] 1588 + name = "unicode-bidi" 1589 + version = "0.3.18" 1590 + source = "registry+https://github.com/rust-lang/crates.io-index" 1591 + checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" 1592 + 1593 + [[package]] 313 1594 name = "unicode-ident" 314 - version = "1.0.13" 1595 + version = "1.0.24" 1596 + source = "registry+https://github.com/rust-lang/crates.io-index" 1597 + checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" 1598 + 1599 + [[package]] 1600 + name = "unicode-normalization" 1601 + version = "0.1.25" 1602 + source = "registry+https://github.com/rust-lang/crates.io-index" 1603 + checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" 1604 + dependencies = [ 1605 + "tinyvec", 1606 + ] 1607 + 1608 + [[package]] 1609 + name = "unicode-properties" 1610 + version = "0.1.4" 1611 + source = "registry+https://github.com/rust-lang/crates.io-index" 1612 + checksum = "7df058c713841ad818f1dc5d3fd88063241cc61f49f5fbea4b951e8cf5a8d71d" 1613 + 1614 + [[package]] 1615 + name = "url" 1616 + version = "2.5.8" 1617 + source = "registry+https://github.com/rust-lang/crates.io-index" 1618 + checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" 1619 + dependencies = [ 1620 + "form_urlencoded", 1621 + "idna", 1622 + "percent-encoding", 1623 + "serde", 1624 + ] 1625 + 1626 + [[package]] 1627 + name = "utf8_iter" 1628 + version = "1.0.4" 315 1629 source = "registry+https://github.com/rust-lang/crates.io-index" 316 - checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" 1630 + checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 317 1631 318 1632 [[package]] 319 1633 name = "utf8parse" ··· 322 1636 checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" 323 1637 324 1638 [[package]] 1639 + name = "vcpkg" 1640 + version = "0.2.15" 1641 + source = "registry+https://github.com/rust-lang/crates.io-index" 1642 + checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1643 + 1644 + [[package]] 1645 + name = "version_check" 1646 + version = "0.9.5" 1647 + source = "registry+https://github.com/rust-lang/crates.io-index" 1648 + checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" 1649 + 1650 + [[package]] 1651 + name = "walkdir" 1652 + version = "2.5.0" 1653 + source = "registry+https://github.com/rust-lang/crates.io-index" 1654 + checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" 1655 + dependencies = [ 1656 + "same-file", 1657 + "winapi-util", 1658 + ] 1659 + 1660 + [[package]] 1661 + name = "wasi" 1662 + version = "0.11.1+wasi-snapshot-preview1" 1663 + source = "registry+https://github.com/rust-lang/crates.io-index" 1664 + checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1665 + 1666 + [[package]] 1667 + name = "wasite" 1668 + version = "0.1.0" 1669 + source = "registry+https://github.com/rust-lang/crates.io-index" 1670 + checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" 1671 + 1672 + [[package]] 1673 + name = "whoami" 1674 + version = "1.6.1" 1675 + source = "registry+https://github.com/rust-lang/crates.io-index" 1676 + checksum = "5d4a4db5077702ca3015d3d02d74974948aba2ad9e12ab7df718ee64ccd7e97d" 1677 + dependencies = [ 1678 + "libredox", 1679 + "wasite", 1680 + ] 1681 + 1682 + [[package]] 1683 + name = "winapi-util" 1684 + version = "0.1.11" 1685 + source = "registry+https://github.com/rust-lang/crates.io-index" 1686 + checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" 1687 + dependencies = [ 1688 + "windows-sys 0.61.2", 1689 + ] 1690 + 1691 + [[package]] 1692 + name = "windows-link" 1693 + version = "0.2.1" 1694 + source = "registry+https://github.com/rust-lang/crates.io-index" 1695 + checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 1696 + 1697 + [[package]] 325 1698 name = "windows-sys" 326 - version = "0.59.0" 1699 + version = "0.48.0" 327 1700 source = "registry+https://github.com/rust-lang/crates.io-index" 328 - checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1701 + checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 329 1702 dependencies = [ 330 1703 "windows-targets", 331 1704 ] 332 1705 333 1706 [[package]] 1707 + name = "windows-sys" 1708 + version = "0.61.2" 1709 + source = "registry+https://github.com/rust-lang/crates.io-index" 1710 + checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 1711 + dependencies = [ 1712 + "windows-link", 1713 + ] 1714 + 1715 + [[package]] 334 1716 name = "windows-targets" 335 - version = "0.52.6" 1717 + version = "0.48.5" 336 1718 source = "registry+https://github.com/rust-lang/crates.io-index" 337 - checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1719 + checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 338 1720 dependencies = [ 339 1721 "windows_aarch64_gnullvm", 340 1722 "windows_aarch64_msvc", 341 1723 "windows_i686_gnu", 342 - "windows_i686_gnullvm", 343 1724 "windows_i686_msvc", 344 1725 "windows_x86_64_gnu", 345 1726 "windows_x86_64_gnullvm", ··· 348 1729 349 1730 [[package]] 350 1731 name = "windows_aarch64_gnullvm" 351 - version = "0.52.6" 1732 + version = "0.48.5" 352 1733 source = "registry+https://github.com/rust-lang/crates.io-index" 353 - checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1734 + checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 354 1735 355 1736 [[package]] 356 1737 name = "windows_aarch64_msvc" 357 - version = "0.52.6" 1738 + version = "0.48.5" 358 1739 source = "registry+https://github.com/rust-lang/crates.io-index" 359 - checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1740 + checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 360 1741 361 1742 [[package]] 362 1743 name = "windows_i686_gnu" 363 - version = "0.52.6" 1744 + version = "0.48.5" 364 1745 source = "registry+https://github.com/rust-lang/crates.io-index" 365 - checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 366 - 367 - [[package]] 368 - name = "windows_i686_gnullvm" 369 - version = "0.52.6" 370 - source = "registry+https://github.com/rust-lang/crates.io-index" 371 - checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1746 + checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 372 1747 373 1748 [[package]] 374 1749 name = "windows_i686_msvc" 375 - version = "0.52.6" 1750 + version = "0.48.5" 376 1751 source = "registry+https://github.com/rust-lang/crates.io-index" 377 - checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1752 + checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 378 1753 379 1754 [[package]] 380 1755 name = "windows_x86_64_gnu" 381 - version = "0.52.6" 1756 + version = "0.48.5" 382 1757 source = "registry+https://github.com/rust-lang/crates.io-index" 383 - checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1758 + checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 384 1759 385 1760 [[package]] 386 1761 name = "windows_x86_64_gnullvm" 387 - version = "0.52.6" 1762 + version = "0.48.5" 388 1763 source = "registry+https://github.com/rust-lang/crates.io-index" 389 - checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1764 + checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 390 1765 391 1766 [[package]] 392 1767 name = "windows_x86_64_msvc" 393 - version = "0.52.6" 1768 + version = "0.48.5" 394 1769 source = "registry+https://github.com/rust-lang/crates.io-index" 395 - checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1770 + checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1771 + 1772 + [[package]] 1773 + name = "writeable" 1774 + version = "0.6.3" 1775 + source = "registry+https://github.com/rust-lang/crates.io-index" 1776 + checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" 396 1777 397 1778 [[package]] 398 1779 name = "ydjr" ··· 401 1782 "clap", 402 1783 "matroska", 403 1784 "serde_json", 1785 + "sqlx", 404 1786 "thiserror", 1787 + "tokio", 1788 + "walkdir", 1789 + ] 1790 + 1791 + [[package]] 1792 + name = "yoke" 1793 + version = "0.8.2" 1794 + source = "registry+https://github.com/rust-lang/crates.io-index" 1795 + checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" 1796 + dependencies = [ 1797 + "stable_deref_trait", 1798 + "yoke-derive", 1799 + "zerofrom", 1800 + ] 1801 + 1802 + [[package]] 1803 + name = "yoke-derive" 1804 + version = "0.8.2" 1805 + source = "registry+https://github.com/rust-lang/crates.io-index" 1806 + checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" 1807 + dependencies = [ 1808 + "proc-macro2", 1809 + "quote", 1810 + "syn", 1811 + "synstructure", 1812 + ] 1813 + 1814 + [[package]] 1815 + name = "zerocopy" 1816 + version = "0.8.48" 1817 + source = "registry+https://github.com/rust-lang/crates.io-index" 1818 + checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" 1819 + dependencies = [ 1820 + "zerocopy-derive", 1821 + ] 1822 + 1823 + [[package]] 1824 + name = "zerocopy-derive" 1825 + version = "0.8.48" 1826 + source = "registry+https://github.com/rust-lang/crates.io-index" 1827 + checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" 1828 + dependencies = [ 1829 + "proc-macro2", 1830 + "quote", 1831 + "syn", 1832 + ] 1833 + 1834 + [[package]] 1835 + name = "zerofrom" 1836 + version = "0.1.7" 1837 + source = "registry+https://github.com/rust-lang/crates.io-index" 1838 + checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" 1839 + dependencies = [ 1840 + "zerofrom-derive", 1841 + ] 1842 + 1843 + [[package]] 1844 + name = "zerofrom-derive" 1845 + version = "0.1.7" 1846 + source = "registry+https://github.com/rust-lang/crates.io-index" 1847 + checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" 1848 + dependencies = [ 1849 + "proc-macro2", 1850 + "quote", 1851 + "syn", 1852 + "synstructure", 1853 + ] 1854 + 1855 + [[package]] 1856 + name = "zeroize" 1857 + version = "1.8.2" 1858 + source = "registry+https://github.com/rust-lang/crates.io-index" 1859 + checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" 1860 + 1861 + [[package]] 1862 + name = "zerotrie" 1863 + version = "0.2.4" 1864 + source = "registry+https://github.com/rust-lang/crates.io-index" 1865 + checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" 1866 + dependencies = [ 1867 + "displaydoc", 1868 + "yoke", 1869 + "zerofrom", 1870 + ] 1871 + 1872 + [[package]] 1873 + name = "zerovec" 1874 + version = "0.11.6" 1875 + source = "registry+https://github.com/rust-lang/crates.io-index" 1876 + checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" 1877 + dependencies = [ 1878 + "yoke", 1879 + "zerofrom", 1880 + "zerovec-derive", 1881 + ] 1882 + 1883 + [[package]] 1884 + name = "zerovec-derive" 1885 + version = "0.11.3" 1886 + source = "registry+https://github.com/rust-lang/crates.io-index" 1887 + checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" 1888 + dependencies = [ 1889 + "proc-macro2", 1890 + "quote", 1891 + "syn", 405 1892 ] 406 1893 407 1894 [[package]]
+3
Cargo.toml
··· 7 7 clap = { version = "4.6.0", features = ["derive"] } 8 8 matroska = "0.30.0" 9 9 serde_json = "1.0.149" 10 + sqlx = { version = "0.8.6", features = ["sqlite", "migrate", "runtime-tokio"] } 10 11 thiserror = "2.0.18" 12 + tokio = { version = "1.51.1", features = ["full"] } 13 + walkdir = "2.5.0"
+2
migrations/20260413192924_init.down.sql
··· 1 + -- Add down migration script here 2 + DROP TABLE videos;
+5
migrations/20260413192924_init.up.sql
··· 1 + -- Add up migration script here 2 + CREATE TABLE videos ( 3 + video_path text NOT NULL UNIQUE, 4 + metadata text NOT NULL 5 + )
+49 -10
src/lib.rs
··· 1 - use std::{fs, io, path::PathBuf}; 1 + use sqlx::{Acquire, SqliteConnection}; 2 2 use std::fs::DirEntry; 3 + use std::{fs, io, path::PathBuf}; 3 4 use thiserror::Error; 5 + use walkdir::WalkDir; 4 6 5 7 #[derive(Error, Debug)] 6 8 pub enum ExtractError { ··· 8 10 FileOpenError, 9 11 #[error("Failed to parse file")] 10 12 FileParseError, 13 + #[error("Failed to find json in file")] 14 + FindJsonEmbedError, 11 15 #[error("Failed to parse json")] 12 - JsonParseError 16 + JsonParseError, 13 17 } 14 18 15 19 fn extract_json_metadata(file: &PathBuf) -> Result<serde_json::Value, ExtractError> { 16 20 // Parse the Matroska file 17 - let matroska = 18 - matroska::open(file).map_err(|_| ExtractError::FileParseError)?; 21 + let matroska = matroska::open(file).map_err(|_| ExtractError::FileParseError)?; 19 22 // Find the json attachment 20 23 let json_attachment = matroska 21 24 .attachments 22 25 .into_iter() 23 - .find(|x| x.name.ends_with(".json")).ok_or(ExtractError::FileParseError)?; 26 + .find(|x| x.name.ends_with(".json")) 27 + .ok_or(ExtractError::FindJsonEmbedError)?; 24 28 25 29 // Parse it as JSON and return the result 26 - serde_json::from_slice(&json_attachment.data) 27 - .map_err(|_| ExtractError::JsonParseError) 30 + serde_json::from_slice(&json_attachment.data).map_err(|_| ExtractError::JsonParseError) 28 31 } 29 32 30 33 // Renames "file" to "new_name" without changing its directory ··· 50 53 } 51 54 52 55 pub fn rename_videos(in_dir: PathBuf) -> io::Result<()> { 53 - 54 56 let mut renamed_videos: Vec<PathBuf> = Vec::new(); 55 57 let mut failed_videos: Vec<PathBuf> = Vec::new(); 56 58 ··· 64 66 .map(|x: DirEntry| x.path()) 65 67 { 66 68 match rename_video(&entry) { 67 - Ok(_i) => renamed_videos.push(entry), 68 - Err(_e) => failed_videos.push(entry) 69 + Ok(_i) => renamed_videos.push(entry), 70 + Err(_e) => failed_videos.push(entry), 69 71 } 70 72 } 71 73 ··· 74 76 } 75 77 Ok(()) 76 78 } 79 + 80 + pub async fn index_videos(in_dir: PathBuf, db: &mut SqliteConnection) -> io::Result<()> { 81 + let files: Vec<PathBuf> = tokio::task::block_in_place(|| { 82 + WalkDir::new(&in_dir) 83 + .follow_links(false) 84 + .into_iter() 85 + .filter_map(|entry| entry.ok()) 86 + .filter(|entry| { 87 + entry.file_type().is_file() 88 + && entry 89 + .path() 90 + .extension() 91 + .map_or(false, |entry| entry.eq_ignore_ascii_case("mkv")) 92 + }) 93 + .map(|x| x.path().to_path_buf()) 94 + .collect() 95 + }); 96 + println!("Indexing {} videos.", files.len()); 97 + for path in files { 98 + //println!("Found MKV video: {}", path.display()); 99 + let video_path = path.display().to_string(); 100 + if let Ok(json) = extract_json_metadata(&path) { 101 + sqlx::query!( 102 + "INSERT INTO videos (video_path, metadata) VALUES (?1, ?2)", 103 + video_path, 104 + json 105 + ) 106 + .execute(db.acquire().await.unwrap()) 107 + .await 108 + .unwrap(); 109 + } else { 110 + continue; 111 + } 112 + } 113 + 114 + Ok(()) 115 + }
+19 -8
src/main.rs
··· 1 - use std::path::PathBuf; 2 - use std::io; 3 - 4 - use ydjr::*; 5 - 6 1 use clap::Parser; 2 + use sqlx::sqlite::SqliteConnectOptions; 3 + use sqlx::{migrate, ConnectOptions}; 4 + use std::io; 5 + use std::path::PathBuf; 6 + use ydjr::index_videos; 7 7 8 8 #[derive(Parser, Debug)] 9 9 #[command(version, about, long_about = None)] ··· 12 12 path: String, 13 13 } 14 14 15 - fn main() -> io::Result<()> { 15 + #[tokio::main] 16 + async fn main() -> io::Result<()> { 16 17 let args = Args::parse(); 18 + let dir = PathBuf::from(args.path); 17 19 18 - let dir = PathBuf::from(args.path); 20 + let mut db = SqliteConnectOptions::new() 21 + .filename("db.sqlite") 22 + .create_if_missing(true) 23 + .connect() 24 + .await 25 + .unwrap(); 26 + 27 + migrate!("./migrations").run(&mut db).await.unwrap(); 19 28 20 - rename_videos(dir) 29 + println!("db: {:?}", db); 30 + 31 + index_videos(dir, &mut db).await 21 32 }