From 76ee1fd5daa6ab1999224d8e93df1b7116f24c36 Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@controlyourself.ca>
Date: Sat, 30 May 2009 04:40:47 -0400
Subject: [PATCH] Removing inbox and memcached daemon handling

---
 classes/Notice.php                | 54 ++--------------------
 lib/util.php                      | 13 +-----
 scripts/getvaliddaemons.php       |  5 --
 scripts/inboxqueuehandler.php     | 77 -------------------------------
 scripts/memcachedqueuehandler.php | 70 ----------------------------
 scripts/stopdaemons.sh            |  3 +-
 6 files changed, 6 insertions(+), 216 deletions(-)
 delete mode 100755 scripts/inboxqueuehandler.php
 delete mode 100755 scripts/memcachedqueuehandler.php

diff --git a/classes/Notice.php b/classes/Notice.php
index 3a90d18b47..b4c86ebeb5 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -196,12 +196,8 @@ class Notice extends Memcached_DataObject
             $notice->saveReplies();
             $notice->saveTags();
 
-            if (common_config('queue', 'enabled')) {
-                $notice->addToAuthorInbox();
-            } else {
-                $notice->addToInboxes();
-                $notice->saveGroups();
-            }
+            $notice->addToInboxes();
+            $notice->saveGroups();
 
             $notice->query('COMMIT');
 
@@ -211,13 +207,7 @@ class Notice extends Memcached_DataObject
         # Clear the cache for subscribed users, so they'll update at next request
         # XXX: someone clever could prepend instead of clearing the cache
 
-        if (common_config('memcached', 'enabled')) {
-            if (common_config('queue', 'enabled')) {
-                $notice->blowAuthorCaches();
-            } else {
-                $notice->blowCaches();
-            }
-        }
+        $notice->blowCaches();
 
         return $notice;
     }
@@ -280,17 +270,6 @@ class Notice extends Memcached_DataObject
         $this->blowGroupCache($blowLast);
     }
 
-    function blowAuthorCaches($blowLast=false)
-    {
-        // Clear the user's cache
-        $cache = common_memcache();
-        if (!empty($cache)) {
-            $cache->delete(common_cache_key('notice_inbox:by_user:'.$this->profile_id));
-        }
-        $this->blowNoticeCache($blowLast);
-        $this->blowPublicCache($blowLast);
-    }
-
     function blowGroupCache($blowLast=false)
     {
         $cache = common_memcache();
@@ -709,33 +688,6 @@ class Notice extends Memcached_DataObject
         return;
     }
 
-    function addToAuthorInbox()
-    {
-        $enabled = common_config('inboxes', 'enabled');
-
-        if ($enabled === true || $enabled === 'transitional') {
-            $user = User::staticGet('id', $this->profile_id);
-            if (empty($user)) {
-                return;
-            }
-            $inbox = new Notice_inbox();
-            $UT = common_config('db','type')=='pgsql'?'"user"':'user';
-            $qry = 'INSERT INTO notice_inbox (user_id, notice_id, created) ' .
-              "SELECT $UT.id, " . $this->id . ", '" . $this->created . "' " .
-              "FROM $UT " .
-              "WHERE $UT.id = " . $this->profile_id . ' ' .
-              'AND NOT EXISTS (SELECT user_id, notice_id ' .
-              'FROM notice_inbox ' .
-              "WHERE user_id = " . $this->profile_id . ' '.
-              'AND notice_id = ' . $this->id . ' )';
-            if ($enabled === 'transitional') {
-                $qry .= " AND $UT.inboxed = 1";
-            }
-            $inbox->query($qry);
-        }
-        return;
-    }
-
     function saveGroups()
     {
         $enabled = common_config('inboxes', 'enabled');
diff --git a/lib/util.php b/lib/util.php
index 214c332799..22308f432c 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -884,16 +884,12 @@ function common_enqueue_notice($notice)
     // If inboxes are enabled, wait till inboxes are filled
     // before doing inbox-dependent broadcasts
 
-    if (common_config('inboxes', 'enabled') === true ||
-        common_config('inboxes', 'enabled') === 'transitional') {
-        $transports[] = 'inbox';
-    } else {
-        $transports = array_merge($transports, common_post_inbox_transports());
-    }
+    $transports = array_merge($transports, common_post_inbox_transports());
 
     foreach ($transports as $transport) {
         common_enqueue_notice_transport($notice, $transport);
     }
+
     return $result;
 }
 
@@ -905,11 +901,6 @@ function common_post_inbox_transports()
         $transports = array_merge($transports, array('jabber', 'public'));
     }
 
-    if (common_config('memcached', 'enabled')) {
-        // Note: limited to 8 chars
-        $transports[] = 'memcache';
-    }
-
     return $transports;
 }
 
