aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-22 20:23:53 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-08-22 20:23:53 +0200
commitd71f3efe57646d639ae19b26dbea5115c219557c (patch)
tree4728a25dd065b829cb05f5310499d648cbe53f6a /src
parentrefactor(cli): Remove the useless `concurrent_processes` flag from `update` (diff)
downloadyt-d71f3efe57646d639ae19b26dbea5115c219557c.zip
refactor(storage): Make all URL parsings panic
These URLs should be checked *before* they are written to the database, thus being unable to decode them after they've been read from the database is an application bug and not a user input issue.
Diffstat (limited to '')
-rw-r--r--src/storage/video_database/downloader.rs8
-rw-r--r--src/storage/video_database/getters.rs6
2 files changed, 7 insertions, 7 deletions
diff --git a/src/storage/video_database/downloader.rs b/src/storage/video_database/downloader.rs
index c04ab8d..a7f6cad 100644
--- a/src/storage/video_database/downloader.rs
+++ b/src/storage/video_database/downloader.rs
@@ -43,7 +43,7 @@ pub async fn get_next_uncached_video(app: &App) -> Result<Option<Video>> {
let base = result?;
let thumbnail_url = if let Some(url) = &base.thumbnail_url {
- Some(Url::parse(&url)?)
+ Some(Url::parse(&url).expect("Parsing this as url should always work"))
} else {
None
};
@@ -72,7 +72,7 @@ pub async fn get_next_uncached_video(app: &App) -> Result<Option<Video>> {
status_change,
thumbnail_url,
title: base.title.clone(),
- url: Url::parse(&base.url)?,
+ url: Url::parse(&base.url).expect("Parsing this as url should always work"),
};
Ok(Some(video))
@@ -100,7 +100,7 @@ pub async fn get_next_video_watchable(app: &App) -> Result<Option<Video>> {
let base = result?;
let thumbnail_url = if let Some(url) = &base.thumbnail_url {
- Some(Url::parse(&url)?)
+ Some(Url::parse(&url).expect("Parsing this as url should always work"))
} else {
None
};
@@ -129,7 +129,7 @@ pub async fn get_next_video_watchable(app: &App) -> Result<Option<Video>> {
status_change,
thumbnail_url,
title: base.title.clone(),
- url: Url::parse(&base.url)?,
+ url: Url::parse(&base.url).expect("Parsing this as url should always work"),
};
Ok(Some(video))
diff --git a/src/storage/video_database/getters.rs b/src/storage/video_database/getters.rs
index fd363fb..b912276 100644
--- a/src/storage/video_database/getters.rs
+++ b/src/storage/video_database/getters.rs
@@ -33,7 +33,7 @@ use super::{MpvOptions, VideoOptions, VideoStatus, YtDlpOptions};
macro_rules! video_from_record {
($record:expr) => {
let thumbnail_url = if let Some(url) = &$record.thumbnail_url {
- Some(Url::parse(&url)?)
+ Some(Url::parse(&url).expect("Parsing this as url should always work"))
} else {
None
};
@@ -54,7 +54,7 @@ macro_rules! video_from_record {
status: VideoStatus::from_db_integer($record.status),
thumbnail_url,
title: $record.title.clone(),
- url: Url::parse(&$record.url)?,
+ url: Url::parse(&$record.url).expect("Parsing this as url should always work"),
priority: $record.priority,
status_change: if $record.status_change == 1 {
true
@@ -147,7 +147,7 @@ pub async fn get_videos(
status: VideoStatus::from_db_integer(base.get("status")),
thumbnail_url,
title: base.get::<String, &str>("title").to_owned(),
- url: Url::parse(base.get("url"))?,
+ url: Url::parse(base.get("url")).expect("Parsing this as url should always work"),
priority: base.get("priority"),
status_change: {
let val = base.get::<i64, &str>("status_change");