X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/a46377bc66c36851643b1f5a57c7f59380cab183..2eb4e1d36fcc9c6a251b3ec33ef46920d18cb7f8:/rss_converter_pump.io.xsl diff --git a/rss_converter_pump.io.xsl b/rss_converter_pump.io.xsl index b127f3a..1577dcf 100644 --- a/rss_converter_pump.io.xsl +++ b/rss_converter_pump.io.xsl @@ -1,7 +1,7 @@ <!-- Stylesheet to convert Pump.io activity streams to RSS. - Copyright (C) 2013 Antonio Ospite <ospite@studenti.unina.it> + Copyright (C) 2013-2014 Antonio Ospite <ao2@ao2.it> This file is part of tweeper. @@ -22,7 +22,8 @@ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:php="http://php.net/xsl" - xsl:extension-element-prefixes="php"> + xsl:extension-element-prefixes="php" + exclude-result-prefixes="php"> <xsl:output method="xml" indent="yes"/> @@ -32,42 +33,61 @@ <xsl:variable name="user-name" select="substring-after(//div[@id='profile-block']/@data-profile-id, ':')"/> <xsl:template match="//div[@id='user-content-activities']//ul[@id='major-stream']/li"> - <xsl:variable name="activity-text" select=".//div[@class='activity-content']"/> + <xsl:variable name="item-content" select=".//div[@class='activity-content']"/> + <xsl:variable name="item-permalink" select=".//p[@class='muted']/small/a/@href"/> <item> <title> - <xsl:value-of select="concat($user-name, ': ', normalize-space($activity-text))"/> + <xsl:value-of select="concat($user-name, ': ', normalize-space($item-content))"/> </title> <link> - <xsl:value-of select=".//p[@class='muted']/small/a/@href"/> + <xsl:value-of select="$item-permalink"/> </link> + <guid> + <xsl:value-of select="$item-permalink"/> + </guid> <pubDate> - <xsl:value-of select="php:functionString('Tweeper::str_to_gmdate', .//abbr[@class='easydate']/@title)"/> + <xsl:value-of select="php:functionString('Tweeper::strToRssDate', .//abbr[@class='easydate']/@title)"/> </pubDate> <description> <xsl:value-of select="concat($user-name, ': ')"/> <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text> - <xsl:copy-of select="$activity-text/node()"/> + <xsl:copy-of select="$item-content/node()"/> <xsl:text disable-output-escaping="yes">]]></xsl:text> </description> + <xsl:if test="$generate-enclosure = 1"> + <xsl:variable name="image-thumb-link" select=".//img[contains(@class, 'object-image')]/@src"/> + <xsl:if test="$image-thumb-link"> + <xsl:variable name="image-link" select="php:functionString('str_replace', '_thumb', '', $image-thumb-link)"/> + <xsl:copy-of select="php:functionString('Tweeper::generateEnclosure', $image-link)"/> + </xsl:if> + </xsl:if> </item> </xsl:template> <xsl:template match="/"> + <xsl:variable name="channel-title" select="concat(substring-after($user-name, '@'), ' / ', substring-before($user-name, '@'))"/> + <xsl:variable name="channel-link" select="concat('https://', substring-after($user-name, '@'), '/', substring-before($user-name, '@'))"/> <rss version="2.0"> <xsl:attribute name="xml:base"><xsl:value-of select="$BaseURL" /></xsl:attribute> <channel> <generator>Tweeper</generator> <title> - <xsl:value-of select="concat(substring-after($user-name, '@'), ' / ', substring-before($user-name, '@'))"/> + <xsl:value-of select="$channel-title"/> </title> <link> - <xsl:value-of select="concat('https://', substring-after($user-name, '@'), '/', substring-before($user-name, '@'))"/> + <xsl:value-of select="$channel-link"/> </link> <description> <xsl:value-of select="normalize-space(//h1[@class='media-header'])"/> </description> <image> + <title> + <xsl:value-of select="$channel-title"/> + </title> + <link> + <xsl:value-of select="$channel-link"/> + </link> <url> <xsl:value-of select="//div[@id='profile-block']/span/img[@class='img-rounded media-object']/@src"/> </url>