Revert "src/Tweeper.php: fix rendering Instagram images in some feed readers" master
authorAntonio Ospite <ao2@ao2.it>
Fri, 7 Jan 2022 20:44:51 +0000 (21:44 +0100)
committerAntonio Ospite <ao2@ao2.it>
Fri, 7 Jan 2022 20:44:51 +0000 (21:44 +0100)
This reverts commit 6525c19868a0511abaaac9d2ba452ba640899209.

The problem was not really about Instagram using Cross Origin Resource
Policy but probably more about Liferea not parsing the images URLs
correctly.

So revert the change, since this broke images in other feed readers
which do not support Data URLs, like for example newsboat.

src/Tweeper.php
src/rss_converter_instagram.com.xsl

index 2d3870f..f79bb08 100644 (file)
@@ -234,34 +234,6 @@ class Tweeper {
   }
 
   /**
-   * Generate a data URL.
-   */
-  public static function generateDataURL($url) {
-    $supported_content_types = [
-      "image/gif",
-      "image/jpeg",
-      "image/png",
-    ];
-
-    $url_info = Tweeper::getUrlInfo($url);
-    if (FALSE === $url_info) {
-      trigger_error("Failed to retrieve info for URL: " . $url, E_USER_WARNING);
-      return '';
-    }
-
-    $supported = in_array($url_info['content_type'], $supported_content_types);
-    if (!$supported) {
-      trigger_error("Unsupported data URL type \"" . $url_info['content_type'] . "\" for URL: " . $url_info['url'], E_USER_WARNING);
-      return '';
-    }
-
-    $base64Data = base64_encode(file_get_contents($url));
-    $dataURL = 'data: ' . $url_info['content_type'] . ';base64,' . $base64Data;
-
-    return $dataURL;
-  }
-
-  /**
    * Mimic the message from libxml.c::php_libxml_ctx_error_level()
    */
   private static function logXmlError($error) {
index 71b60a7..855ce0b 100644 (file)
@@ -66,7 +66,6 @@
 
     <xsl:template match="//edges/node">
         <xsl:variable name="item-content-image" select="./display_url"/>
-        <xsl:variable name="item-content-image-data" select="php:functionString('Tweeper\Tweeper::generateDataURL', $item-content-image)"/>
         <xsl:variable name="item-content-caption" select="./edge_media_to_caption/edges/node/text"/>
         <xsl:variable name="item-permalink" select="concat($BaseURL, '/p/', ./shortcode, '/')"/>
         <item>
                     <xsl:value-of select="$item-content-caption"/>
                 </p><br />
                 <xsl:if test="$show-multimedia = 1">
-                    <a href="{$item-permalink}"><img src="{$item-content-image-data}" style="max-width: 100%"/></a>
+                    <a href="{$item-permalink}"><img src="{$item-content-image}" style="max-width: 100%"/></a>
                 </xsl:if>
                 <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
             </description>