diff --git a/pvr.nextpvr/changelog.txt b/pvr.nextpvr/changelog.txt index 0259dff6..4bf51ef4 100644 --- a/pvr.nextpvr/changelog.txt +++ b/pvr.nextpvr/changelog.txt @@ -1,6 +1,7 @@ v21.3.1 +- Fix custom genres - Translations updates from Weblate - - af_za, am_et, ar_sa, ast_es, az_az, be_by, bg_bg, bs_ba, ca_es, cs_cz, cy_gb, da_dk, de_de, el_gr, en_au, en_nz, en_us, eo, es_ar, es_es, es_mx, et_ee, eu_es, fa_af, fa_ir, fi_fi, fo_fo, fr_ca, fr_fr, gl_es, he_il, hi_in, hr_hr, hu_hu, hy_am, id_id, is_is, it_it, ja_jp, ko_kr, lt_lt, lv_lv, mi, mk_mk, ml_in, mn_mn, ms_my, mt_mt, my_mm, nb_no, nl_nl, pl_pl, pt_br, pt_pt, ro_ro, ru_ru, si_lk, sk_sk, sl_si, sq_al, sr_rs, sr_rs@latin, sv_se, szl, ta_in, te_in, tg_tj, th_th, tr_tr, uk_ua, uz_uz, vi_vn, zh_cn, zh_tw + - af_za, am_et, ar_sa, ast_es, az_az, be_by, bg_bg, bs_ba, ca_es, cs_cz, cy_gb, da_dk, de_de, el_gr, en_au, en_nz, en_us, eo, es_ar, es_es, es_mx, et_ee, eu_es, fa_af, fa_ir, fi_fi, fo_fo, fr_ca, fr_fr, gl_es, he_il, hi_in, hr_hr, hu_hu, hy_am, id_id, is_is, it_it, ja_jp, ko_kr, lt_lt, lv_lv, mi, mk_mk, ml_in, mn_mn, ms_my, mt_mt, my_mm, nb_no, nl_nl, pl_pl, pt_br, pt_pt, ro_ro, ru_ru, si_lk, sk_sk, sl_si, sq_al, sr_rs, sr_rs@latin, sv_se, szl, ta_in, te_in, tg_tj, th_th, tr_tr, uk_ua, uz_uz, vi_vn, zh_cn, zh_tw v21.3.0 - Support EPG genre sub type for better genre display diff --git a/src/EPG.cpp b/src/EPG.cpp index b9f7420b..5e1f32de 100644 --- a/src/EPG.cpp +++ b/src/EPG.cpp @@ -118,7 +118,6 @@ PVR_ERROR EPG::GetEPGForChannel(int channelUid, time_t start, time_t end, kodi:: // genre type broadcast.SetGenreType(XMLUtils::GetIntValue(pListingNode, "genre_type")); broadcast.SetGenreSubType(XMLUtils::GetIntValue(pListingNode, "genre_sub_type")); - } NextPVR::GenreBlock genreBlock = { sGenre, broadcast.GetGenreType(), EPG_EVENT_CONTENTMASK_UNDEFINED }; @@ -137,7 +136,7 @@ PVR_ERROR EPG::GetEPGForChannel(int channelUid, time_t start, time_t end, kodi:: broadcast.SetEpisodePartNumber(EPG_TAG_INVALID_SERIES_EPISODE); // Backend could send epidode only as S00 and parts are not support if (season <= 0 || episode == EPG_TAG_INVALID_SERIES_EPISODE) - { + { std::regex base_regex("^.*\\([eE][pP](\\d+)(?:/?(\\d+))?\\)"); std::smatch base_match; if (std::regex_search(description, base_match, base_regex)) diff --git a/src/utilities/GenreMapper.cpp b/src/utilities/GenreMapper.cpp index e254fb7c..4263eb07 100644 --- a/src/utilities/GenreMapper.cpp +++ b/src/utilities/GenreMapper.cpp @@ -24,7 +24,7 @@ GenreMapper::GenreMapper(const std::shared_ptr& settings) : m_ GenreMapper::~GenreMapper() {} -bool GenreMapper::IsEnabled() +bool GenreMapper::UseDvbGenre() { return !m_settings->m_genreString; } @@ -66,7 +66,7 @@ bool GenreMapper::ParseAllGenres(const tinyxml2::XMLNode* node, GenreBlock& genr { if (allGenres.find(EPG_STRING_TOKEN_SEPARATOR) != std::string::npos) { - if (IsEnabled()) + if (UseDvbGenre()) { std::vector genreCodes = kodi::tools::StringUtils::Split(allGenres, EPG_STRING_TOKEN_SEPARATOR); if (genreCodes.size() == 2) @@ -86,17 +86,14 @@ bool GenreMapper::ParseAllGenres(const tinyxml2::XMLNode* node, GenreBlock& genr } if (genreBlock.genreSubType == EPG_EVENT_CONTENTMASK_UNDEFINED) { - if (genreBlock.genreType != EPG_GENRE_USE_STRING) - { - genreBlock.genreType = EPG_GENRE_USE_STRING; - } + genreBlock.genreSubType = EPG_GENRE_USE_STRING; genreBlock.description = allGenres; } } - else if (!IsEnabled() && genreBlock.genreSubType != EPG_GENRE_USE_STRING) + else if (!UseDvbGenre() && genreBlock.genreSubType == EPG_EVENT_CONTENTMASK_UNDEFINED) { genreBlock.description = allGenres; - genreBlock.genreType = EPG_GENRE_USE_STRING; + genreBlock.genreSubType = EPG_GENRE_USE_STRING; } return true; diff --git a/src/utilities/GenreMapper.h b/src/utilities/GenreMapper.h index 1a70df98..bc54b933 100644 --- a/src/utilities/GenreMapper.h +++ b/src/utilities/GenreMapper.h @@ -28,7 +28,7 @@ namespace NextPVR int GetGenreType(std::string code); int GetGenreSubType(std::string code); bool ParseAllGenres(const tinyxml2::XMLNode* node, GenreBlock& genreBlock); - bool IsEnabled(); + bool UseDvbGenre(); private: GenreMapper() = default;