implementing multi input

This commit is contained in:
euzu
2024-05-06 18:47:56 +02:00
parent 7f52729940
commit 9cdce9b6ee
9 changed files with 183 additions and 113 deletions
+1 -1
View File
@@ -66,7 +66,6 @@ fn create_empty_playlistitem_header(input_id: u16, url: String) -> PlaylistItemH
audio_track: default_as_empty_rc_str(),
time_shift: default_as_empty_rc_str(),
rec: default_as_empty_rc_str(),
source: Rc::new(input_id.to_string()),//Rc::new(content.to_owned()),
url: Rc::new(url),
epg_channel_id: None,
item_type: default_playlist_item_type(),
@@ -74,6 +73,7 @@ fn create_empty_playlistitem_header(input_id: u16, url: String) -> PlaylistItemH
additional_properties: None,
series_fetched: false,
category_id: 0,
input_id
}
}
+1 -1
View File
@@ -281,7 +281,7 @@ async fn process_source(cfg: Arc<Config>, source_idx: usize, user_targets: Arc<P
}
if all_playlist.is_empty() {
if log_enabled!(Level::Debug) {
debug!("Source at {} input is empty", source_idx);
debug!("Source at index {} input is empty", source_idx);
}
errors.push(M3uFilterError::new(M3uFilterErrorKind::Notify, format!("Source at {} input is empty", source_idx)));
} else {
+3 -3
View File
@@ -50,7 +50,6 @@ pub(crate) fn parse_xtream_series_info(info: &Value, group_title: &str, input: &
audio_track: default_as_empty_rc_str(),
time_shift: default_as_empty_rc_str(),
rec: default_as_empty_rc_str(),
source: default_as_empty_rc_str(),
url: if episode.direct_source.is_empty() {
let ext = episode.container_extension.to_owned();
let stream_base_url = format!("{}/series/{}/{}/{}.{}", url, username, password, episode.id.as_str(), ext);
@@ -64,6 +63,7 @@ pub(crate) fn parse_xtream_series_info(info: &Value, group_title: &str, input: &
additional_properties: episode.get_additional_properties(&series_info),
series_fetched: false,
category_id: 0,
input_id: input.id
})
}).collect();
if result.is_empty() { Ok(None) } else { Ok(Some(result)) }
@@ -80,7 +80,7 @@ pub(crate) fn parse_xtream(input: &ConfigInput,
streams: &Value) -> Result<Option<Vec<PlaylistGroup>>, M3uFilterError> {
match map_to_xtream_category(category) {
Ok(mut categories) => {
let input_id = input.id.to_string();
let input_id = input.id;
let url = input.url.as_str();
let username = input.username.as_ref().map_or("", |v| v);
let password = input.password.as_ref().map_or("", |v| v);
@@ -109,7 +109,6 @@ pub(crate) fn parse_xtream(input: &ConfigInput,
audio_track: default_as_empty_rc_str(),
time_shift: default_as_empty_rc_str(),
rec: default_as_empty_rc_str(),
source: Rc::new(input_id.to_owned()),
url: if stream.direct_source.is_empty() {
let stream_base_url = match xtream_cluster {
XtreamCluster::Live => format!("{}/live/{}/{}/{}.ts", url, username, password, &stream.get_stream_id()),
@@ -135,6 +134,7 @@ pub(crate) fn parse_xtream(input: &ConfigInput,
additional_properties: stream.get_additional_properties(),
series_fetched: false,
category_id: 0,
input_id
}),
};
grp.add(item);