From: Antonio Ospite <ao2@ao2.it> Date: Wed, 6 Jun 2018 12:57:10 +0000 (+0200) Subject: src/rss_converter_instagram.com.xsl: add support for Instagram.com tags X-Git-Tag: v1.3.0~4 X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/d566fc7fcf6841909831da3d60b335294befe62d?ds=sidebyside src/rss_converter_instagram.com.xsl: add support for Instagram.com tags Supporting Instagram tags is quite easy, so let's do it and while at it refactor how the channel description is set depending of the kind of page. --- diff --git a/src/rss_converter_instagram.com.xsl b/src/rss_converter_instagram.com.xsl index 2d54f3d..c714b1b 100644 --- a/src/rss_converter_instagram.com.xsl +++ b/src/rss_converter_instagram.com.xsl @@ -44,11 +44,16 @@ <xsl:variable name="location-name" select="//LocationsPage/graphql/location/name"/> + <xsl:variable name="hashtag-name" select="//TagPage/graphql/hashtag/name"/> + <xsl:variable name="screen-name"> <xsl:choose> <xsl:when test="$location-name != ''"> <xsl:value-of select="$location-name"/> </xsl:when> + <xsl:when test="$hashtag-name != ''"> + <xsl:value-of select="$hashtag-name"/> + </xsl:when> <xsl:when test="$full-name != ''"> <xsl:value-of select="$full-name"/> </xsl:when> @@ -114,12 +119,15 @@ <xsl:variable name="location-id" select="//LocationsPage/graphql/location/id"/> <xsl:value-of select="concat($BaseURL, '/explore/locations/', $location-id)"/> </xsl:when> + <xsl:when test="$hashtag-name != ''"> + <xsl:value-of select="concat($BaseURL, '/explore/tags/', $hashtag-name)"/> + </xsl:when> <xsl:otherwise> <xsl:value-of select="concat($BaseURL, '/', $user-name)"/> </xsl:otherwise> </xsl:choose> </xsl:variable> - <xsl:variable name="channel-image" select="//ProfilePage/graphql/user/profile_pic_url"/> + <xsl:variable name="channel-image" select="//profile_pic_url"/> <rss version="2.0"> <xsl:attribute name="xml:base"><xsl:value-of select="$BaseURL" /></xsl:attribute> @@ -133,16 +141,23 @@ </link> <description> <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text> - <xsl:value-of select="normalize-space(concat($screen-name, '. ', //user/biography))"/> - <xsl:if test="$location-name != ''"> - <xsl:variable name="location-latitude" select="//LocationsPage/graphql/location/lat"/> - <xsl:variable name="location-longitude" select="//LocationsPage/graphql/location/lng"/> - <xsl:value-of select="concat(' (', $location-latitude, ', ', $location-longitude, ')')"/> - </xsl:if> - <xsl:variable name="external-url" select="//user/external_url"/> - <xsl:if test="$external-url != ''"> - <xsl:text> </xsl:text><a href="{$external-url}"><xsl:value-of select="$external-url"/></a> - </xsl:if> + <xsl:choose> + <xsl:when test="$location-name != ''"> + <xsl:variable name="location-latitude" select="//LocationsPage/graphql/location/lat"/> + <xsl:variable name="location-longitude" select="//LocationsPage/graphql/location/lng"/> + <xsl:value-of select="concat($location-name, ' (', $location-latitude, ', ', $location-longitude, ')')"/> + </xsl:when> + <xsl:when test="$hashtag-name != ''"> + <xsl:value-of select="concat('#', $hashtag-name)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="normalize-space(concat($screen-name, '. ', //user/biography))"/> + <xsl:variable name="external-url" select="//user/external_url"/> + <xsl:if test="$external-url != ''"> + <xsl:text> </xsl:text><a href="{$external-url}"><xsl:value-of select="$external-url"/></a> + </xsl:if> + </xsl:otherwise> + </xsl:choose> <xsl:text disable-output-escaping="yes">]]></xsl:text> </description> <xsl:if test="$channel-image != ''"> @@ -158,7 +173,7 @@ </url> </image> </xsl:if> - <xsl:apply-templates select="//ProfilePage/graphql/user/edge_owner_to_timeline_media/edges/node|//LocationsPage/graphql/location/edge_location_to_media/edges/node"/> + <xsl:apply-templates select="//ProfilePage/graphql/user/edge_owner_to_timeline_media/edges/node|//LocationsPage/graphql/location/edge_location_to_media/edges/node|//TagPage/graphql/hashtag/edge_hashtag_to_media/edges/node"/> </channel> </rss> </xsl:template>