]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Send objects instead of integers to File_to_post::processNew
authorMikael Nordfeldth <mmn@hethane.se>
Thu, 4 Jun 2015 15:36:11 +0000 (17:36 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Thu, 4 Jun 2015 15:36:11 +0000 (17:36 +0200)
classes/File.php
classes/File_to_post.php
classes/Notice.php
lib/mediafile.php
plugins/OStatus/classes/Ostatus_profile.php
plugins/TwitterBridge/lib/twitterimport.php

index 76c00dc1f887d364095e3e987009091435b3f940..d4abbfddeef3f5f45c26621fce6414c16e75827f 100644 (file)
@@ -116,14 +116,14 @@ class File extends Managed_DataObject
      *
      * @fixme refactor this mess, it's gotten pretty scary.
      * @param string $given_url the URL we're looking at
-     * @param int $notice_id (optional)
+     * @param Notice $notice (optional)
      * @param bool $followRedirects defaults to true
      *
      * @return mixed File on success, -1 on some errors
      *
      * @throws ServerException on failure
      */
-    public static function processNew($given_url, $notice_id=null, $followRedirects=true) {
+    public static function processNew($given_url, Notice $notice=null, $followRedirects=true) {
         if (empty($given_url)) {
             throw new ServerException('No given URL to process');
         }
@@ -181,7 +181,7 @@ class File extends Managed_DataObject
                 //
                 // Seen in the wild with clojure.org, which redirects through
                 // wikispaces for auth and appends session data in the URL params.
-                $file = self::processNew($redir_url, $notice_id, /*followRedirects*/false);
+                $file = self::processNew($redir_url, $notice, /*followRedirects*/false);
                 File_redirection::saveNew($redir_data, $file->id, $given_url);
             }
 
@@ -193,8 +193,8 @@ class File extends Managed_DataObject
             }
         }
 
-        if (!empty($notice_id)) {
-            File_to_post::processNew($file->id, $notice_id);
+        if ($notice instanceof Notice) {
+            File_to_post::processNew($file, $notice);
         }
         return $file;
     }
index b3c44d4a224f3a982c468922a050c666c0a0698a..7f2aca33629efe07dfe9bbdafc1b54aa8c5714e8 100644 (file)
@@ -58,30 +58,29 @@ class File_to_post extends Managed_DataObject
         );
     }
 
-    function processNew($file_id, $notice_id) {
+    function processNew(File $file, Notice $notice) {
         static $seen = array();
+
+        $file_id = $file->getID();
+        $notice_id = $notice->getID();
+        if (!array_key_exists($notice_id, $seen)) {
+            $seen[$notice_id] = array();
+        }
+
         if (empty($seen[$notice_id]) || !in_array($file_id, $seen[$notice_id])) {
 
             $f2p = File_to_post::pkeyGet(array('post_id' => $notice_id,
                                                'file_id' => $file_id));
-            if (empty($f2p)) {
+            if (!$f2p instanceof File_to_post) {
                 $f2p = new File_to_post;
                 $f2p->file_id = $file_id;
                 $f2p->post_id = $notice_id;
                 $f2p->insert();
                 
-                $f = File::getKV($file_id);
-
-                if (!empty($f)) {
-                    $f->blowCache();
-                }
+                $file->blowCache();
             }
 
-            if (empty($seen[$notice_id])) {
-                $seen[$notice_id] = array($file_id);
-            } else {
-                $seen[$notice_id][] = $file_id;
-            }
+            $seen[$notice_id][] = $file_id;
         }
     }
 
index b8af0fac6d0b136dd3ff1e97ed3b0c28840493c8..f9d80c1289f1463c651e4f08fed3b998088a0973 100644 (file)
@@ -1109,7 +1109,7 @@ class Notice extends Managed_DataObject
      */
     function saveUrls() {
         if (common_config('attachments', 'process_links')) {
-            common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this->id);
+            common_replace_urls_callback($this->content, array($this, 'saveUrl'), $this);
         }
     }
 
@@ -1126,11 +1126,7 @@ class Notice extends Managed_DataObject
         if (common_config('attachments', 'process_links')) {
             // @fixme validation?
             foreach (array_unique($urls) as $url) {
-                try {
-                    File::processNew($url, $this->id);
-                } catch (ServerException $e) {
-                    // Could not save URL. Log it?
-                }
+                $this->saveUrl($url, $this);
             }
         }
     }
@@ -1138,9 +1134,9 @@ class Notice extends Managed_DataObject
     /**
      * @private callback
      */
-    function saveUrl($url, $notice_id) {
+    function saveUrl($url, Notice $notice) {
         try {
-            File::processNew($url, $notice_id);
+            File::processNew($url, $notice);
         } catch (ServerException $e) {
             // Could not save URL. Log it?
         }
index 546239ed7d3bf6de2bbf4b7421139a1d9c694690..2b8f324df2f88d5e8671c95f2e6166d07b57a380 100644 (file)
@@ -61,7 +61,7 @@ class MediaFile
 
     public function attachToNotice(Notice $notice)
     {
-        File_to_post::processNew($this->fileRecord->id, $notice->id);
+        File_to_post::processNew($this->fileRecord, $notice);
     }
 
     public function getPath()
index 07c9d1c182a59e38eec64f93c652838db3fa4497..4d1b95e2b76eeedd30c5d31847f73a4be2b19a23 100644 (file)
@@ -691,8 +691,8 @@ class Ostatus_profile extends Managed_DataObject
                                      $options);
             if ($saved instanceof Notice) {
                 Ostatus_source::saveNew($saved, $this, $method);
-                if (!empty($attachment)) {
-                    File_to_post::processNew($attachment->id, $saved->id);
+                if ($attachment instanceof File) {
+                    File_to_post::processNew($attachment, $saved);
                 }
             }
         } catch (Exception $e) {
index 5258bfc2c981767bba9d297f33ef56905a3a08a3..45b7547ce2fe7e5b79b6fef2bba0f2686eab0cd9 100644 (file)
@@ -564,13 +564,13 @@ class TwitterImport
      * @param Notice $notice
      * @param object $status
      */
-    function saveStatusAttachments($notice, $status)
+    function saveStatusAttachments(Notice $notice, $status)
     {
         if (common_config('attachments', 'process_links')) {
             if (!empty($status->entities) && !empty($status->entities->urls)) {
                 foreach ($status->entities->urls as $url) {
                     try {
-                        File::processNew($url->url, $notice->id);
+                        File::processNew($url->url, $notice);
                     } catch (ServerException $e) {
                         // Could not process attached URL
                     }