noinnion / newsplus

News+ is a simple, fast and intuitive feed/rss reader for Android, featuring beautiful themes, podcast support and full offline support.
http://noinnion.com/newsplus
358 stars 77 forks source link

Images not saved although content is properly double escaped (XML+HTML) #90

Open moneytoo opened 9 years ago

moneytoo commented 9 years ago

I use TT-RSS to read feed http://www.mobilmania.cz/rss/sc-47/default.aspx which I convert using fivefilters's full-text-rss to get feed which includes full content. I sync feeds to read when offline but images from this side are not saved/cached (unsaved/web is ok).

This is how it looks like:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="css/feed.xsl"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
<channel>
<title>MobilMania.cz</title>
<link>http://www.mobilmania.cz/default.aspx</link>
<description></description>
<image><title>MobilMania.cz</title>
<link>http://www.mobilmania.cz/default.aspx</link>
<url>http://www.mobilmania.cz/Client.Images/Logos/logo-mobilmania-rss.gif</url>
</image>
<item>
<title>Nositelnému příslušenství vládne Samsung, jeho podíl ale klesá</title>
<link>http://www.mobilmania.cz/bleskovky/nositelnemu-prislusenstvi-vladne-samsung-jeho-podil-ale-klesa/sc-4-a-1329731/default.aspx#utm_medium=selfpromo&amp;utm_source=mobilmania&amp;utm_campaign=RSSfeed</link>
<guid isPermaLink="true" >http://www.mobilmania.cz/bleskovky/nositelnemu-prislusenstvi-vladne-samsung-jeho-podil-ale-klesa/sc-4-a-1329731/default.aspx#utm_medium=selfpromo&amp;amp;utm_source=mobilmania&amp;amp;utm_campaign=RSSfeed</guid>
<description>&lt;p&gt;Na poli nositelného příslušenství nadále se svými chytrými hodinkami a náramky kraluje Samsung, jeho tržní podíl ale s rostoucí aktivitou konkurenčních výrobců ve čtvrtém čtvrtletí 2014 klesal. Vyplývá to pravidelných kvartálních statistik společnosti Strategy Analytics. Segment nositelností stále prudce roste, meziročně se distribuovalo o 142 % více kusů chytrých hodinek.&lt;/p&gt;
&lt;h6&gt;&lt;a href=&quot;http://www.mobilmania.cz/Getfile.aspx?id_file=353630574&quot; onclick=&quot;javascript:ShowArticleImage(353630574,750,500,'smartwatch-comparison-2014.jpg'); return false&quot;&gt;&lt;img align=&quot;middle&quot; alt=&quot;Klepněte pro větší obrázek&quot; src=&quot;http://mm.v.mfstatic.cz/GetThumbNail.aspx?id_file=353630574&amp;amp;width=5000&amp;amp;height=200&amp;amp;q=100&quot; class=&quot;c7&quot; title=&quot;Klepněte pro větší obrázek&quot; /&gt;&lt;/a&gt;&lt;/h6&gt;
&lt;p&gt;Vedle Samsungu a jeho modelů Gear jsou podle Strategy Analytics nejvýznamnějšími hráči na trhu Sony, LG, Pebble, Motorola a Asus. Na trhu nositelností převládají platformy Tizen a Android Wear. První jmenovanou používá Samsung v hodinkách Gear (kromě modelu Gear Live), spousta výrobců včetně LG, Motoroly, Sony a Asusu pak vsadila na platformu Googlu. Podíly dalších platforem jsou zanedbatelné.&lt;/p&gt;
</description>
<pubDate>Fri, 13 Feb 2015 16:00:00 +0100</pubDate>
<dc:creator>Jan Láska</dc:creator>
<dc:language>cs</dc:language>
<dc:format>text/html</dc:format>
<dc:identifier>http://www.mobilmania.cz/bleskovky/nositelnemu-prislusenstvi-vladne-samsung-jeho-podil-ale-klesa/sc-4-a-1329731/default.aspx</dc:identifier>
</item>
</channel>
</rss>

This is the actual link to image: src=&quot;http://mm.v.mfstatic.cz/GetThumbNail.aspx?id_file=353630574&amp;amp;width=5000&amp;amp;height=200&amp;amp;q=100&quot; So the link contains &amp;amp; - double escaped ampersand which is according all the requirements because XML requires escaping ampersand and the content within is actually HTML (and/or is threated as HTML) and HTML also requires ampersand escaping.

If I inspect network traffic, indeed I see a request to unescaped url.

GET http://www.mobilmania.cz/GetThumbNail.aspx?id_file=353630574&amp;width=5000&amp;height=200&amp;q=100 HTTP/1.1
Host: www.mobilmania.cz
Connection: Keep-Alive