]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/SubMirror/SubMirrorPlugin.php
a stream function for Fave class
[quix0rs-gnu-social.git] / plugins / SubMirror / SubMirrorPlugin.php
index 8678cc3dd0be92bb57bc2eb51e98b5422e9aeb07..578ef6607c5fc846d3156f5f25ab15652425a28f 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+
 /**
  * @package SubMirrorPlugin
  * @maintainer Brion Vibber <brion@status.net>
  */
-
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
-
-
 class SubMirrorPlugin extends Plugin
 {
     /**
@@ -120,6 +118,9 @@ class SubMirrorPlugin extends Plugin
     {
         $schema = Schema::get();
         $schema->ensureTable('submirror', SubMirror::schemaDef());
+
+        // @hack until key definition support is merged
+        SubMirror::fixIndexes($schema);
         return true;
     }
 
@@ -140,10 +141,26 @@ class SubMirrorPlugin extends Plugin
         $transports[] = 'mirror';
     }
 
-    function onStartShowSubscriptionsContent($action)
+    /**
+     * Let the OStatus subscription garbage collection know if we're
+     * making use of a remote feed, so it doesn't get dropped out
+     * from under us.
+     *
+     * @param Ostatus_profile $oprofile
+     * @param int $count in/out
+     * @return mixed hook return value
+     */
+    function onOstatus_profileSubscriberCount($oprofile, &$count)
     {
-        $action->element('a',
-                         array('href' => common_local_url('mirrorsettings')),
-                         _m('Set up mirroring options...'));
+        if ($oprofile->profile_id) {
+            $mirror = new SubMirror();
+            $mirror->subscribed = $oprofile->profile_id;
+            if ($mirror->find()) {
+                while ($mirror->fetch()) {
+                    $count++;
+                }
+            }
+        }
+        return true;
     }
 }