diff --git a/src/processing/parser/xmltv.rs b/src/processing/parser/xmltv.rs index 9534e9621..efe568006 100644 --- a/src/processing/parser/xmltv.rs +++ b/src/processing/parser/xmltv.rs @@ -4,7 +4,7 @@ use crate::processing::processor::epg::EpgIdCache; use crate::utils::compressed_file_reader::CompressedFileReader; use crate::utils::CONSTANTS; use deunicode::deunicode; -use quick_xml::events::{BytesStart, BytesText, Event}; +use quick_xml::events::{BytesEnd, BytesStart, BytesText, Event}; use quick_xml::Reader; use rayon::iter::{IntoParallelRefIterator, ParallelIterator}; use std::borrow::Cow; @@ -364,6 +364,10 @@ where match reader.read_event_into(&mut buf) { Ok(Event::Eof) => break, Ok(Event::Start(e)) => handle_tag_start(callback, &mut stack, &e), + Ok(Event::Empty(e)) => { + handle_tag_start(callback, &mut stack, &e); + handle_tag_end(callback, &mut stack); + }, Ok(Event::End(_e)) => handle_tag_end(callback, &mut stack), Ok(Event::Text(e)) => handle_text_tag(&mut stack, &e), _ => {} diff --git a/src/processing/processor/epg.rs b/src/processing/processor/epg.rs index 52c3908fe..8ce53b05a 100644 --- a/src/processing/processor/epg.rs +++ b/src/processing/processor/epg.rs @@ -161,8 +161,8 @@ fn assign_channel_epg(new_epg: &mut Vec, fp: &mut FetchedPlaylist, id_cache if !icon_assigned.contains(epg_channel_id) && (epg_source.logo_override || chan.header.logo.is_empty() || chan.header.logo_small.is_empty()) { if let Some(icon_tag) = icon_tags.get(chan.header.epg_channel_id.as_ref().unwrap()) { - icon_assigned.insert(epg_channel_id.to_string()); if let Some(icon) = icon_tag.icon.as_ref() { + icon_assigned.insert(epg_channel_id.to_string()); if epg_source.logo_override || chan.header.logo.is_empty() { chan.header.logo = (*icon).to_string(); }