fix: fix tests for temp

This commit is contained in:
master 2024-12-29 03:04:28 +08:00
parent c8007078c0
commit 4177efc991
12 changed files with 154 additions and 149 deletions

201
Cargo.lock generated
View File

@ -210,7 +210,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -221,7 +221,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -352,7 +352,7 @@ checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -606,7 +606,7 @@ dependencies = [
"proc-macro-crate", "proc-macro-crate",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -710,9 +710,9 @@ checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.2.5" version = "1.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333"
dependencies = [ dependencies = [
"jobserver", "jobserver",
"libc", "libc",
@ -809,7 +809,7 @@ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1122,7 +1122,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
dependencies = [ dependencies = [
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1146,7 +1146,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"strsim", "strsim",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1157,7 +1157,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [ dependencies = [
"darling_core", "darling_core",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1227,7 +1227,7 @@ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1237,7 +1237,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c"
dependencies = [ dependencies = [
"derive_builder_core", "derive_builder_core",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1248,7 +1248,7 @@ checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1347,7 +1347,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1679,7 +1679,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -1694,12 +1694,6 @@ version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988"
[[package]]
name = "futures-timer"
version = "3.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
[[package]] [[package]]
name = "futures-util" name = "futures-util"
version = "0.3.31" version = "0.3.31"
@ -1964,7 +1958,7 @@ dependencies = [
"markup5ever", "markup5ever",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -2287,7 +2281,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -2398,7 +2392,7 @@ checksum = "0122b7114117e64a63ac49f752a5ca4624d534c7b1c7de796ac196381cd2d947"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -2958,7 +2952,7 @@ dependencies = [
"tracing-subscriber", "tracing-subscriber",
"ulid", "ulid",
"uuid", "uuid",
"validator 0.18.1", "validator",
] ]
[[package]] [[package]]
@ -3217,7 +3211,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3346,7 +3340,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3423,7 +3417,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"proc-macro2-diagnostics", "proc-macro2-diagnostics",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3544,7 +3538,7 @@ dependencies = [
"regex", "regex",
"regex-syntax 0.8.5", "regex-syntax 0.8.5",
"structmeta", "structmeta",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3635,7 +3629,7 @@ dependencies = [
"pest_meta", "pest_meta",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3699,7 +3693,7 @@ dependencies = [
"phf_shared 0.11.2", "phf_shared 0.11.2",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3842,7 +3836,7 @@ dependencies = [
"proc-macro-error-attr2", "proc-macro-error-attr2",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -3862,7 +3856,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
"version_check", "version_check",
"yansi", "yansi",
] ]
@ -4016,9 +4010,9 @@ dependencies = [
[[package]] [[package]]
name = "quote" name = "quote"
version = "1.0.37" version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
] ]
@ -4104,9 +4098,7 @@ dependencies = [
"chrono", "chrono",
"eyre", "eyre",
"fancy-regex", "fancy-regex",
"futures",
"html-escape", "html-escape",
"include_dir",
"insta", "insta",
"itertools 0.13.0", "itertools 0.13.0",
"lazy_static", "lazy_static",
@ -4123,7 +4115,6 @@ dependencies = [
"reqwest-retry", "reqwest-retry",
"reqwest-tracing", "reqwest-tracing",
"rss", "rss",
"rstest",
"scraper", "scraper",
"sea-orm", "sea-orm",
"sea-orm-migration", "sea-orm-migration",
@ -4131,8 +4122,6 @@ dependencies = [
"serde_json", "serde_json",
"serde_with", "serde_with",
"serial_test", "serial_test",
"testcontainers",
"testcontainers-modules",
"thiserror 2.0.9", "thiserror 2.0.9",
"tokio", "tokio",
"torrent", "torrent",
@ -4140,7 +4129,6 @@ dependencies = [
"tracing-subscriber", "tracing-subscriber",
"url", "url",
"uuid", "uuid",
"validator 0.19.0",
"zune-image", "zune-image",
] ]
@ -4246,12 +4234,6 @@ version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "relative-path"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
[[package]] [[package]]
name = "rend" name = "rend"
version = "0.4.2" version = "0.4.2"
@ -4480,36 +4462,6 @@ dependencies = [
"quick-xml 0.37.1", "quick-xml 0.37.1",
] ]
[[package]]
name = "rstest"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0a2c585be59b6b5dd66a9d2084aa1d8bd52fbdb806eafdeffb52791147862035"
dependencies = [
"futures",
"futures-timer",
"rstest_macros",
"rustc_version",
]
[[package]]
name = "rstest_macros"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "825ea780781b15345a146be27eaefb05085e337e869bff01b4306a4fd4a9ad5a"
dependencies = [
"cfg-if",
"glob",
"proc-macro-crate",
"proc-macro2",
"quote",
"regex",
"relative-path",
"rustc_version",
"syn 2.0.91",
"unicode-ident",
]
[[package]] [[package]]
name = "rust-multipart-rfc7578_2" name = "rust-multipart-rfc7578_2"
version = "0.6.1" version = "0.6.1"
@ -4635,9 +4587,9 @@ dependencies = [
[[package]] [[package]]
name = "rustversion" name = "rustversion"
version = "1.0.18" version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
[[package]] [[package]]
name = "rusty-sidekiq" name = "rusty-sidekiq"
@ -4684,9 +4636,9 @@ dependencies = [
[[package]] [[package]]
name = "scc" name = "scc"
version = "2.2.6" version = "2.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94b13f8ea6177672c49d12ed964cca44836f59621981b04a3e26b87e675181de" checksum = "28e1c91382686d21b5ac7959341fcb9780fa7c03773646995a87c950fa7be640"
dependencies = [ dependencies = [
"sdd", "sdd",
] ]
@ -4737,7 +4689,7 @@ dependencies = [
"proc-macro-error2", "proc-macro-error2",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -4795,7 +4747,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"sea-bae", "sea-bae",
"syn 2.0.91", "syn 2.0.92",
"unicode-ident", "unicode-ident",
] ]
@ -4859,15 +4811,15 @@ dependencies = [
"heck 0.4.1", "heck 0.4.1",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
"thiserror 1.0.69", "thiserror 1.0.69",
] ]
[[package]] [[package]]
name = "sea-schema" name = "sea-schema"
version = "0.16.0" version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aab1592d17860a9a8584d9b549aebcd06f7bdc3ff615f71752486ba0b05b1e6e" checksum = "0ef5dd7848c993f3789d09a2616484c72c9330cae2b048df59d8c9b8c0343e95"
dependencies = [ dependencies = [
"futures", "futures",
"sea-query", "sea-query",
@ -4883,7 +4835,7 @@ dependencies = [
"heck 0.4.1", "heck 0.4.1",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -4942,9 +4894,9 @@ checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba"
[[package]] [[package]]
name = "serde" name = "serde"
version = "1.0.216" version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
dependencies = [ dependencies = [
"serde_derive", "serde_derive",
] ]
@ -4961,13 +4913,13 @@ dependencies = [
[[package]] [[package]]
name = "serde_derive" name = "serde_derive"
version = "1.0.216" version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5010,7 +4962,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5070,7 +5022,7 @@ dependencies = [
"darling", "darling",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5108,7 +5060,7 @@ checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5308,7 +5260,7 @@ dependencies = [
"heck 0.5.0", "heck 0.5.0",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5420,7 +5372,7 @@ dependencies = [
"quote", "quote",
"sqlx-core", "sqlx-core",
"sqlx-macros-core", "sqlx-macros-core",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5443,7 +5395,7 @@ dependencies = [
"sqlx-mysql", "sqlx-mysql",
"sqlx-postgres", "sqlx-postgres",
"sqlx-sqlite", "sqlx-sqlite",
"syn 2.0.91", "syn 2.0.92",
"tempfile", "tempfile",
"tokio", "tokio",
"url", "url",
@ -5643,7 +5595,7 @@ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"structmeta-derive", "structmeta-derive",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5654,7 +5606,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5682,9 +5634,9 @@ dependencies = [
[[package]] [[package]]
name = "syn" name = "syn"
version = "2.0.91" version = "2.0.92"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" checksum = "70ae51629bf965c5c098cc9e87908a3df5301051a9e087d6f9bef5c9771ed126"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -5708,7 +5660,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5865,7 +5817,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5876,7 +5828,7 @@ checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -5992,7 +5944,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -6210,7 +6162,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -6294,7 +6246,7 @@ checksum = "560b82d656506509d43abe30e0ba64c56b1953ab3d4fe7ba5902747a7a3cedd5"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -6372,9 +6324,9 @@ dependencies = [
[[package]] [[package]]
name = "unicase" name = "unicase"
version = "2.8.0" version = "2.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539"
[[package]] [[package]]
name = "unicode-bidi" name = "unicode-bidi"
@ -6508,21 +6460,6 @@ dependencies = [
"validator_derive", "validator_derive",
] ]
[[package]]
name = "validator"
version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d0b4a29d8709210980a09379f27ee31549b73292c87ab9899beee1c0d3be6303"
dependencies = [
"idna 1.0.3",
"once_cell",
"regex",
"serde",
"serde_derive",
"serde_json",
"url",
]
[[package]] [[package]]
name = "validator_derive" name = "validator_derive"
version = "0.18.2" version = "0.18.2"
@ -6534,7 +6471,7 @@ dependencies = [
"proc-macro-error", "proc-macro-error",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -6613,7 +6550,7 @@ dependencies = [
"log", "log",
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -6648,7 +6585,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
"wasm-bindgen-backend", "wasm-bindgen-backend",
"wasm-bindgen-shared", "wasm-bindgen-shared",
] ]
@ -7021,7 +6958,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
"synstructure", "synstructure",
] ]
@ -7043,7 +6980,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]
@ -7063,7 +7000,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
"synstructure", "synstructure",
] ]
@ -7092,7 +7029,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.91", "syn 2.0.92",
] ]
[[package]] [[package]]

View File

@ -14,32 +14,30 @@ path = "src/bin/main.rs"
required-features = [] required-features = []
[dependencies] [dependencies]
loco-rs = { version = "0.13.2" } loco-rs = { version = "0.13" }
serde = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"] }
serde_json = "1" serde_json = "1"
eyre = "0.6" eyre = "0.6"
tokio = { version = "1.42", default-features = false } tokio = { version = "1.42", default-features = false }
async-trait = "0.1.83" async-trait = "0.1.83"
tracing = "0.1.41" tracing = "0.1"
chrono = "0.4" chrono = "0.4"
validator = { version = "0.19" } sea-orm = { version = "1", features = [
sea-orm = { version = "1.1.3", features = [
"sqlx-sqlite", "sqlx-sqlite",
"sqlx-postgres", "sqlx-postgres",
"runtime-tokio-rustls", "runtime-tokio-rustls",
"macros", "macros",
"debug-print"
] } ] }
axum = "0.7.9" axum = "0.7.9"
include_dir = "0.7"
uuid = { version = "1.6.0", features = ["v4"] } uuid = { version = "1.6.0", features = ["v4"] }
tracing-subscriber = { version = "0.3.19", features = ["env-filter", "json"] } tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
sea-orm-migration = { version = "1.1.3", features = ["runtime-tokio-rustls"] } sea-orm-migration = { version = "1", features = ["runtime-tokio-rustls"] }
reqwest = "0.12.9" reqwest = "0.12.9"
thiserror = "2" thiserror = "2"
rss = "2" rss = "2"
bytes = "1.9" bytes = "1.9"
futures = "0.3.31"
itertools = "0.13.0" itertools = "0.13.0"
url = "2.5" url = "2.5"
fancy-regex = "0.14" fancy-regex = "0.14"
@ -62,8 +60,5 @@ serde_with = "3"
[dev-dependencies] [dev-dependencies]
serial_test = "3" serial_test = "3"
rstest = "0.23.0" loco-rs = { version = "0.13", features = ["testing"] }
loco-rs = { version = "0.13.2", features = ["testing"] }
insta = { version = "1", features = ["redactions", "yaml", "filters"] } insta = { version = "1", features = ["redactions", "yaml", "filters"] }
testcontainers = { version = "0.23.1" }
testcontainers-modules = { version = "0.11.4" }

View File

@ -19,7 +19,10 @@ use recorder::{
use sea_orm_migration::MigratorTrait; use sea_orm_migration::MigratorTrait;
async fn pull_mikan_bangumi_rss(ctx: &AppContext) -> eyre::Result<()> { async fn pull_mikan_bangumi_rss(ctx: &AppContext) -> eyre::Result<()> {
let rss_link = "https://mikanani.me/RSS/Bangumi?bangumiId=3416&subgroupid=370"; // let rss_link = "https://mikanani.me/RSS/Bangumi?bangumiId=3416&subgroupid=370";
let rss_link =
"https://mikanani.me/RSS/MyBangumi?token=FE9tccsML2nBPUUqpCuJW2uJZydAXCntHJ7RpD9LDP8%3d";
let subscription = if let Some(subscription) = subscriptions::Entity::find() let subscription = if let Some(subscription) = subscriptions::Entity::find()
.filter(subscriptions::Column::SourceUrl.eq(String::from(rss_link))) .filter(subscriptions::Column::SourceUrl.eq(String::from(rss_link)))
.one(&ctx.db) .one(&ctx.db)
@ -45,6 +48,10 @@ async fn pull_mikan_bangumi_rss(ctx: &AppContext) -> eyre::Result<()> {
} }
async fn init() -> eyre::Result<AppContext> { async fn init() -> eyre::Result<AppContext> {
tracing_subscriber::fmt()
.with_max_level(tracing::Level::DEBUG)
.with_test_writer()
.init();
let ctx = loco_rs::cli::playground::<App>().await?; let ctx = loco_rs::cli::playground::<App>().await?;
let BootResult { let BootResult {
app_context: ctx, .. app_context: ctx, ..

View File

@ -1,4 +1,4 @@
#![feature(duration_constructors, assert_matches)] #![feature(duration_constructors, assert_matches, unboxed_closures)]
pub mod app; pub mod app;
pub mod config; pub mod config;

View File

@ -39,6 +39,7 @@ pub enum Bangumi {
MikanBangumiId, MikanBangumiId,
DisplayName, DisplayName,
SubscriptionId, SubscriptionId,
SubscriberId,
RawName, RawName,
Season, Season,
SeasonRaw, SeasonRaw,
@ -62,6 +63,7 @@ pub enum Episodes {
DisplayName, DisplayName,
BangumiId, BangumiId,
SubscriptionId, SubscriptionId,
SubscriberId,
DownloadId, DownloadId,
SavePath, SavePath,
Resolution, Resolution,

View File

@ -90,6 +90,7 @@ impl MigrationTrait for Migration {
.col(pk_auto(Bangumi::Id)) .col(pk_auto(Bangumi::Id))
.col(text_null(Bangumi::MikanBangumiId)) .col(text_null(Bangumi::MikanBangumiId))
.col(integer(Bangumi::SubscriptionId)) .col(integer(Bangumi::SubscriptionId))
.col(integer(Bangumi::SubscriberId))
.col(text(Bangumi::DisplayName)) .col(text(Bangumi::DisplayName))
.col(text(Bangumi::RawName)) .col(text(Bangumi::RawName))
.col(integer(Bangumi::Season)) .col(integer(Bangumi::Season))
@ -111,6 +112,14 @@ impl MigrationTrait for Migration {
.on_update(ForeignKeyAction::Restrict) .on_update(ForeignKeyAction::Restrict)
.on_delete(ForeignKeyAction::Cascade), .on_delete(ForeignKeyAction::Cascade),
) )
.foreign_key(
ForeignKey::create()
.name("fk_bangumi_subscriber_id")
.from(Bangumi::Table, Bangumi::SubscriberId)
.to(Subscribers::Table, Subscribers::Id)
.on_update(ForeignKeyAction::Restrict)
.on_delete(ForeignKeyAction::Cascade),
)
.to_owned(), .to_owned(),
) )
.await?; .await?;
@ -150,6 +159,7 @@ impl MigrationTrait for Migration {
.col(text(Episodes::DisplayName)) .col(text(Episodes::DisplayName))
.col(integer(Episodes::BangumiId)) .col(integer(Episodes::BangumiId))
.col(integer(Episodes::SubscriptionId)) .col(integer(Episodes::SubscriptionId))
.col(integer(Episodes::SubscriberId))
.col(text_null(Episodes::SavePath)) .col(text_null(Episodes::SavePath))
.col(text_null(Episodes::Resolution)) .col(text_null(Episodes::Resolution))
.col(integer(Episodes::Season)) .col(integer(Episodes::Season))
@ -178,6 +188,14 @@ impl MigrationTrait for Migration {
.on_update(ForeignKeyAction::Restrict) .on_update(ForeignKeyAction::Restrict)
.on_delete(ForeignKeyAction::Cascade), .on_delete(ForeignKeyAction::Cascade),
) )
.foreign_key(
ForeignKey::create()
.name("fk_episodes_subscriber_id")
.from(Episodes::Table, Episodes::SubscriberId)
.to(Subscribers::Table, Subscribers::Id)
.on_update(ForeignKeyAction::Restrict)
.on_delete(ForeignKeyAction::Cascade),
)
.to_owned(), .to_owned(),
) )
.await?; .await?;

View File

@ -6,6 +6,7 @@ pub use super::entities::bangumi::*;
impl Model { impl Model {
pub async fn get_or_insert_from_mikan<F>( pub async fn get_or_insert_from_mikan<F>(
ctx: &AppContext, ctx: &AppContext,
subscriber_id: i32,
subscription_id: i32, subscription_id: i32,
mikan_bangumi_id: String, mikan_bangumi_id: String,
mikan_fansub_id: String, mikan_fansub_id: String,
@ -30,6 +31,7 @@ impl Model {
mikan_bangumi_id: ActiveValue::Set(Some(mikan_bangumi_id)), mikan_bangumi_id: ActiveValue::Set(Some(mikan_bangumi_id)),
mikan_fansub_id: ActiveValue::Set(Some(mikan_fansub_id)), mikan_fansub_id: ActiveValue::Set(Some(mikan_fansub_id)),
subscription_id: ActiveValue::Set(subscription_id), subscription_id: ActiveValue::Set(subscription_id),
subscriber_id: ActiveValue::Set(subscriber_id),
..Default::default() ..Default::default()
}; };
f(&mut bgm).await?; f(&mut bgm).await?;

View File

@ -26,6 +26,7 @@ pub struct Model {
pub id: i32, pub id: i32,
pub mikan_bangumi_id: Option<String>, pub mikan_bangumi_id: Option<String>,
pub subscription_id: i32, pub subscription_id: i32,
pub subscriber_id: i32,
pub display_name: String, pub display_name: String,
pub raw_name: String, pub raw_name: String,
pub season: i32, pub season: i32,
@ -50,6 +51,12 @@ pub enum Relation {
to = "super::subscriptions::Column::Id" to = "super::subscriptions::Column::Id"
)] )]
Subscription, Subscription,
#[sea_orm(
belongs_to = "super::subscribers::Entity",
from = "Column::SubscriberId",
to = "super::subscribers::Column::Id"
)]
Subscriber,
#[sea_orm(has_many = "super::episodes::Entity")] #[sea_orm(has_many = "super::episodes::Entity")]
Episode, Episode,
} }
@ -65,3 +72,9 @@ impl Related<super::subscriptions::Entity> for Entity {
Relation::Subscription.def() Relation::Subscription.def()
} }
} }
impl Related<super::subscribers::Entity> for Entity {
fn to() -> RelationDef {
Relation::Subscriber.def()
}
}

View File

@ -25,6 +25,7 @@ pub struct Model {
pub display_name: String, pub display_name: String,
pub bangumi_id: i32, pub bangumi_id: i32,
pub subscription_id: i32, pub subscription_id: i32,
pub subscriber_id: i32,
pub download_id: Option<i32>, pub download_id: Option<i32>,
pub save_path: Option<String>, pub save_path: Option<String>,
pub resolution: Option<String>, pub resolution: Option<String>,
@ -61,6 +62,12 @@ pub enum Relation {
to = "super::subscriptions::Column::Id" to = "super::subscriptions::Column::Id"
)] )]
Subscriptions, Subscriptions,
#[sea_orm(
belongs_to = "super::subscribers::Entity",
from = "Column::SubscriberId",
to = "super::subscribers::Column::Id"
)]
Subscriber,
} }
impl Related<super::bangumi::Entity> for Entity { impl Related<super::bangumi::Entity> for Entity {
@ -80,3 +87,9 @@ impl Related<super::subscriptions::Entity> for Entity {
Relation::Subscriptions.def() Relation::Subscriptions.def()
} }
} }
impl Related<super::subscribers::Entity> for Entity {
fn to() -> RelationDef {
Relation::Subscriber.def()
}
}

View File

@ -32,6 +32,10 @@ pub enum Relation {
to = "super::downloaders::Column::Id" to = "super::downloaders::Column::Id"
)] )]
Downloader, Downloader,
#[sea_orm(has_many = "super::bangumi::Entity")]
Bangumi,
#[sea_orm(has_many = "super::episodes::Entity")]
Episode,
} }
impl Related<super::subscriptions::Entity> for Entity { impl Related<super::subscriptions::Entity> for Entity {
@ -45,3 +49,15 @@ impl Related<super::downloaders::Entity> for Entity {
Relation::Downloader.def() Relation::Downloader.def()
} }
} }
impl Related<super::bangumi::Entity> for Entity {
fn to() -> RelationDef {
Relation::Bangumi.def()
}
}
impl Related<super::episodes::Entity> for Entity {
fn to() -> RelationDef {
Relation::Episode.def()
}
}

