{"id":197,"date":"2006-07-11T09:54:49","date_gmt":"2006-07-11T07:54:49","guid":{"rendered":"http:\/\/www.lucas-nussbaum.net\/blog\/?p=197"},"modified":"2006-07-11T09:54:49","modified_gmt":"2006-07-11T07:54:49","slug":"ruby-feedparser-hacking","status":"publish","type":"post","link":"https:\/\/www.lucas-nussbaum.net\/blog\/?p=197","title":{"rendered":"Ruby-feedparser hacking"},"content":{"rendered":"<p>It&#8217;s amazing how efficient you can be when you are forced to work offline. So, thanks to Tele2, I&#8217;ve been offline at home for 16 days now, which caused major improvements to <a href=\"http:\/\/home.gna.org\/ruby-feedparser\/\">Ruby-feedparser<\/a>.<\/p>\n<ul>\n<li>It now outputs the list of enclosures in the text and html outputs. This means that <a href=\"http:\/\/home.gna.org\/feed2imap\/\">feed2imap<\/a> will automatically support podcasting if you upgrade to the newer ruby-feedparser.<\/li>\n<li>It now rewrites relative URLs. Some blogs use links such as <img xsrc=\"\/images\/toto.png\">, which is wrong, because you don&#8217;t know where to find that \/images dir, of course. It should probably be the blog engine&#8217;s responsability to rewrite such URLs, but <a href=\"http:\/\/www.dotclear.net\/\">some of them<\/a> don&#8217;t. Ruby-feedparser now tries hard to guess which is the correct location for the file.<\/li>\n<\/ul>\n<p>This second change is very cool : when running the next update using feed2imap, I fetched a lot of posts with embedded images that I couldn&#8217;t read before. :-)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s amazing how efficient you can be when you are forced to work offline. So, thanks to Tele2, I&#8217;ve been offline at home for 16 days now, which caused major improvements to Ruby-feedparser. It now outputs the list of enclosures in the text and html outputs. This means that feed2imap will automatically support podcasting if [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"0","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-197","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=197"}],"version-history":[{"count":0,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/197\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}