Qvitter/classes/publicandexternalnoticestream.php

88 lines
4.0 KiB
PHP
Raw Normal View History

2013-08-19 22:30:57 +09:00
<?php
/* · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
2013-08-19 22:30:57 +09:00
· ·
· ·
· Q V I T T E R ·
· ·
· http://github.com/hannesmannerheim/qvitter ·
· ·
· ·
· <o) ·
· /_//// ·
· (____/ ·
· (o< ·
· o> \\\\_\ ·
· \\) \____) ·
· ·
· ·
· ·
· Qvitter 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 three of the License or (at ·
· your option) any later version. ·
· ·
· Qvitter is distributed in hope that it will be useful but WITHOUT ANY ·
· WARRANTY; without even the implied warranty of MERCHANTABILTY 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 Qvitter. If not, see <http://www.gnu.org/licenses/>. ·
· ·
· Contact h@nnesmannerhe.im if you have any questions. ·
· ·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · */
if (!defined('STATUSNET')) {
exit(1);
}
2013-08-19 22:30:57 +09:00
class PublicAndExternalNoticeStream extends ScopingNoticeStream
{
function __construct($profile=null)
{
parent::__construct(new CachingNoticeStream(new RawPublicAndExternalNoticeStream(),
'publicAndExternal'),
$profile);
}
}
2013-08-19 22:30:57 +09:00
class RawPublicAndExternalNoticeStream extends NoticeStream
{
function getNoticeIds($offset, $limit, $since_id, $max_id)
{
2013-08-19 22:30:57 +09:00
$notice = new Notice();
2013-08-19 22:30:57 +09:00
$notice->selectAdd();
$notice->selectAdd('id');
2013-08-26 05:34:09 +09:00
$notice->orderBy('created DESC, id DESC');
2013-08-26 05:34:09 +09:00
if (!is_null($offset)) {
$notice->limit($offset, $limit);
}
2013-08-19 22:30:57 +09:00
$notice->whereAdd('is_local !='. Notice::LOCAL_NONPUBLIC);
$notice->whereAdd('is_local !='. Notice::GATEWAY);
2013-08-19 22:30:57 +09:00
Notice::addWhereSinceId($notice, $since_id);
Notice::addWhereMaxId($notice, $max_id);
2013-08-19 22:30:57 +09:00
$ids = array();
2013-08-19 22:30:57 +09:00
if ($notice->find()) {
while ($notice->fetch()) {
$ids[] = $notice->id;
}
}
$notice->free();
$notice = NULL;
return $ids;
}
}