]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/SubMirror/classes/SubMirror.php
Merge remote-tracking branch 'upstream/master' into social-master
[quix0rs-gnu-social.git] / plugins / SubMirror / classes / SubMirror.php
index bd8fc80a5fbc0fb3a46c6398a4e005c2b369d580..cdbbed6726e415c2ddcbd24d18cbef7ba7a36fe6 100644 (file)
@@ -22,7 +22,7 @@
  * @maintainer Brion Vibber <brion@status.net>
  */
 
-class SubMirror extends Memcached_DataObject
+class SubMirror extends Managed_DataObject
 {
     public $__table = 'submirror';
 
@@ -34,11 +34,6 @@ class SubMirror extends Memcached_DataObject
     public $created;
     public $modified;
 
-    public /*static*/ function staticGet($k, $v=null)
-    {
-        return parent::staticGet(__CLASS__, $k, $v);
-    }
-
     /**
      * return table definition for DB_DataObject
      *
@@ -79,7 +74,7 @@ class SubMirror extends Memcached_DataObject
     /**
      * Temporary hack to set up the compound index, since we can't do
      * it yet through regular Schema interface. (Coming for 1.0...)
-     * 
+     *
      * @param Schema $schema
      * @return void
      */
@@ -117,7 +112,7 @@ class SubMirror extends Memcached_DataObject
 
     function keyTypes()
     {
-        // @fixme keys
+        // @todo FIXME keys
         // need a sane key for reverse lookup too
         return array('subscriber' => 'K', 'subscribed' => 'K');
     }
@@ -145,7 +140,7 @@ class SubMirror extends Memcached_DataObject
         $mirror->created = common_sql_now();
         $mirror->modified = common_sql_now();
         $mirror->insert();
-        
+
         return $mirror;
     }
 
@@ -153,11 +148,11 @@ class SubMirror extends Memcached_DataObject
      * @param Notice $notice
      * @return mixed Notice on successful mirroring, boolean if not
      */
-    public function mirrorNotice($notice)
+    public function mirrorNotice(Notice $notice)
     {
-        $profile = Profile::staticGet('id', $this->subscriber);
-        if (!$profile) {
-            common_log(LOG_ERROR, "SubMirror plugin skipping auto-repeat of notice $notice->id for missing user $profile->id");
+        $profile = Profile::getKV('id', $this->subscriber);
+        if (!($profile instanceof Profile)) {
+            common_log(LOG_ERR, "SubMirror plugin skipping auto-repeat of notice $notice->id for missing user $profile->id");
             return false;
         }
 
@@ -173,18 +168,18 @@ class SubMirror extends Memcached_DataObject
      * This retains attribution within the site, and other nice things,
      * but currently ends up looking like 'RT @foobar bla bla' when
      * bridged out over OStatus or TwitterBridge.
-     * 
+     *
      * @param Notice $notice
      * @return mixed Notice on successful repeat, true if already repeated, false on failure
      */
-    protected function repeatNotice($profile, $notice)
+    protected function repeatNotice(Profile $profile, Notice $notice)
     {
-        if($profile->hasRepeated($notice->id)) {
+        if($profile->hasRepeated($notice)) {
             common_log(LOG_INFO, "SubMirror plugin skipping auto-repeat of notice $notice->id for user $profile->id; already repeated.");
             return true;
         } else {
             common_log(LOG_INFO, "SubMirror plugin auto-repeating notice $notice->id for $profile->id");
-            return $notice->repeat($profile->id, 'mirror');
+            return $notice->repeat($profile, 'mirror');
         }
     }
 
@@ -192,14 +187,15 @@ class SubMirror extends Memcached_DataObject
      * Mirror a notice by emitting a new notice with the same contents.
      * Kind of dirty, but if pulling an external data feed into an account
      * that may be what you want.
-     * 
-     * @param Notice $notice
-     * @return mixed Notice on successful repeat, true if already repeated, false on failure
+     *
+     * @param  Profile $profile
+     * @param  Notice  $notice
+     * @return mixed   Notice on successful repeat, true if already repeated, false on failure
      */
-    protected function copyNotice($profile, $notice)
+    protected function copyNotice(Profile $profile, Notice $notice)
     {
         $options = array('is_local' => Notice::LOCAL_PUBLIC,
-                         'url' => $notice->bestUrl(), // pass through the foreign link...
+                         'url' => $notice->getUrl(), // pass through the foreign link...
                          'rendered' => $notice->rendered);
 
         $saved = Notice::saveNew($profile->id,
@@ -209,14 +205,9 @@ class SubMirror extends Memcached_DataObject
         return $saved;
     }
 
-    public /*static*/ function pkeyGet($v)
-    {
-        return parent::pkeyGet(__CLASS__, $v);
-    }
-
     /**
      * Get the mirroring setting for a pair of profiles, if existing.
-     * 
+     *
      * @param Profile $subscriber
      * @param Profile $subscribed
      * @return mixed Profile or empty