about summary refs log tree commit diff stats
path: root/src/cache
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-14 14:56:29 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-14 14:56:29 +0200
commit6c9286857ef8b314962b67f4a16a66e8c35531bc (patch)
tree9ced4485ec38b39f82cba258c06321a21c40000a /src/cache
parentbuild(Cargo.toml): Add further lints (diff)
downloadyt-6c9286857ef8b314962b67f4a16a66e8c35531bc.tar.gz
yt-6c9286857ef8b314962b67f4a16a66e8c35531bc.zip
refactor(treewide): Combine the separate crates in one workspace
Diffstat (limited to 'src/cache')
-rw-r--r--src/cache/mod.rs88
1 files changed, 0 insertions, 88 deletions
diff --git a/src/cache/mod.rs b/src/cache/mod.rs
deleted file mode 100644
index a3e08c9..0000000
--- a/src/cache/mod.rs
+++ /dev/null
@@ -1,88 +0,0 @@
-// yt - A fully featured command line YouTube client
-//
-// Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de>
-// SPDX-License-Identifier: GPL-3.0-or-later
-//
-// This file is part of Yt.
-//
-// You should have received a copy of the License along with this program.
-// If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
-use anyhow::{Context, Result};
-use log::info;
-use tokio::fs;
-
-use crate::{
-    app::App,
-    storage::video_database::{
-        downloader::set_video_cache_path, getters::get_videos, setters::set_state_change, Video,
-        VideoStatus,
-    },
-};
-
-async fn invalidate_video(app: &App, video: &Video, hard: bool) -> Result<()> {
-    info!("Invalidating cache of video: '{}'", video.title);
-
-    if hard {
-        if let Some(path) = &video.cache_path {
-            info!("Removing cached video at: '{}'", path.display());
-            fs::remove_file(path).await.with_context(|| {
-                format!(
-                    "Failed to delete video ('{}') cache path: '{}'.",
-                    video.title,
-                    path.display()
-                )
-            })?;
-        }
-    }
-
-    set_video_cache_path(app, &video.extractor_hash, None).await?;
-
-    Ok(())
-}
-
-pub async fn invalidate(app: &App, hard: bool) -> Result<()> {
-    let all_cached_things = get_videos(app, &[VideoStatus::Cached], None).await?;
-
-    info!("Got videos to invalidate: '{}'", all_cached_things.len());
-
-    for video in all_cached_things {
-        invalidate_video(app, &video, hard).await?
-    }
-
-    Ok(())
-}
-
-pub async fn maintain(app: &App, all: bool) -> Result<()> {
-    let domain = if all {
-        vec![
-            VideoStatus::Pick,
-            //
-            VideoStatus::Watch,
-            VideoStatus::Cached,
-            VideoStatus::Watched,
-            //
-            VideoStatus::Drop,
-            VideoStatus::Dropped,
-        ]
-    } else {
-        vec![VideoStatus::Watch, VideoStatus::Cached]
-    };
-
-    let cached_videos = get_videos(app, domain.as_slice(), None).await?;
-
-    for vid in cached_videos {
-        if let Some(path) = vid.cache_path.as_ref() {
-            info!("Checking if path ('{}') exists", path.display());
-            if !path.exists() {
-                invalidate_video(app, &vid, false).await?;
-            }
-        }
-        if vid.status_change {
-            info!("Video '{}' has it's changing bit set. This is probably the result of an unexpectet exit. Clearing it", vid.title);
-            set_state_change(app, &vid.extractor_hash, false).await?;
-        }
-    }
-
-    Ok(())
-}