diff options
Diffstat (limited to 'classes')
-rw-r--r-- | classes/Notice.php | 18 | ||||
-rwxr-xr-x | classes/Status_network.php | 61 | ||||
-rwxr-xr-x | classes/laconica.ini | 1 | ||||
-rwxr-xr-x | classes/statusnet.ini | 17 |
4 files changed, 97 insertions, 0 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index 5fa0d79a1..a399d97e0 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -46,6 +46,7 @@ class Notice extends Memcached_DataObject public $reply_to; // int(4) public $is_local; // tinyint(1) public $source; // varchar(32) + public $conversation; // int(4) /* Static get */ function staticGet($k,$v=NULL) { @@ -171,6 +172,14 @@ class Notice extends Memcached_DataObject $notice->source = $source; $notice->uri = $uri; + if (!empty($reply_to)) { + $reply_notice = Notice::staticGet('id', $reply_to); + if (!empty($reply_notice)) { + $notice->reply_to = $reply_to; + $notice->conversation = $reply_notice->conversation; + } + } + if (Event::handle('StartNoticeSave', array(&$notice))) { $id = $notice->insert(); @@ -745,6 +754,7 @@ class Notice extends Memcached_DataObject if ($recipient_notice) { $orig = clone($this); $this->reply_to = $recipient_notice->id; + $this->conversation = $recipient_notice->conversation; $this->update($orig); } } @@ -794,6 +804,14 @@ class Notice extends Memcached_DataObject } } + // If it's not a reply, make it the root of a new conversation + + if (empty($this->conversation)) { + $orig = clone($this); + $this->conversation = $this->id; + $this->update($orig); + } + foreach (array_keys($replied) as $recipient) { $user = User::staticGet('id', $recipient); if ($user) { diff --git a/classes/Status_network.php b/classes/Status_network.php new file mode 100755 index 000000000..f7747f71d --- /dev/null +++ b/classes/Status_network.php @@ -0,0 +1,61 @@ +<?php +/** + * Table Definition for status_network + */ + +class Status_network extends DB_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'status_network'; // table name + public $nickname; // varchar(64) primary_key not_null + public $hostname; // varchar(255) unique_key + public $pathname; // varchar(255) unique_key + public $sitename; // varchar(255) + public $dbhost; // varchar(255) + public $dbuser; // varchar(255) + public $dbpass; // varchar(255) + public $dbname; // varchar(255) + public $created; // datetime() not_null + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + + /* Static get */ + function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Status_network',$k,$v); } + + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE + + static function setupDB($dbhost, $dbuser, $dbpass, $dbname) + { + global $config; + + $config['db']['database_'.$dbname] = "mysqli://$dbuser:$dbpass@$dbhost/$dbname"; + $config['db']['ini_'.$dbname] = INSTALLDIR.'/classes/statusnet.ini'; + $config['db']['table_status_network'] = $dbname; + + return true; + } + + static function setupSite($servername, $pathname) + { + global $config; + + $parts = explode('.', $servername); + + $sn = Status_network::staticGet('nickname', $parts[0]); + + if (!empty($sn)) { + $dbhost = (empty($sn->dbhost)) ? 'localhost' : $sn->dbhost; + $dbuser = (empty($sn->dbuser)) ? $sn->nickname : $sn->dbuser; + $dbpass = $sn->dbpass; + $dbname = (empty($sn->dbname)) ? $sn->nickname : $sn->dbname; + + $config['db']['database'] = "mysqli://$dbuser:$dbpass@$dbhost/$dbname"; + $config['site']['name'] = $sn->sitename; + return true; + } else { + return false; + } + } +} diff --git a/classes/laconica.ini b/classes/laconica.ini index 529454d99..dd424bbdd 100755 --- a/classes/laconica.ini +++ b/classes/laconica.ini @@ -168,6 +168,7 @@ modified = 384 reply_to = 1 is_local = 17 source = 2 +conversation = 1 [notice__keys] id = N diff --git a/classes/statusnet.ini b/classes/statusnet.ini new file mode 100755 index 000000000..a70cd4122 --- /dev/null +++ b/classes/statusnet.ini @@ -0,0 +1,17 @@ + +[status_network] +nickname = 130 +hostname = 2 +pathname = 2 +sitename = 2 +dbhost = 2 +dbuser = 2 +dbpass = 2 +dbname = 2 +created = 142 +modified = 384 + +[status_network__keys] +nickname = K +hostname = U +pathname = U |