aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/download/mod.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/download/mod.rs b/src/download/mod.rs
index 707f281..4aee136 100644
--- a/src/download/mod.rs
+++ b/src/download/mod.rs
@@ -22,6 +22,7 @@ use crate::{
};
use anyhow::{bail, Context, Result};
+use bytes::Bytes;
use futures::{future::BoxFuture, FutureExt};
use log::{debug, info, warn};
use tokio::{fs, task::JoinHandle, time};
@@ -71,14 +72,14 @@ impl Downloader {
/// This will run, until the database doesn't contain any watchable videos
pub async fn consume(&mut self, app: Arc<App>, max_cache_size: u64) -> Result<()> {
while let Some(next_video) = get_next_uncached_video(&app).await? {
- if Self::get_current_cache_allocation(&app).await?
- + self.get_approx_video_size(&app, &next_video).await?
- >= max_cache_size
- {
+ let cache_allocation = Self::get_current_cache_allocation(&app).await?;
+ let video_size = self.get_approx_video_size(&app, &next_video).await?;
+ if cache_allocation + video_size >= max_cache_size {
warn!(
- "Can't download video: '{}' as it's too large for the cache.",
- next_video.title
+ "Can't download video: '{}' ({}) as it's too large for the cache ({} of {} allocated).",
+ next_video.title, Bytes::new(video_size), Bytes::new(cache_allocation), Bytes::new(max_cache_size)
);
+
// Wait and hope, that a large video is deleted from the cache.
time::sleep(Duration::from_secs(10)).await;
continue;