View File

@ -35,6 +35,7 @@ impl Model {
.do_nothing() .do_nothing()
.to_owned(), .to_owned(),
) )
.on_empty_do_nothing()
.exec(db) .exec(db)
.await?; .await?;
@ -61,6 +62,7 @@ impl ActiveModel {
display_name: ActiveValue::Set(item.episode_title.clone()), display_name: ActiveValue::Set(item.episode_title.clone()),
bangumi_id: ActiveValue::Set(bgm.id), bangumi_id: ActiveValue::Set(bgm.id),
subscription_id: ActiveValue::Set(bgm.subscription_id), subscription_id: ActiveValue::Set(bgm.subscription_id),
subscriber_id: ActiveValue::Set(bgm.subscriber_id),
resolution: ActiveValue::Set(raw_meta.resolution), resolution: ActiveValue::Set(raw_meta.resolution),
season: ActiveValue::Set(if raw_meta.season > 0 { season: ActiveValue::Set(if raw_meta.season > 0 {
raw_meta.season raw_meta.season

View File

@ -123,8 +123,7 @@ impl Model {
.iter() .iter()
.map(|s| Value::from(s.mikan_episode_id.clone())), .map(|s| Value::from(s.mikan_episode_id.clone())),
); );
stmt.expr(Expr::col(episodes::Column::SubscriptionId)) stmt.and_where(Expr::col(episodes::Column::SubscriberId).eq(self.subscriber_id));
.and_where(Expr::col(episodes::Column::SubscriptionId).eq(self.id));
let builder = &db.get_database_backend(); let builder = &db.get_database_backend();
@ -132,7 +131,7 @@ impl Model {
.query_all(builder.build(&stmt)) .query_all(builder.build(&stmt))
.await? .await?
.into_iter() .into_iter()
.flat_map(|qs| qs.try_get_by_index::<String>(0)) .flat_map(|qs| qs.try_get_by_index(0))
.collect::<HashSet<String>>(); .collect::<HashSet<String>>();
let new_rss_items = items let new_rss_items = items
@ -173,6 +172,7 @@ impl Model {
let bgm = Arc::new( let bgm = Arc::new(
bangumi::Model::get_or_insert_from_mikan( bangumi::Model::get_or_insert_from_mikan(
ctx, ctx,
self.subscriber_id,
self.id, self.id,
mikan_bangumi_id.to_string(), mikan_bangumi_id.to_string(),
mikan_fansub_id.to_string(), mikan_fansub_id.to_string(),