diff options
author | Bastien Nocera <hadess@hadess.net> | 2021-03-04 16:45:29 +0100 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2021-06-25 10:24:33 +0200 |
commit | 52de144ae730024fda9c79ca1252c6af92f325d6 (patch) | |
tree | 7212d7099395242cbe97af7d3fcabab98d2d7a05 | |
parent | 0f2a60ae99c602d0ebd830ab8d1d8f3414a2b3d9 (diff) | |
download | totem-pl-parser-52de144ae730024fda9c79ca1252c6af92f325d6.tar.gz |
podcast: Do not check for videosite links unless requested
We don't need to check whether links in RSS feeds are videosite links
unless the application requested that we do, by enabling recursive
parsing.
Closes: #25
-rw-r--r-- | plparse/totem-pl-parser-podcast.c | 10 | ||||
-rw-r--r-- | plparse/totem-pl-parser.c | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/plparse/totem-pl-parser-podcast.c b/plparse/totem-pl-parser-podcast.c index 87917d8..16a31d6 100644 --- a/plparse/totem-pl-parser-podcast.c +++ b/plparse/totem-pl-parser-podcast.c @@ -273,6 +273,7 @@ parse_rss_item (TotemPlParser *parser, xml_node_t *parent) if (tmp != NULL) content_type = tmp; } else if (g_ascii_strcasecmp (node->name, "link") == 0 && + totem_pl_parser_get_recurse (parser) && totem_pl_parser_is_videosite (node->data, totem_pl_parser_is_debugging_enabled (parser)) != FALSE) { uri = node->data; } else if (g_ascii_strcasecmp (node->name, "image") == 0) { @@ -294,6 +295,7 @@ parse_rss_item (TotemPlParser *parser, xml_node_t *parent) if (id != NULL && uri == NULL && + totem_pl_parser_get_recurse (parser) && totem_pl_parser_is_videosite (id, totem_pl_parser_is_debugging_enabled (parser)) != FALSE) uri = id; @@ -580,8 +582,10 @@ parse_atom_entry (TotemPlParser *parser, xml_node_t *parent) href = xml_parser_get_property (node, "href"); if (href == NULL) continue; - if (!totem_pl_parser_is_videosite (href, totem_pl_parser_is_debugging_enabled (parser))) + if (totem_pl_parser_get_recurse (parser) && + !totem_pl_parser_is_videosite (href, totem_pl_parser_is_debugging_enabled (parser))) { continue; + } uri = href; } } else if (g_ascii_strcasecmp (node->name, "updated") == 0 @@ -614,8 +618,10 @@ parse_atom_entry (TotemPlParser *parser, xml_node_t *parent) prop = xml_parser_get_property (child, "url"); if (prop == NULL) continue; - if (!totem_pl_parser_is_videosite (prop, totem_pl_parser_is_debugging_enabled (parser))) + if (totem_pl_parser_get_recurse (parser) && + !totem_pl_parser_is_videosite (prop, totem_pl_parser_is_debugging_enabled (parser))) { continue; + } uri = prop; } else if (g_ascii_strcasecmp (child->name, "media:thumbnail") == 0) { img = xml_parser_get_property (child, "url"); diff --git a/plparse/totem-pl-parser.c b/plparse/totem-pl-parser.c index 8706eeb..404deb3 100644 --- a/plparse/totem-pl-parser.c +++ b/plparse/totem-pl-parser.c @@ -2059,7 +2059,7 @@ totem_pl_parser_parse_internal (TotemPlParser *parser, /* Should we try to parse it with quvi? */ if (g_file_has_uri_scheme (file, "http") || g_file_has_uri_scheme (file, "https")) { - if (uri != NULL && totem_pl_parser_is_videosite (uri, parser->priv->debug) != FALSE) { + if (uri != NULL && parse_data->recurse && totem_pl_parser_is_videosite (uri, parser->priv->debug) != FALSE) { ret = totem_pl_parser_add_videosite (parser, file, base_file, parse_data, NULL); if (ret == TOTEM_PL_PARSER_RESULT_SUCCESS) return ret; |