diff --git a/Cargo.lock b/Cargo.lock index 4f21dfe..20bebc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -91,7 +91,7 @@ dependencies = [ "rustix", "slab", "tracing", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -122,7 +122,7 @@ dependencies = [ "futures-lite", "rustix", "tracing", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -133,7 +133,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -151,7 +151,7 @@ dependencies = [ "rustix", "signal-hook-registry", "slab", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -168,7 +168,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -212,9 +212,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block" @@ -264,22 +264,21 @@ checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "cairo-rs" -version = "0.19.4" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562" +checksum = "e8a0ea147c94108c9613235388f540e4d14c327f7081c9e471fc8ee8a2533e69" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cairo-sys-rs", "glib", "libc", - "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64" +checksum = "428290f914b9b86089f60f5d8a9f6e440508e1bcff23b25afd51502b0a2da88f" dependencies = [ "glib-sys", "libc", @@ -294,9 +293,9 @@ checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" [[package]] name = "cfg-expr" -version = "0.15.8" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +checksum = "d0890061c4d3223e7267f3bad2ec40b997d64faac1c2815a4a9d95018e2b9e9c" dependencies = [ "smallvec", "target-lexicon", @@ -310,9 +309,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "concurrent-queue" @@ -383,7 +382,7 @@ dependencies = [ "deluxe-macros", "once_cell", "proc-macro2", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -396,7 +395,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -411,7 +410,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -467,7 +466,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -483,7 +482,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -594,9 +593,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" @@ -630,32 +629,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-macro", @@ -668,9 +667,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624eaba126021103c7339b2e179ae4ee8cdab842daab419040710f38ed9f8699" +checksum = "c4c29071a9e92337d8270a85cb0510cda4ac478be26d09ad027cc1d081911b19" dependencies = [ "gdk-pixbuf-sys", "gio", @@ -680,9 +679,9 @@ dependencies = [ [[package]] name = "gdk-pixbuf-sys" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4efa05a4f83c8cc50eb4d883787b919b85e5f1d8dd10b5a1df53bf5689782379" +checksum = "687343b059b91df5f3fbd87b4307038fa9e647fcc0461d0d3f93e94fee20bf3d" dependencies = [ "gio-sys", "glib-sys", @@ -693,9 +692,9 @@ dependencies = [ [[package]] name = "gdk4" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db265c9dd42d6a371e09e52deab3a84808427198b86ac792d75fd35c07990a07" +checksum = "c121aeeb0cf7545877ae615dac6bfd088b739d8abee4d55e7143b06927d16a31" dependencies = [ "cairo-rs", "gdk-pixbuf", @@ -708,9 +707,9 @@ dependencies = [ [[package]] name = "gdk4-sys" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9418fb4e8a67074919fe7604429c45aa74eb9df82e7ca529767c6d4e9dc66dd" +checksum = "7d3c03d1ea9d5199f14f060890fde68a3b5ec5699144773d1fa6abf337bfbc9c" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -772,9 +771,9 @@ checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "gio" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c49f117d373ffcc98a35d114db5478bc223341cff53e39a5d6feced9e2ddffe" +checksum = "b8d999e8fb09583e96080867e364bc1e701284ad206c76a5af480d63833ad43c" dependencies = [ "futures-channel", "futures-core", @@ -785,29 +784,28 @@ dependencies = [ "libc", "pin-project-lite", "smallvec", - "thiserror", ] [[package]] name = "gio-sys" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd743ba4714d671ad6b6234e8ab2a13b42304d0e13ab7eba1dcdd78a7d6d4ef" +checksum = "4f7efc368de04755344f0084104835b6bb71df2c1d41e37d863947392a894779" dependencies = [ "glib-sys", "gobject-sys", "libc", "system-deps", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] name = "glib" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b664491bc77ab55daa6714a592cdbe1a55e28abec09cb50e87689b90de456ff4" +checksum = "adcf1ec6d3650bf9fdbc6cee242d4fcebc6f6bfd9bea5b929b6a8b7344eb85ff" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "futures-channel", "futures-core", "futures-executor", @@ -820,27 +818,26 @@ dependencies = [ "libc", "memchr", "smallvec", - "thiserror", ] [[package]] name = "glib-macros" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d405205a405182f95e637710850a8e82f25ba01fdd6baebc82dabeaf0883376" +checksum = "a6bf88f70cd5720a6197639dcabcb378dd528d0cb68cb1f45e3b358bcb841cd7" dependencies = [ "heck 0.5.0", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] name = "glib-sys" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c2dc18d3a82b0006d470b13304fbbb3e0a9bd4884cf985a60a7ed733ac2c4a5" +checksum = "5f9eca5d88cfa6a453b00d203287c34a2b7cac3a7831779aa2bb0b3c7233752b" dependencies = [ "libc", "system-deps", @@ -848,9 +845,9 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e697e252d6e0416fd1d9e169bda51c0f1c926026c39ca21fbe8b1bb5c3b8b9e" +checksum = "a4c674d2ff8478cf0ec29d2be730ed779fef54415a2fb4b565c52def62696462" dependencies = [ "glib-sys", "libc", @@ -859,9 +856,9 @@ dependencies = [ [[package]] name = "graphene-rs" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb86031d24d9ec0a2a15978fc7a65d545a2549642cf1eb7c3dda358da42bcf" +checksum = "1f53144c7fe78292705ff23935f1477d511366fb2f73c43d63b37be89076d2fe" dependencies = [ "glib", "graphene-sys", @@ -870,9 +867,9 @@ dependencies = [ [[package]] name = "graphene-sys" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f530e0944bccba4b55065e9c69f4975ad691609191ebac16e13ab8e1f27af05" +checksum = "e741797dc5081e59877a4d72c442c72d61efdd99161a0b1c1b29b6b988934b99" dependencies = [ "glib-sys", "libc", @@ -882,25 +879,25 @@ dependencies = [ [[package]] name = "gsettings-macro" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4ea0f496faeabbfdd1f5d9c39d9b9f7cff83f52d2cbbdec3c94b0e51b3f2f3" +checksum = "a5d601b9c413a6835a1e1d3efec21c75c1c2a4f399338f6db8be1ab3ab146865" dependencies = [ "deluxe", - "heck 0.4.1", + "heck 0.5.0", "proc-macro-error", "proc-macro2", "quick-xml", "quote", "serde", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] name = "gsk4" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7563884bf6939f4468e5d94654945bdd9afcaf8c3ba4c5dd17b5342b747221be" +checksum = "aa21a2f7c51ee1c6cc1242c2faf3aae2b7566138f182696759987bde8219e922" dependencies = [ "cairo-rs", "gdk4", @@ -913,9 +910,9 @@ dependencies = [ [[package]] name = "gsk4-sys" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23024bf2636c38bbd1f822f58acc9d1c25b28da896ff0f291a1a232d4272b3dc" +checksum = "0f9fb607554f9f4e8829eb7ea301b0fde051e1dbfd5d16b143a8a9c2fac6c01b" dependencies = [ "cairo-sys-rs", "gdk4-sys", @@ -929,9 +926,9 @@ dependencies = [ [[package]] name = "gtk4" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04e11319b08af11358ab543105a9e49b0c491faca35e2b8e7e36bfba8b671ab" +checksum = "31e2d105ce672f5cdcb5af2602e91c2901e91c72da15ab76f613ad57ecf04c6d" dependencies = [ "cairo-rs", "field-offset", @@ -950,21 +947,21 @@ dependencies = [ [[package]] name = "gtk4-macros" -version = "0.8.2" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec655a7ef88d8ce9592899deb8b2d0fa50bab1e6dd69182deb764e643c522408" +checksum = "e9e7b362c8fccd2712297903717d65d30defdab2b509bc9d209cbe5ffb9fabaf" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] name = "gtk4-sys" -version = "0.8.2" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8aa86b7f85ea71d66ea88c1d4bae1cfacf51ca4856274565133838d77e57b5" +checksum = "cbe4325908b1c1642dbb48e9f49c07a73185babf43e8b2065b0f881a589f55b8" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -981,25 +978,24 @@ dependencies = [ [[package]] name = "gvdb" -version = "0.6.1" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acfa8cd2aa58da96876eb6276afe617c414d5846d1229274a821c1f8e8aa9e02" +checksum = "d5469af05ff2285b41c9e79a2c7f825cb59dff3b22791befe1aec0c8ab987791" dependencies = [ - "byteorder", "flate2", "quick-xml", - "safe-transmute", "serde", "serde_json", "walkdir", + "zerocopy", "zvariant", ] [[package]] name = "gvdb-macros" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b224e38dcf849c0f3bcc301b14fc6c04693aa5ee22ebc964c6ad4b8e2ff5ea" +checksum = "96c93d75d7928637d429efff5f8d9eca98830a894681f1be49c812083a861e0f" dependencies = [ "gvdb", "litrs", @@ -1028,9 +1024,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.5" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" [[package]] name = "heck" @@ -1229,9 +1225,9 @@ checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" [[package]] name = "indexmap" -version = "2.2.6" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", "hashbrown", @@ -1267,11 +1263,10 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libadwaita" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9" +checksum = "2ff9c222b5c783729de45185f07b2fec2d43a7f9c63961e777d3667e20443878" dependencies = [ - "gdk-pixbuf", "gdk4", "gio", "glib", @@ -1283,9 +1278,9 @@ dependencies = [ [[package]] name = "libadwaita-sys" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8" +checksum = "1c44d8bdbad31d6639e1f20cc9c1424f1a8e02d751fc28d44659bf743fb9eca6" dependencies = [ "gdk4-sys", "gio-sys", @@ -1414,9 +1409,9 @@ dependencies = [ [[package]] name = "mediathekviewweb" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e117d09d50d4e30bd89d04a151024609afce7e0e30738d7b7bafc13112c5cf93" +checksum = "e80edfb88de7ff68df90a60150652bcf092c47e4ff6fa36ef1efdf61db2624e2" dependencies = [ "reqwest", "serde", @@ -1454,13 +1449,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1488,11 +1484,11 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "cfg_aliases", "libc", @@ -1515,16 +1511,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.9", - "libc", -] - [[package]] name = "objc" version = "0.2.7" @@ -1565,9 +1551,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" @@ -1575,7 +1561,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -1592,7 +1578,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -1631,9 +1617,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pango" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f0d328648058085cfd6897c9ae4272884098a926f3a833cd50c8c73e6eccecd" +checksum = "aa26aa54b11094d72141a754901cd71d9356432bb8147f9cace8d9c7ba95f356" dependencies = [ "gio", "glib", @@ -1643,9 +1629,9 @@ dependencies = [ [[package]] name = "pango-sys" -version = "0.19.8" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff03da4fa086c0b244d4a4587d3e20622a3ecdb21daea9edf66597224c634ba0" +checksum = "84fd65917bf12f06544ae2bbc200abf9fc0a513a5a88a0fa81013893aef2b838" dependencies = [ "glib-sys", "gobject-sys", @@ -1747,7 +1733,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -1785,7 +1771,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -1829,7 +1815,7 @@ dependencies = [ "pin-project-lite", "rustix", "tracing", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -1904,9 +1890,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.31.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" dependencies = [ "memchr", "serde", @@ -2006,9 +1992,9 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64", "bytes", @@ -2044,7 +2030,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg", + "windows-registry", ] [[package]] @@ -2059,7 +2045,7 @@ dependencies = [ "libc", "spin", "untrusted", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -2083,11 +2069,11 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -2136,12 +2122,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "safe-transmute" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98a01dab6acf992653be49205bdd549f32f17cb2803e8eacf1560bf97259aae8" - [[package]] name = "same-file" version = "1.0.6" @@ -2157,7 +2137,7 @@ version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -2172,7 +2152,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -2197,31 +2177,32 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -2234,7 +2215,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -2316,7 +2297,7 @@ checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -2326,7 +2307,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -2392,9 +2373,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.67" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8655ed1d86f3af4ee3fd3263786bc14245ad17c4c7e85ba7187fb3ae028c90" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -2406,23 +2387,26 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "system-configuration" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" dependencies = [ "core-foundation-sys", "libc", @@ -2430,9 +2414,9 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.2.2" +version = "7.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +checksum = "66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005" dependencies = [ "cfg-expr", "heck 0.5.0", @@ -2443,9 +2427,9 @@ dependencies = [ [[package]] name = "target-lexicon" -version = "0.12.14" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "televido" @@ -2489,7 +2473,7 @@ dependencies = [ "cfg-if", "fastrand", "rustix", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -2503,26 +2487,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "thiserror" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.67", -] - [[package]] name = "thread_local" version = "1.1.8" @@ -2580,32 +2544,31 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "signal-hook-registry", "socket2", "tokio-macros", "tracing", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -2744,7 +2707,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] [[package]] @@ -2923,7 +2886,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -2957,7 +2920,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3010,12 +2973,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows-sys" -version = "0.48.0" +name = "windows-registry" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" dependencies = [ - "windows-targets 0.48.5", + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", ] [[package]] @@ -3024,7 +3008,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -3044,18 +3028,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -3066,9 +3050,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -3078,9 +3062,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -3090,15 +3074,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -3108,9 +3092,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -3120,9 +3104,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -3132,9 +3116,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -3144,9 +3128,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" @@ -3166,16 +3150,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "xdg-home" version = "1.2.0" @@ -3183,7 +3157,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys", ] [[package]] @@ -3199,9 +3173,9 @@ dependencies = [ [[package]] name = "zbus" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23915fcb26e7a9a9dc05fd93a9870d336d6d032cd7e8cebf1c5c37666489fdd5" +checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725" dependencies = [ "async-broadcast", "async-process", @@ -3223,7 +3197,7 @@ dependencies = [ "tokio", "tracing", "uds_windows", - "windows-sys 0.52.0", + "windows-sys", "xdg-home", "zbus_macros", "zbus_names", @@ -3232,14 +3206,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02bcca0b586d2f8589da32347b4784ba424c4891ed86aa5b50d5e88f6b2c4f5d" +checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", "zvariant_utils", ] @@ -3254,6 +3228,27 @@ dependencies = [ "zvariant", ] +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -3262,9 +3257,9 @@ checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] name = "zvariant" -version = "4.1.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7" +checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe" dependencies = [ "endi", "enumflags2", @@ -3275,24 +3270,24 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "4.1.1" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8" +checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786" +checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340" dependencies = [ "proc-macro2", "quote", - "syn 2.0.67", + "syn 2.0.79", ] diff --git a/Cargo.toml b/Cargo.toml index bdd1bef..21af5d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,24 +8,24 @@ edition = "2021" publish = false [dependencies] -adw = { package = "libadwaita", version = "0.6.0", features = ["v1_5"] } +adw = { package = "libadwaita", version = "0.7.0", features = ["v1_5"] } eyre = "0.6.12" -futures-util = "0.3.30" +futures-util = "0.3.31" gettext-rs = { version = "0.7", features = ["gettext-system"] } -gsettings-macro = "0.2.0" -gtk = { version = "0.8.2", package = "gtk4", features = ["gnome_46", "blueprint"] } -gvdb-macros = "0.1.12" +gsettings-macro = "0.2.1" +gtk = { version = "0.9.2", package = "gtk4", features = ["gnome_46", "blueprint"] } +gvdb-macros = "0.1.13" html2pango = "0.6.0" -indexmap = { version = "2.2.6", features = ["serde"] } -mediathekviewweb = { version = "0.3.1" } -once_cell = "1.19.0" +indexmap = { version = "2.6.0", features = ["serde"] } +mediathekviewweb = { version = "0.4.0" } +once_cell = "1.20.2" phf = { version = "0.11.2", features = ["macros"] } -reqwest = { version = "0.12.5", features = ["json"] } -serde = { version = "1.0.203", features = ["derive"] } -serde_json = "1.0.117" +reqwest = { version = "0.12.8", features = ["json"] } +serde = { version = "1.0.210", features = ["derive"] } +serde_json = "1.0.128" smart-default = "0.7.1" time = { version = "0.3.36", features = ["parsing", "serde"] } -tokio = { version = "1.38.0", features = ["time", "rt-multi-thread", "macros"] } +tokio = { version = "1.40.0", features = ["time", "rt-multi-thread", "macros"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -zbus = { version = "4.3.0", default-features = false, features = ["tokio"] } +zbus = { version = "4.4.0", default-features = false, features = ["tokio"] } diff --git a/src/application.rs b/src/application.rs index c2f9ad0..2939283 100644 --- a/src/application.rs +++ b/src/application.rs @@ -235,7 +235,9 @@ impl TvApplication { .activate(move |app: &Self, _, _| app.show_about()) .build(); let preferences_action = gio::ActionEntry::builder("preferences") - .activate(move |app: &Self, _, _| TvPreferencesDialog::new().present(&app.window())) + .activate(move |app: &Self, _, _| { + TvPreferencesDialog::new().present(Some(&app.window())) + }) .build(); let play_action = gio::ActionEntry::builder("play") .parameter_type(Some(glib::VariantTy::STRING)) @@ -280,6 +282,6 @@ impl TvApplication { .license_type(gtk::License::Gpl30) .build(); - about.present(&self.window()); + about.present(Some(&self.window())); } } diff --git a/src/channel_icons.rs b/src/channel_icons.rs index 4ce7af2..f682c8a 100644 --- a/src/channel_icons.rs +++ b/src/channel_icons.rs @@ -21,9 +21,11 @@ pub fn load_channel_icon(channel_id: Option<&str>, image: >k::Image, size: i32 set_icon(&style_manager, image, icon_name, size); - style_manager.connect_dark_notify(glib::clone!(@weak image => move |style_manager| { - set_icon(style_manager, &image, icon_name, size) - })); + style_manager.connect_dark_notify(glib::clone!( + #[weak] + image, + move |style_manager| set_icon(style_manager, &image, icon_name, size) + )); fn set_icon(style_manager: &adw::StyleManager, image: >k::Image, icon_name: &str, size: i32) { match load_icon( @@ -31,7 +33,7 @@ pub fn load_channel_icon(channel_id: Option<&str>, image: >k::Image, size: i32 size, ColorScheme::for_style_manager(style_manager), ) { - Ok(texture) => image.set_from_paintable(Some(&texture)), + Ok(texture) => image.set_paintable(Some(&texture)), Err(e) => { error!("{e:?}"); image.set_icon_name(Some("image-missing-symbolic")); diff --git a/src/launcher/selector.rs b/src/launcher/selector.rs index 9efb56e..0c10922 100644 --- a/src/launcher/selector.rs +++ b/src/launcher/selector.rs @@ -139,11 +139,15 @@ mod imp { btn.connect_activate({ let id = program.id.clone(); - glib::clone!(@weak self as slf => move |_| { - spawn_clone!(slf, id => async { - slf.set_program(id).await - }) - }) + glib::clone!( + #[weak(rename_to = slf)] + self, + move |_| { + spawn_clone!(slf, id => async { + slf.set_program(id).await + }) + } + ) }); let row = adw::ActionRow::builder() @@ -283,7 +287,7 @@ impl ProgramSelector { .set(program_type) .expect("already initialized"); slf.imp().load().await; - slf.present(&parent); + slf.present(Some(&parent)); ProgramSelectFuture(slf.imp().future_data.clone()).await } diff --git a/src/live/view.rs b/src/live/view.rs index b5ecd74..ea07bb3 100644 --- a/src/live/view.rs +++ b/src/live/view.rs @@ -159,9 +159,13 @@ mod imp { let slf = self.to_owned(); spawn(async move { slf.reload().await }); - settings.connect_live_channels_changed(glib::clone!(@weak self as slf => move |_| { - spawn(async move { slf.reload().await }); - })); + settings.connect_live_channels_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_| { + spawn(async move { slf.reload().await }); + } + )); } } impl WidgetImpl for TvLiveView {} diff --git a/src/mediathek/card.rs b/src/mediathek/card.rs index ee60577..ac1d7ea 100644 --- a/src/mediathek/card.rs +++ b/src/mediathek/card.rs @@ -139,16 +139,22 @@ impl TvMediathekCard { macro_rules! video_url_action { ( $name:literal, $method:ident, $quality:expr) => {{ let action = gio::SimpleAction::new($name, None); - action.connect_activate( - glib::clone!(@weak self as slf => move |_,_| slf.$method($quality)), - ); - self.connect_show_notify(glib::clone!(@weak action => move |slf| { - action.set_enabled( - slf.show() - .and_then(|show| show.video_url($quality)) - .is_some() + action.connect_activate(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_, _| slf.$method($quality) + )); + self.connect_show_notify(glib::clone!( + #[weak] + action, + move |slf| { + action.set_enabled( + slf.show() + .and_then(|show| show.video_url($quality)) + .is_some(), ); - })); + } + )); actions.add_action(&action); action }}; @@ -156,15 +162,19 @@ impl TvMediathekCard { let play_default = video_url_action!("play-default", play, VideoQuality::default_playback()); - TvSettings::get().connect_default_playback_quality_changed( - glib::clone!(@weak self as slf, @weak play_default => move |_| { + TvSettings::get().connect_default_playback_quality_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + #[weak] + play_default, + move |_| { play_default.set_enabled( slf.show() .and_then(|show| show.video_url(VideoQuality::default_playback())) - .is_some() - ); - }), - ); + .is_some(), + ); + } + )); video_url_action!("play-high", play, VideoQuality::High); video_url_action!("play-medium", play, VideoQuality::Medium); video_url_action!("play-low", play, VideoQuality::Low); @@ -174,49 +184,63 @@ impl TvMediathekCard { video_url_action!("copy-url-low", copy_video_url, VideoQuality::Low); let copy_subtitles_url = gio::SimpleAction::new("copy-subtitles-url", None); - copy_subtitles_url.connect_activate( - glib::clone!(@weak self as slf => move |_,_| slf.copy_subtitles_url()), - ); - self.connect_show_notify(glib::clone!(@weak copy_subtitles_url => move |slf| { - copy_subtitles_url.set_enabled( - slf.show() - .and_then(|show| show.subtitle_url()) - .is_some() - ); - })); + copy_subtitles_url.connect_activate(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_, _| slf.copy_subtitles_url() + )); + self.connect_show_notify(glib::clone!( + #[weak] + copy_subtitles_url, + move |slf| { + copy_subtitles_url + .set_enabled(slf.show().and_then(|show| show.subtitle_url()).is_some()); + } + )); actions.add_action(©_subtitles_url); let download = gio::SimpleAction::new("download", None); - download.connect_activate(glib::clone!(@weak self as slf => move |_,_| slf.download())); - self.connect_show_notify(glib::clone!(@weak download => move |slf| { - download.set_enabled( - slf.show() - .and_then(|show| show.website_url()) - .is_some() - ); - })); + download.connect_activate(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_, _| slf.download() + )); + self.connect_show_notify(glib::clone!( + #[weak] + download, + move |slf| { + download.set_enabled(slf.show().and_then(|show| show.website_url()).is_some()); + } + )); actions.add_action(&download); let open_website = gio::SimpleAction::new("open-website", None); - open_website.connect_activate(glib::clone!(@weak self as slf => move |_,_| spawn(async move { - let url = slf - .show() - .and_then(|show| show.website_url()) - .expect("action must only be enabled if url is not None"); - if let Err(e) = gtk::UriLauncher::new(&url).launch_future(slf.root().and_downcast_ref::()).await { - show_error( - eyre::Report::msg(e.to_string()) - .wrap_err(gettext("Failed to open website in browser")) - ); - } - }))); - self.connect_show_notify(glib::clone!(@weak open_website => move |slf| { - open_website.set_enabled( - slf.show() + open_website.connect_activate(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_, _| spawn(async move { + let url = slf + .show() .and_then(|show| show.website_url()) - .is_some() - ); - })); + .expect("action must only be enabled if url is not None"); + if let Err(e) = gtk::UriLauncher::new(&url) + .launch_future(slf.root().and_downcast_ref::()) + .await + { + show_error( + eyre::Report::msg(e.to_string()) + .wrap_err(gettext("Failed to open website in browser")), + ); + } + }) + )); + self.connect_show_notify(glib::clone!( + #[weak] + open_website, + move |slf| { + open_website.set_enabled(slf.show().and_then(|show| show.website_url()).is_some()); + } + )); actions.add_action(&open_website); self.insert_action_group("card", Some(&actions)); diff --git a/src/mediathek/shows.rs b/src/mediathek/shows.rs index 971a7e5..106e0e2 100644 --- a/src/mediathek/shows.rs +++ b/src/mediathek/shows.rs @@ -49,7 +49,7 @@ mod imp { #[property( name = "duration", type = String, - get = |show: &ShowObject| format_duration(&show.inner.get().unwrap().duration), + get = |show: &ShowObject| show.inner.get().unwrap().duration.as_ref().map(format_duration).unwrap_or_default(), )] #[property( name = "video-url-high", diff --git a/src/mediathek/view.rs b/src/mediathek/view.rs index bade597..c17f7f6 100644 --- a/src/mediathek/view.rs +++ b/src/mediathek/view.rs @@ -155,24 +155,29 @@ mod imp { spawn_clone!(slf => slf.load()) } - self.search_entry.connect_search_changed( - glib::clone!(@weak slf => move |_| spawn(async move { slf.load().await })), - ); + self.search_entry.connect_search_changed(glib::clone!( + #[weak] + slf, + move |_| spawn(async move { slf.load().await }) + )); slf.connect_search_everywhere_notify(load); slf.connect_include_future_notify(load); slf.connect_sort_by_notify(load); slf.connect_sort_order_notify(load); - self.shows_model().connect_items_changed( - glib::clone!(@weak self as slf => move |results, _, _, _| { + self.shows_model().connect_items_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + move |results, _, _, _| { if results.n_items() == 0 { slf.stack.set_visible_child(&*slf.nothing_found_view); } else { slf.stack.set_visible_child(&*slf.results_view); } - slf.obj().set_more_available((results.n_items() as u64) < slf.total_results.get()); - }), - ); + slf.obj() + .set_more_available((results.n_items() as u64) < slf.total_results.get()); + } + )); slf.connect_map(|slf| { slf.imp().search_entry.grab_focus(); diff --git a/src/preferences/dialog.rs b/src/preferences/dialog.rs index 42835de..93dc6a2 100644 --- a/src/preferences/dialog.rs +++ b/src/preferences/dialog.rs @@ -113,20 +113,31 @@ mod imp { self.parent_constructed(); self.update_video_player_display_name(); - self.settings.connect_video_player_name_changed( - glib::clone!(@weak self as slf => move |_| slf.update_video_player_display_name()), - ); - self.settings.connect_video_player_id_changed( - glib::clone!(@weak self as slf => move |_| slf.update_video_player_display_name()), - ); + self.settings + .connect_video_player_name_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_| slf.update_video_player_display_name() + )); + self.settings.connect_video_player_id_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_| slf.update_video_player_display_name() + )); self.update_video_downloader_display_name(); - self.settings.connect_video_downloader_name_changed( - glib::clone!(@weak self as slf => move |_| slf.update_video_downloader_display_name()), - ); - self.settings.connect_video_downloader_id_changed( - glib::clone!(@weak self as slf => move |_| slf.update_video_downloader_display_name()), - ); + self.settings + .connect_video_downloader_name_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_| slf.update_video_downloader_display_name() + )); + self.settings + .connect_video_downloader_id_changed(glib::clone!( + #[weak(rename_to = slf)] + self, + move |_| slf.update_video_downloader_display_name() + )); } } impl WidgetImpl for TvPreferencesDialog {} diff --git a/src/preferences/live/selector.rs b/src/preferences/live/selector.rs index b26b427..f2fb424 100644 --- a/src/preferences/live/selector.rs +++ b/src/preferences/live/selector.rs @@ -46,25 +46,32 @@ mod imp { .borrow_mut() .extend(live_channels.iter().map(|(id, ChannelInfo { name, .. })| { let row = TvLiveChannelSelectorRow::new(id, name); - row.connect_visible_notify( - glib::clone!(@weak self as slf => move |row: &TvLiveChannelSelectorRow| { + row.connect_visible_notify(glib::clone!( + #[weak(rename_to = slf)] + self, + move |row: &TvLiveChannelSelectorRow| { slf.remove_row(row); if row.visible() { slf.visible_channels.append(row); } else { - let channel_rows = slf.channel_rows.borrow(); - slf.hidden_channels - .typed_insert_sorted::(row, |a, b| { - channel_rows - .get_index_of(&a.channel_id()) - .cmp(&channel_rows.get_index_of(&b.channel_id())) - }); + let channel_rows = slf.channel_rows.borrow(); + slf.hidden_channels + .typed_insert_sorted::( + row, + |a, b| { + channel_rows + .get_index_of(&a.channel_id()) + .cmp(&channel_rows.get_index_of(&b.channel_id())) + }, + ); } - }), - ); - row.connect_received_drop( - glib::clone!(@weak self as slf => move |target_row, source_row| { + } + )); + row.connect_received_drop(glib::clone!( + #[weak(rename_to = slf)] + self, + move |target_row, source_row| { let target_visible = target_row.visible(); let source_visible = source_row.visible(); @@ -87,8 +94,8 @@ mod imp { let target_pos = target_rows.find(target_row).unwrap(); target_rows.insert(target_pos, source_row) } - }), - ); + } + )); (id.clone(), row) })); @@ -177,9 +184,11 @@ mod imp { row.clone().downcast().unwrap() }); - spawn(glib::clone!(@weak self as slf => async move { - slf.load().await - })); + spawn(glib::clone!( + #[weak(rename_to = slf)] + self, + async move { slf.load().await } + )); let settings = self.settings.clone(); self.visible_channels