diff --git a/scripts/getvaliddaemons.php b/scripts/getvaliddaemons.php
index 482e63af70..0996ba9f41 100755
--- a/scripts/getvaliddaemons.php
+++ b/scripts/getvaliddaemons.php
@@ -25,7 +25,6 @@
  * daemon names.
  */
 
-
 # Abort if called from a web server
 if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
     print "This script must be run from the command line\n";
@@ -41,12 +40,8 @@ if(common_config('xmpp','enabled')) {
     echo "xmppdaemon.php jabberqueuehandler.php publicqueuehandler.php ";
     echo "xmppconfirmhandler.php ";
 }
-if(common_config('memcached','enabled')) {
-    echo "memcachedqueuehandler.php ";
-}
 echo "ombqueuehandler.php ";
 echo "twitterqueuehandler.php ";
 echo "facebookqueuehandler.php ";
 echo "pingqueuehandler.php ";
-echo "inboxqueuehandler.php ";
 echo "smsqueuehandler.php ";
diff --git a/scripts/inboxqueuehandler.php b/scripts/inboxqueuehandler.php
deleted file mode 100755
index c7aab4fe16..0000000000
--- a/scripts/inboxqueuehandler.php
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env php
-<?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008,2009 Control Yourself, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Abort if called from a web server
-
-if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
-    print "This script must be run from the command line\n";
-    exit();
-}
-
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-define('LACONICA', true);
-
-require_once(INSTALLDIR . '/lib/common.php');
-require_once(INSTALLDIR . '/lib/queuehandler.php');
-
-set_error_handler('common_error_handler');
-
-class InboxQueueHandler extends QueueHandler
-{
-    function transport()
-    {
-        return 'inbox';
-    }
-
-	function start() {
-		$this->log(LOG_INFO, "Initialize inbox queue handler");
-		return true;
-	}
-
-    function handle_notice($notice)
-    {
-        $this->log(LOG_INFO, "Distributing notice to inboxes for $notice->id");
-        $notice->addToInboxes();
-        $notice->saveGroups();
-        $notice->blowSubsCache();
-        $transports = common_post_inbox_transports();
-
-        foreach ($transports as $transport) {
-            common_enqueue_notice_transport($notice, $transport);
-        }
-
-        return true;
-    }
-
-	function finish() {
-		$this->log(LOG_INFO, "Terminating inbox queue handler");
-	}
-}
-
-ini_set("max_execution_time", "0");
-ini_set("max_input_time", "0");
-set_time_limit(0);
-mb_internal_encoding('UTF-8');
-
-$id = ($argc > 1) ? $argv[1] : null;
-
-$handler = new InboxQueueHandler($id);
-
-$handler->runOnce();
diff --git a/scripts/memcachedqueuehandler.php b/scripts/memcachedqueuehandler.php
deleted file mode 100755
index 185b781f75..0000000000
--- a/scripts/memcachedqueuehandler.php
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env php
-<?php
-/*
- * Laconica - a distributed open-source microblogging tool
- * Copyright (C) 2008,2009 Control Yourself, Inc.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-// Abort if called from a web server
-
-if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) {
-    print "This script must be run from the command line\n";
-    exit();
-}
-
-define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
-define('LACONICA', true);
-
-require_once(INSTALLDIR . '/lib/common.php');
-require_once(INSTALLDIR . '/lib/queuehandler.php');
-
-set_error_handler('common_error_handler');
-
-class MemcachedQueueHandler extends QueueHandler
-{
-    function transport()
-    {
-        return 'memcache';
-    }
-
-	function start() {
-		$this->log(LOG_INFO, "INITIALIZE");
-		return true;
-	}
-
-    function handle_notice($notice)
-    {
-        // XXX: fork here
-        $this->log(LOG_INFO, "Blowing memcached for $notice->id");
-        $notice->blowCaches();
-        return true;
-    }
-
-	function finish() {
-	}
-
-}
-
-ini_set("max_execution_time", "0");
-ini_set("max_input_time", "0");
-set_time_limit(0);
-mb_internal_encoding('UTF-8');
-
-$id = ($argc > 1) ? $argv[1] : null;
-
-$handler = new MemcachedQueueHandler($id);
-
-$handler->runOnce();
diff --git a/scripts/stopdaemons.sh b/scripts/stopdaemons.sh
index f6d71eddfb..2134b4ab00 100755
--- a/scripts/stopdaemons.sh
+++ b/scripts/stopdaemons.sh
@@ -24,8 +24,7 @@ SDIR=`dirname $0`
 DIR=`php $SDIR/getpiddir.php`
 
 for f in jabberhandler ombhandler publichandler smshandler pinghandler \
-	 xmppconfirmhandler xmppdaemon twitterhandler facebookhandler \
-         memcachehandler inboxhandler; do
+	 xmppconfirmhandler xmppdaemon twitterhandler facebookhandler; do
 
 	FILES="$DIR/$f.*.pid"
 	for ff in "$FILES" ; do
-- 
2.39.5