コード例 #1
0
ファイル: importopml.php プロジェクト: netcon-source/apps
function importFeed($feedurl, $folderid, $feedtitle)
{
    global $eventSource;
    global $l;
    $feedmapper = new OCA\News\FeedMapper();
    $feedid = $feedmapper->findIdFromUrl($feedurl);
    if ($feedid === null) {
        $feed = OCA\News\Utils::slimFetch($feedurl);
        if ($feed !== null) {
            $feed->setTitle($feedtitle);
            //we want the title of the feed to be the one from the opml file
            $feedid = $feedmapper->save($feed, $folderid);
            $itemmapper = new OCA\News\ItemMapper(OCP\USER::getUser());
            $unreadItemsCount = $itemmapper->countAllStatus($feedid, OCA\News\StatusFlag::UNREAD);
            $tmpl_listfeed = new OCP\Template("news", "part.listfeed");
            $tmpl_listfeed->assign('feed', $feed);
            $tmpl_listfeed->assign('unreadItemsCount', $unreadItemsCount);
            $listfeed = $tmpl_listfeed->fetchPage();
            $eventSource->send('progress', array('data' => array('type' => 'feed', 'folderid' => $folderid, 'listfeed' => $listfeed)));
        }
    } else {
        OCP\Util::writeLog('news', 'ajax/importopml.php: This feed is already here: ' . $feedurl, OCP\Util::WARN);
        return true;
    }
    if ($feed === null || !$feedid) {
        OCP\Util::writeLog('news', 'ajax/importopml.php: Error adding feed: ' . $feedurl, OCP\Util::ERROR);
        return false;
    }
    return true;
}
コード例 #2
0
ファイル: updatefeed.php プロジェクト: netcon-source/apps
*
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING-README file
*
*/
// Check if we are a user
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('news');
OCP\JSON::callCheck();
session_write_close();
$userid = OCP\USER::getUser();
$feedid = $_POST['feedid'];
$feedurl = $_POST['feedurl'];
$folderid = $_POST['folderid'];
$newfeed = OCA\News\Utils::fetch($feedurl);
$newfeedid = false;
if ($newfeed !== null) {
    $feedmapper = new OCA\News\FeedMapper();
    $newfeedid = $feedmapper->save($newfeed, $folderid);
}
$l = OC_L10N::get('news');
if (!$newfeedid) {
    OCP\JSON::error(array('data' => array('message' => $l->t('Error updating feed.'))));
    OCP\Util::writeLog('news', 'ajax/updatefeed.php: Error updating feed: ' . $_POST['feedid'], OCP\Util::ERROR);
    exit;
} else {
    $itemmapper = new OCA\News\ItemMapper($userid);
    $unreadcounter = $itemmapper->countAllStatus($newfeedid, OCA\News\StatusFlag::UNREAD);
    OCP\JSON::success(array('data' => array('message' => $l->t('Feed updated!'), 'unreadcount' => $unreadcounter)));
    exit;
}
コード例 #3
0
ファイル: createfeed.php プロジェクト: blablubli/owncloudapps
OCP\JSON::checkAppEnabled('news');
OCP\JSON::callCheck();
session_write_close();
$userid = OCP\USER::getUser();
$feedurl = trim($_POST['feedurl']);
$folderid = trim($_POST['folderid']);
$feedmapper = new OCA\News\FeedMapper($userid);
$feedid = $feedmapper->findIdFromUrl($feedurl);
$l = OC_L10N::get('news');
if ($feedid === null) {
    $feed = OCA\News\Utils::fetch($feedurl);
    if ($feed !== null) {
        $feedid = $feedmapper->save($feed, $folderid);
    }
} else {
    OCP\JSON::error(array('data' => array('message' => $l->t('Feed already exists.'))));
    OCP\Util::writeLog('news', 'ajax/createfeed.php: Error adding feed: ' . $_POST['feedurl'], OCP\Util::ERROR);
    exit;
}
if ($feed === null || !$feedid) {
    OCP\JSON::error(array('data' => array('message' => $l->t('Error adding feed.'))));
    OCP\Util::writeLog('news', 'ajax/createfeed.php: Error adding feed: ' . $_POST['feedurl'], OCP\Util::ERROR);
    exit;
}
$itemmapper = new OCA\News\ItemMapper($userid);
$unreadItemsCount = $itemmapper->countAllStatus($feedid, OCA\News\StatusFlag::UNREAD);
$tmpl_listfeed = new OCP\Template("news", "part.listfeed");
$tmpl_listfeed->assign('feed', $feed);
$tmpl_listfeed->assign('unreadItemsCount', $unreadItemsCount);
$listfeed = $tmpl_listfeed->fetchPage();
OCP\JSON::success(array('data' => array('message' => $l->t('Feed added!'), 'feedid' => $feedid, 'listfeed' => $listfeed)));
コード例 #4
0
ファイル: loadfeed.php プロジェクト: blablubli/owncloudapps
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('news');
OCP\JSON::callCheck();
session_write_close();
$userid = OCP\USER::getUser();
$feedId = $_POST['id'];
$feedType = $_POST['type'];
OCP\Config::setUserValue(OCP\USER::getUser(), 'news', 'lastViewedFeed', $feedId);
OCP\Config::setUserValue(OCP\USER::getUser(), 'news', 'lastViewedFeedType', $feedType);
$l = OC_L10N::get('news');
$itemsTpl = new OCP\Template("news", "part.items");
$itemsTpl->assign('feedid', $feedId);
$feedItems = $itemsTpl->fetchPage();
$itemMapper = new OCA\News\ItemMapper();
switch ($feedId) {
    case -1:
        $feedTitle = $l->t('Starred');
        $unreadItemCount = $itemMapper->countAllStatus($feedId, OCA\News\StatusFlag::IMPORTANT);
        break;
    case -2:
        $feedTitle = $l->t('New articles');
        $unreadItemCount = $itemMapper->countEveryItemByStatus(OCA\News\StatusFlag::UNREAD);
        break;
    default:
        $feedMapper = new OCA\News\FeedMapper();
        $feed = $feedMapper->findById($feedId);
        $feedTitle = $feed->getTitle();
        $unreadItemCount = $itemMapper->countAllStatus($feedId, OCA\News\StatusFlag::UNREAD);
        break;
}
OCP\JSON::success(array('data' => array('message' => $l->t('Feed loaded!'), 'feedTitle' => $feedTitle, 'feedItems' => $feedItems, 'unreadItemCount' => $unreadItemCount)));