Merge branch 'master' into 0.9.x

This commit is contained in:
Evan Prodromou 2010-09-01 14:21:36 -04:00
commit 468a15db00
3 changed files with 69 additions and 12 deletions

View File

@ -308,15 +308,7 @@ class Status_network extends Safe_DataObject
*/
function getTags()
{
$result = array();
$tags = new Status_network_tag();
$tags->site_id = $this->site_id;
if ($tags->find()) {
while ($tags->fetch()) {
$result[] = $tags->tag;
}
}
$result = Status_network_tag::getTags($this->site_id);
// XXX : for backwards compatibility
if (empty($result)) {
@ -329,6 +321,7 @@ class Status_network extends Safe_DataObject
/**
* Save a given set of tags
* @param array tags
* @fixme only add/remove differentials
*/
function setTags($tags)
{

View File

@ -61,9 +61,73 @@ class Status_network_tag extends Safe_DataObject
###END_AUTOCODE
function pkeyGet($kv)
{
return Memcached_DataObject::pkeyGet('Status_network_tag', $kv);
}
/**
* Fetch the (possibly cached) tag entries for the given site id.
* Uses status_network's cache settings.
*
* @param string $site_id
* @return array of strings
*/
static function getTags($site_id)
{
$key = 'status_network_tags:' . $site_id;
if (Status_network::$cache) {
$packed = Status_network::$cache->get($key);
if (is_string($packed)) {
if ($packed == '') {
return array();
} else {
return explode('|', $packed);
}
}
}
$result = array();
$tags = new Status_network_tag();
$tags->site_id = $site_id;
if ($tags->find()) {
while ($tags->fetch()) {
$result[] = $tags->tag;
}
}
if (Status_network::$cache) {
$packed = implode('|', $result);
Status_network::$cache->set($key, $packed, 3600);
}
return $result;
}
/**
* Drop the cached tag entries for this site.
* Needed after inserting/deleting a tag entry.
*/
function decache()
{
$key = 'status_network_tags:' . $this->site_id;
if (Status_network::$cache) {
Status_network::$cache->delete($key);
}
}
function insert()
{
$ret = parent::insert();
$this->decache();
return $ret;
}
function delete()
{
$ret = parent::delete();
$this->decache();
return $ret;
}
}

View File

@ -44,14 +44,14 @@ try {
if (empty($user)) {
throw new Exception("Can't find user with id '$id'.");
}
updateProfileURL($user);
updateOStatus($user);
} else if (have_option('n', 'nickname')) {
$nickname = get_option_value('n', 'nickname');
$user = User::staticGet('nickname', $nickname);
if (empty($user)) {
throw new Exception("Can't find user with nickname '$nickname'");
}
updateProfileURL($user);
updateOStatus($user);
} else if (have_option('a', 'all')) {
$user = new User();
if ($user->find()) {