From dbefc7d7d941501e5d3d6639c85d442f95f89de7 Mon Sep 17 00:00:00 2001 From: euzu Date: Sat, 25 Jan 2025 11:58:45 +0100 Subject: [PATCH] removed default kodi properties --- CHANGELOG.md | 2 +- Cargo.lock | 44 +++++++++++++++---------------- src/processing/m3u_parser.rs | 2 +- src/repository/kodi_repository.rs | 10 +------ src/utils/config_reader.rs | 5 ++-- 5 files changed, 27 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c547f2d9..afa706b72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Changelog # 2.1.2 (2025-01-xx) - `Strm` output has an additional option `strm_props`. These props are written to the strm file. -If `kodi_style` set to `true` the property `#KODIPROP:seekable=true|false` is added. If `strm_props` is not given `#KODIPROP:inputstream=inputstream.ffmpeg`, `"#KODIPROP:http-reconnect=true` are set too for `kody_style`. +You can add properties like `#KODIPROP:seekable=true|false`, `#KODIPROP:inputstream=inputstream.ffmpeg` or `"#KODIPROP:http-reconnect=true`. - Fixed xtream affix-processed output. - `log_sanitize_sensitive_info` added to `config.yml`. Default is `true`. diff --git a/Cargo.lock b/Cargo.lock index 09f668ba2..500c6e9a4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -612,9 +612,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "4.0.1" +version = "4.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" +checksum = "74fa05ad7d803d413eb8380983b092cbbaf9a85f151b871360e7b00cd7060b37" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -692,9 +692,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783" +checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" dependencies = [ "clap_builder", "clap_derive", @@ -702,9 +702,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.26" +version = "4.5.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121" +checksum = "1b26884eb4b57140e4d2d93652abfa49498b938b3c9179f9fc487b0acc3edad7" dependencies = [ "anstream", "anstyle", @@ -786,9 +786,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b80225097f2e5ae4e7179dd2266824648f3e2f49d9134d584b76389d31c4c3" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -1579,9 +1579,9 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "2.7.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" dependencies = [ "equivalent", "hashbrown", @@ -1598,9 +1598,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is_terminal_polyfill" @@ -1956,9 +1956,9 @@ dependencies = [ [[package]] name = "openssl-probe" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-src" @@ -2468,9 +2468,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.43" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags 2.8.0", "errno", @@ -2583,9 +2583,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" +checksum = "f79dfe2d285b0488816f30e700a7438c5a73d816b5b7d3ac72fbc48b0d185e03" [[package]] name = "serde" @@ -2609,9 +2609,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.136" +version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "336a0c23cf42a38d9eaa7cd22c7040d04e1228a19a933890805ffd00a16437d2" +checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b" dependencies = [ "itoa", "memchr", @@ -3058,9 +3058,9 @@ checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" [[package]] name = "unicode-ident" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" +checksum = "11cd88e12b17c6494200a9c1b683a04fcac9573ed74cd1b62aeb2727c5592243" [[package]] name = "unidecode" diff --git a/src/processing/m3u_parser.rs b/src/processing/m3u_parser.rs index 8845665bd..6eb7bdd0e 100644 --- a/src/processing/m3u_parser.rs +++ b/src/processing/m3u_parser.rs @@ -155,7 +155,7 @@ fn process_header(input: &ConfigInput, video_suffixes: &[&str], content: &str, u } pub fn extract_id_from_url(url: &str) -> Option { - if let Some(filename) = url.split('/').last() { + if let Some(filename) = url.split('/').next_back() { return filename.rfind('.').map_or_else(|| Some(filename.to_string()), |index| Some(filename[..index].to_string())); } None diff --git a/src/repository/kodi_repository.rs b/src/repository/kodi_repository.rs index ae43dd704..5f13e870d 100644 --- a/src/repository/kodi_repository.rs +++ b/src/repository/kodi_repository.rs @@ -1,7 +1,7 @@ use crate::m3u_filter_error::{M3uFilterError, M3uFilterErrorKind}; use crate::model::api_proxy::{ApiProxyServerInfo, ProxyType, ProxyUserCredentials}; use crate::model::config::{Config, ConfigTarget, TargetOutput}; -use crate::model::playlist::{FieldGetAccessor, PlaylistGroup, PlaylistItem, PlaylistItemType, XtreamCluster}; +use crate::model::playlist::{FieldGetAccessor, PlaylistGroup, PlaylistItem, PlaylistItemType}; use crate::model::xtream::XtreamSeriesEpisode; use crate::repository::bplustree::BPlusTree; use crate::repository::storage::get_input_storage_path; @@ -369,18 +369,10 @@ pub async fn kodi_write_strm_playlist(target: &ConfigTarget, cfg: &Config, new_p }; let url = get_strm_url(credentials_and_server_info.as_ref(), &str_item_info); - let seekable = pli.header.borrow().xtream_cluster != XtreamCluster::Live; let file_path = output_path.join(format!("{strm_file_name}.strm")); match File::create(&file_path) { Ok(mut strm_file) => { let mut content = strm_props.map_or_else(Vec::new, std::clone::Clone::clone); - if kodi_style { - content.push(format!("#KODIPROP:seekable={seekable}")); - if strm_props.is_none() { - content.push("#KODIPROP:inputstream=inputstream.ffmpeg".to_string()); - content.push("#KODIPROP:http-reconnect=true".to_string()); - } - } content.push(url); match file_utils::check_write(&strm_file.write_all(content.join("\n").as_bytes())) { Ok(()) => {} diff --git a/src/utils/config_reader.rs b/src/utils/config_reader.rs index e2c1ad2dd..190021d02 100644 --- a/src/utils/config_reader.rs +++ b/src/utils/config_reader.rs @@ -6,7 +6,7 @@ use chrono::Local; use log::{debug, error, info, warn}; use regex::Regex; use serde::Serialize; -use crate::{create_m3u_filter_error, create_m3u_filter_error_result, handle_m3u_filter_error_result, info_err}; +use crate::{create_m3u_filter_error, create_m3u_filter_error_result, exit, handle_m3u_filter_error_result, info_err}; use crate::m3u_filter_error::{to_io_error, M3uFilterError, M3uFilterErrorKind}; use crate::model::api_proxy::ApiProxyConfig; use crate::model::config::{Config, ConfigDto}; @@ -97,8 +97,7 @@ pub fn read_api_proxy(api_proxy_file: &str, resolve_var: bool) -> Option { match result.prepare(resolve_var) { Err(err) => { - error!("cant read api-proxy-config file: {}", err); - None + exit!("cant read api-proxy-config file: {}", err); } _ => { Some(result)