summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2021-03-04 16:45:29 +0100
committerBastien Nocera <hadess@hadess.net>2021-06-25 10:24:33 +0200
commit52de144ae730024fda9c79ca1252c6af92f325d6 (patch)
tree7212d7099395242cbe97af7d3fcabab98d2d7a05
parent0f2a60ae99c602d0ebd830ab8d1d8f3414a2b3d9 (diff)
downloadtotem-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.c10
-rw-r--r--plparse/totem-pl-parser.c2
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;