Example #1
0
 function _streamDirect($user_id, $own, $offset, $limit, $since_id, $max_id)
 {
     $fav = new Fave();
     $qry = null;
     if ($own) {
         $qry = 'SELECT fave.* FROM fave ';
         $qry .= 'WHERE fave.user_id = ' . $user_id . ' ';
     } else {
         $qry = 'SELECT fave.* FROM fave ';
         $qry .= 'INNER JOIN notice ON fave.notice_id = notice.id ';
         $qry .= 'WHERE fave.user_id = ' . $user_id . ' ';
         $qry .= 'AND notice.is_local != ' . Notice::GATEWAY . ' ';
     }
     if ($since_id != 0) {
         $qry .= 'AND notice_id > ' . $since_id . ' ';
     }
     if ($max_id != 0) {
         $qry .= 'AND notice_id <= ' . $max_id . ' ';
     }
     // NOTE: we sort by fave time, not by notice time!
     $qry .= 'ORDER BY modified DESC ';
     if (!is_null($offset)) {
         $qry .= "LIMIT {$limit} OFFSET {$offset}";
     }
     $fav->query($qry);
     $ids = array();
     while ($fav->fetch()) {
         $ids[] = $fav->notice_id;
     }
     $fav->free();
     unset($fav);
     return $ids;
 }
Example #2
0
 function clearFaves()
 {
     $fave = new Fave();
     $fave->notice_id = $this->id;
     if ($fave->find()) {
         while ($fave->fetch()) {
             self::blow('fave:ids_by_user_own:%d', $fave->user_id);
             self::blow('fave:ids_by_user_own:%d;last', $fave->user_id);
             self::blow('fave:ids_by_user:%d', $fave->user_id);
             self::blow('fave:ids_by_user:%d;last', $fave->user_id);
             $fave->delete();
         }
     }
     $fave->free();
 }
 public function onProfileDeleteRelated(Profile $profile, array &$related)
 {
     $fave = new Fave();
     $fave->user_id = $profile->id;
     $fave->delete();
     // Will perform a DELETE matching "user_id = {$user->id}"
     $fave->free();
     Fave::blowCacheForProfileId($profile->id);
     return true;
 }
Example #4
0
 function blowFavesCache($blowLast = false)
 {
     $cache = common_memcache();
     if ($cache) {
         $fave = new Fave();
         $fave->notice_id = $this->id;
         if ($fave->find()) {
             while ($fave->fetch()) {
                 $cache->delete(common_cache_key('user:faves:' . $fave->user_id));
                 if ($blowLast) {
                     $cache->delete(common_cache_key('user:faves:' . $fave->user_id . ';last'));
                 }
             }
         }
         $fave->free();
         unset($fave);
     }
 }