lang_str_ele_t *se;
char buffer[2048];
+ if (!ev->summary)
+ return;
+
/* UK Freeview/Freesat have a subtitle as part of the summary in the format
* "subtitle: desc". They may also have the title continue into the
* summary. So if configured, run scrapers for the title, the subtitle
* and the summary (the latter to tidy up).
*/
- if (ev->title && ev->summary && eit_mod->scrape_title) {
+ if (ev->title && eit_mod->scrape_title) {
char title_summary[2048];
lang_str_t *ls = lang_str_create();
RB_FOREACH(se, ev->title, link) {
lang_str_set(&ls, buffer, se->lang);
}
}
- RB_FOREACH(se, ls, link) {
- lang_str_set(&ev->title, se->str, se->lang);
- }
+ lang_str_set_multi(&ev->title, ls);
lang_str_destroy(ls);
}
- if (ev->summary && eit_mod->scrape_subtitle) {
+ if (eit_mod->scrape_subtitle) {
RB_FOREACH(se, ev->summary, link) {
if (eit_pattern_apply_list(buffer, sizeof(buffer), se->str, &eit_mod->p_scrape_subtitle)) {
tvhtrace(LS_TBL_EIT, " scrape subtitle '%s' from '%s' using %s",
}
}
- if (ev->summary && eit_mod->scrape_summary) {
+ if (eit_mod->scrape_summary) {
lang_str_t *ls = lang_str_create();
RB_FOREACH(se, ev->summary, link) {
if (eit_pattern_apply_list(buffer, sizeof(buffer), se->str, &eit_mod->p_scrape_summary)) {
lang_str_set(&ls, buffer, se->lang);
}
}
- RB_FOREACH(se, ls, link) {
- lang_str_set(&ev->summary, se->str, se->lang);
- }
+ lang_str_set_multi(&ev->summary, ls);
lang_str_destroy(ls);
}
}
return 1;
}
+/* Set new string with update check */
+int lang_str_set_multi
+ ( lang_str_t **dst, const lang_str_t *src )
+{
+ int changed = 0;
+ lang_str_ele_t *e;
+ RB_FOREACH(e, src, link) {
+ changed |= lang_str_set(dst, e->str, e->lang);
+ }
+ return changed;
+}
+
/* Set new strings with update check */
int lang_str_set2
- ( lang_str_t **dst, lang_str_t *src )
+ ( lang_str_t **dst, const lang_str_t *src )
{
if (*dst) {
if (!lang_str_compare(*dst, src))
( lang_str_t *ls, const char *str, const char *lang );
int lang_str_set
( lang_str_t **dst, const char *str, const char *lang );
+int lang_str_set_multi
+ ( lang_str_t **dst, const lang_str_t *src );
int lang_str_set2
- ( lang_str_t **dst, lang_str_t *src );
+ ( lang_str_t **dst, const lang_str_t *src );
/* Serialize/Deserialize */
htsmsg_t *lang_str_serialize_map