diff --git a/Cargo.lock b/Cargo.lock index 0184fa4..fa7e5f6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -286,9 +286,9 @@ checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "cc" -version = "1.2.48" +version = "1.2.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" +checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" dependencies = [ "find-msvc-tools", "shlex", @@ -737,21 +737,6 @@ dependencies = [ "new_debug_unreachable", ] -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - [[package]] name = "futures-channel" version = "0.3.31" @@ -759,7 +744,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", - "futures-sink", ] [[package]] @@ -768,17 +752,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" version = "0.3.31" @@ -827,7 +800,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ - "futures-channel", "futures-core", "futures-io", "futures-macro", @@ -1055,11 +1027,9 @@ dependencies = [ "percent-encoding", "pin-project-lite", "socket2", - "system-configuration", "tokio", "tower-service", "tracing", - "windows-registry", ] [[package]] @@ -1319,7 +1289,7 @@ dependencies = [ "dirs", "eyre", "fastrand", - "futures", + "futures-util", "html-escape", "indicatif", "libc", @@ -1387,12 +1357,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "mio" version = "1.1.1" @@ -1926,7 +1890,6 @@ checksum = "9d0946410b9f7b082a427e4ef5c8ff541a88b357bc6c637c40db3a68ac70a36f" dependencies = [ "base64", "bytes", - "encoding_rs", "futures-core", "futures-util", "h2", @@ -1939,7 +1902,6 @@ dependencies = [ "hyper-util", "js-sys", "log", - "mime", "native-tls", "percent-encoding", "pin-project-lite", @@ -2507,27 +2469,6 @@ dependencies = [ "syn", ] -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.10.0", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tempfile" version = "3.23.0" @@ -3062,7 +3003,7 @@ version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ - "windows-result 0.1.2", + "windows-result", "windows-targets 0.52.6", ] @@ -3072,17 +3013,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" -dependencies = [ - "windows-link", - "windows-result 0.4.1", - "windows-strings", -] - [[package]] name = "windows-result" version = "0.1.2" @@ -3092,24 +3022,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-result" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" -dependencies = [ - "windows-link", -] - [[package]] name = "windows-sys" version = "0.45.0" diff --git a/Cargo.toml b/Cargo.toml index 1068446..b48c392 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,12 +30,12 @@ fastrand = "2.3.0" thiserror = "2.0.12" # Async -tokio = { version = "1.41.1", features = ["macros", "rt", "fs"], default-features = false } +tokio = { version = "1.41.1", features = ["macros", "rt", "fs", "io-util"], default-features = false } arc-swap = "1.7.1" -futures = "0.3.31" +futures-util = { version = "0.3.31", default-features = false, features = ["io"]} # Data -reqwest = { version = "0.12.9", features = ["stream"] } +reqwest = { version = "0.12.9", features = ["stream", "http2", "default-tls"], default-features = false } bytes = "1.9.0" # I/O @@ -44,7 +44,7 @@ rodio = { version = "0.21.1", features = ["symphonia-mp3", "playback"], default- mpris-server = { version = "0.9.0", optional = true } dirs = "6.0.0" -# Misc +# Text processing unicode-segmentation = "1.12.0" url = "2.5.4" diff --git a/src/scrapers.rs b/src/scrapers.rs index f051d13..03c60d6 100644 --- a/src/scrapers.rs +++ b/src/scrapers.rs @@ -6,8 +6,7 @@ use clap::ValueEnum; use eyre::bail; use reqwest::Client; use tokio::{ - fs::{self, File}, - io::AsyncWriteExt, + fs::{self, File}, io::AsyncWriteExt, }; pub mod archive; diff --git a/src/scrapers/archive.rs b/src/scrapers/archive.rs index dd956d9..a4edc36 100644 --- a/src/scrapers/archive.rs +++ b/src/scrapers/archive.rs @@ -5,7 +5,7 @@ use std::sync::LazyLock; -use futures::{stream::FuturesOrdered, StreamExt}; +use futures_util::{stream::FuturesOrdered, StreamExt}; use reqwest::Client; use scraper::{Html, Selector}; diff --git a/src/scrapers/chillhop.rs b/src/scrapers/chillhop.rs index 68e9e07..c31ebb4 100644 --- a/src/scrapers/chillhop.rs +++ b/src/scrapers/chillhop.rs @@ -1,7 +1,8 @@ use eyre::eyre; -use futures::stream::FuturesUnordered; -use futures::StreamExt; +use futures_util::stream::FuturesUnordered; +use futures_util::StreamExt; use indicatif::ProgressBar; +use std::future::Future; use std::str::FromStr; use std::{fmt, sync::LazyLock}; @@ -87,7 +88,7 @@ async fn scan_page( number: usize, client: &Client, bar: ProgressBar, -) -> eyre::Result>>> { +) -> eyre::Result>>> { let path = format!("releases/?page={number}"); let content = get(client, &path, Source::Chillhop).await?; let html = Html::parse_document(&content); diff --git a/src/scrapers/lofigirl.rs b/src/scrapers/lofigirl.rs index a97706b..b61e05d 100644 --- a/src/scrapers/lofigirl.rs +++ b/src/scrapers/lofigirl.rs @@ -5,7 +5,7 @@ use std::sync::LazyLock; -use futures::{stream::FuturesOrdered, StreamExt}; +use futures_util::{stream::FuturesOrdered, StreamExt}; use reqwest::Client; use scraper::{Html, Selector}; diff --git a/src/tracks/list.rs b/src/tracks/list.rs index 700e7f7..4ce7258 100644 --- a/src/tracks/list.rs +++ b/src/tracks/list.rs @@ -7,7 +7,7 @@ use std::{ }; use bytes::{BufMut as _, Bytes, BytesMut}; -use futures::StreamExt as _; +use futures_util::StreamExt as _; use reqwest::Client; use tokio::fs; diff --git a/src/ui/input.rs b/src/ui/input.rs index 107fd6f..0ff04ef 100644 --- a/src/ui/input.rs +++ b/src/ui/input.rs @@ -3,7 +3,7 @@ use crate::Message; use crossterm::event::{self, EventStream, KeyCode, KeyEventKind, KeyModifiers}; -use futures::{FutureExt as _, StreamExt as _}; +use futures_util::{FutureExt, StreamExt}; use tokio::sync::mpsc::Sender; /// Starts the listener to receive input from the terminal for various events.