function onEndDisfavorNotice($profile, $notice) { $tally = Fave_tally::decrement($notice->id); }
/** * Ensure a tally exists for a given notice. If we can't find * one create one with the total number of existing faves * * @param integer $noticeID * * @return Fave_tally the tally data object */ static function ensureTally($noticeID) { $tally = Fave_tally::getKV('notice_id', $noticeID); if (!$tally) { $tally = new Fave_tally(); $tally->notice_id = $noticeID; $tally->count = Fave_tally::countExistingFaves($noticeID); $result = $tally->insert(); if (!$result) { $msg = sprintf(_m("Could not create favorite tally for notice ID %d."), $noticeID); throw new ServerException($msg); } } return $tally; }
<?php /* * StatusNet - the distributed open-source microblogging tool * Copyright (C) 2010, StatusNet, 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/>. */ define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..')); $helptext = <<<ENDOFHELP USAGE: initialize_fave_tallys.php Offline script to initialize notice fave tallys ENDOFHELP; require_once INSTALLDIR . '/scripts/commandline.inc'; $notice = new Notice(); $notice->find(); while ($notice->fetch()) { Fave_tally::ensureTally($notice->id); }