]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Allow finding the "original remote thumbnail"
authorMikael Nordfeldth <mmn@hethane.se>
Wed, 10 Feb 2016 03:37:43 +0000 (04:37 +0100)
committerMikael Nordfeldth <mmn@hethane.se>
Wed, 10 Feb 2016 03:37:43 +0000 (04:37 +0100)
This will probably cause older oEmbed images not to show, since they
probably were updated to use empty url entries because they were thought
of as local ones. During a migration period maybe you want to change
the default value of notNullUrl to 'false' in File_thumbnail::byFile(...)

classes/File_thumbnail.php

index 6874528a7a3849950034f494143449e0cb5c7d98..e028409f0f0f62b4cdd278cf0a26bd244c1a7b1d 100644 (file)
@@ -85,13 +85,24 @@ class File_thumbnail extends Managed_DataObject
 
     /**
      * Fetch an entry by using a File's id
+     *
+     * @param   File    $file       The File object we're getting a thumbnail for.
+     * @param   boolean $notNullUrl Originally remote thumbnails have a URL stored, we use this to find the "original"
+     *
+     * @return  File_thumbnail
+     * @throws  NoResultException if no File_thumbnail matched the criteria
      */
-    static function byFile(File $file) {
-        $file_thumbnail = self::getKV('file_id', $file->getID());
-        if (!$file_thumbnail instanceof File_thumbnail) {
-            throw new ServerException(sprintf('No File_thumbnail entry for File id==%u', $file->getID()));
+    static function byFile(File $file, $notNullUrl=true) {
+        $thumb = new File_thumbnail();
+        $thumb->file_id = $file->getID();
+        if ($notNullUrl) {
+            $thumb->whereAdd('url IS NOT NULL');
+        }
+        $thumb->limit(1);
+        if (!$thumb->find(true)) {
+            throw new NoResultException($thumb);
         }
-        return $file_thumbnail;
+        return $thumb;
     }
 
     /**