From: Antonio Ospite <ao2@ao2.it>
Date: Sun, 15 May 2016 13:52:10 +0000 (+0200)
Subject: rss_converter_facebook.com.xsl: fix getting the item description
X-Git-Tag: v0.6~52
X-Git-Url: https://git.ao2.it/tweeper.git/commitdiff_plain/8a6c65c179aa213368c9941da4dd47faf043b236?ds=sidebyside

rss_converter_facebook.com.xsl: fix getting the item description

Hopefully this is a more stable way to get just the useful content of
a story skipping the header and the footer.
---

diff --git a/rss_converter_facebook.com.xsl b/rss_converter_facebook.com.xsl
index 347f1e4..984d12c 100644
--- a/rss_converter_facebook.com.xsl
+++ b/rss_converter_facebook.com.xsl
@@ -54,14 +54,16 @@
 
     <xsl:template match="//div[contains(@class, 'userContentWrapper')]">
         <xsl:variable name="story-id" select=".//input[@name='ft_ent_identifier']/@value"/>
-        <xsl:variable name="item-content" select=".//div[contains(@class, 'userContent')]"/>
         <xsl:variable
             name="item-permalink"
             select="concat($BaseURL, '/permalink.php?id=', $page-id, '&amp;story_fbid=', $story-id)"/>
 
+        <!-- Get only the first child in order to skip the footer of the content -->
+        <xsl:variable name="item-content" select="div[1]"/>
+
         <item>
             <title>
-                <xsl:variable name="item-title" select="$item-content/p"/>
+                <xsl:variable name="item-title" select="$item-content//p"/>
                 <xsl:variable name="title-length" select="140"/>
                 <!-- ellipsize, inspired from http://stackoverflow.com/questions/13622338 -->
                 <xsl:choose>
@@ -86,9 +88,17 @@
                 <xsl:value-of select="php:functionString('Tweeper::epoch_to_gmdate', number($timestamp))"/>
             </pubDate>
             <description>
+
+                <!--
+                     Get only the children starting from the one with class="userContent",
+                     this way the content header is skipped
+                -->
+                <xsl:variable
+                    name="usercontent-position"
+                    select="count($item-content/div[contains(@class, 'userContent')]/preceding-sibling::*) + 1"/>
+
                 <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
-                <xsl:copy-of select="$item-content/node()"/>
-                <xsl:copy-of select=".//div[@class='mtm']/node()"/>
+                <xsl:copy-of select="$item-content/div[position() >= $usercontent-position]"/>
                 <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
             </description>
         </item>