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; }
function search($query) { if (!OCP\App::isEnabled('news')) { return array(); } $feedMapper = new OCA\News\FeedMapper(OCP\USER::getUser()); $results = array(); if ($feedMapper->feedCount() > 0) { $allFeeds = $feedMapper->findAll(); $l = new OC_l10n('news'); foreach ($allFeeds as $feed) { if (substr_count(strtolower($feed['title']), strtolower($query)) > 0) { $link = OCP\Util::linkTo('news', 'index.php') . '?feedid=' . urlencode($feed['id']); $results[] = new OC_Search_Result($feed['title'], '', $link, (string) $l->t('News')); } } } return $results; }
function importFeed($feedurl, $folderid) { $feedmapper = new OCA\News\FeedMapper(); $feedid = $feedmapper->findIdFromUrl($feedurl); $l = OC_L10N::get('news'); if ($feedid === null) { $feed = OCA\News\Utils::slimFetch($feedurl); if ($feed !== null) { $feedid = $feedmapper->save($feed, $folderid); } } else { OCP\Util::writeLog('news', 'ajax/importopml.php: Error adding feed: ' . $feedurl, OCP\Util::ERROR); return false; } if ($feed === null || !$feedid) { OCP\Util::writeLog('news', 'ajax/importopml.php: Error adding feed: ' . $feedurl, OCP\Util::ERROR); return false; } return true; }
* * 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; }
<?php /** * ownCloud - News app * * @author Alessandro Cosentino * Copyright (c) 2012 - Alessandro Cosentino <*****@*****.**> * * 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(); $feedmapper = new OCA\News\FeedMapper($userid); $feeds = $feedmapper->findAll(); $l = OC_L10N::get('news'); if ($feeds == null) { //TODO: handle error better here OCP\JSON::error(array('data' => array('message' => $l->t('Error updating feeds.')))); OCP\Util::writeLog('news', 'ajax/feedlist.php: Error updating feeds', OCP\Util::ERROR); exit; } OCP\JSON::success(array('data' => $feeds));
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>News - ownCloud</title> </head> <body> <div class="message"> <?php // Check if we are a user OCP\User::checkLoggedIn(); OCP\App::checkAppEnabled('news'); $userid = OCP\USER::getUser(); $feedurl = isset($_GET['url']) ? $_GET['url'] : null; $feedmapper = new OCA\News\FeedMapper($userid); $feedid = $feedmapper->findIdFromUrl($feedurl); $l = OC_L10N::get('news'); if ($feedid === null) { $feed = OCA\News\Utils::slimFetch($feedurl); if ($feed !== null) { $feedid = $feedmapper->save($feed, 0); //adds in the root folder } if ($feed === null || !$feedid) { echo $l->t('An error occurred'); } else { echo $l->t('Nice! You have subscribed to ') . $feed->getTitle(); } } else { echo $l->t('You had already subcribed to this feed!'); }
if (strpos($error['message'], 'get_uri')) { //handle a fatal error caused by a SimplePie bug (https://github.com/simplepie/simplepie/issues/214) OCP\Util::writeLog('news', 'ajax/createfeed.php: Fatal error:' . $error['message'], OCP\Util::ERROR); exit; } } } // Check if we are a user OCP\JSON::checkLoggedIn(); 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);
OCP\Util::addScript('news', 'jquery.timeago'); OCP\Util::addStyle('news', 'news'); OCP\Util::addStyle('news', 'settings'); $l = OC_L10N::get('news'); $userid = OCP\USER::getUser(); $foldermapper = new OCA\News\FolderMapper($userid); $allfeeds = $foldermapper->childrenOfWithFeeds(0); //$foldermapper->populate($folder); $folderforest = $foldermapper->childrenOf(0); //retrieve all the folders $feedid = 0; $feedtype = 0; if ($allfeeds) { $feedid = isset($_GET['feedid']) ? $_GET['feedid'] : null; if ($feedid == null) { $feedmapper = new OCA\News\FeedMapper(OCP\USER::getUser($userid)); $lastViewedId = OCP\Config::getUserValue($userid, 'news', 'lastViewedFeed'); $lastViewedType = OCP\Config::getUserValue($userid, 'news', 'lastViewedFeedType'); if ($lastViewedId == null || $lastViewedType == null) { $feedid = $feedmapper->mostRecent(); } else { $feedid = $lastViewedId; $feedtype = $lastViewedType; // check if feed exists in table if ($feedmapper->findById($feedid) === null) { $feedid = $feedmapper->mostRecent(); } } } } $tmpl = new OCP\Template('news', 'main', 'user');
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)));
* * @author Bernhard Posselt * Copyright (c) 2012 - Bernhard Posselt <*****@*****.**> * * 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(); $folderId = (int) $_POST['folderId']; $feedId = $_POST['feedId']; $feedMapper = new OCA\News\FeedMapper(); $feed = $feedMapper->findById($feedId); if ($folderId === 0) { $success = $feedMapper->save($feed, $folderId); } else { $folderMapper = new OCA\News\FolderMapper(); $folder = $folderMapper->find($folderId); $success = $feedMapper->save($feed, $folder->getId()); } $l = OC_L10N::get('news'); if (!$success) { OCP\JSON::error(array('data' => array('message' => $l->t('Error moving feed into folder.')))); OCP\Util::writeLog('news', 'ajax/setallitemsread.php: Error moving feed ' . $feedId . ' into folder ' . $folderId, OCP\Util::ERROR); exit; } OCP\JSON::success();
<?php /** * ownCloud - News app * * @author Alessandro Cosentino * Copyright (c) 2012 - Alessandro Cosentino <*****@*****.**> * * 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']; $feedmapper = new OCA\News\FeedMapper($userid); $success = $feedmapper->deleteById($feedid); $l = OC_L10N::get('news'); if (!$success) { OCP\JSON::error(array('data' => array('message' => $l->t('Error removing feed.')))); OCP\Util::writeLog('news', 'ajax/deletefeed.php: Error removing feed: ' . $_POST['feedid'], OCP\Util::ERROR); exit; } $tmpl = new OCP\Template("news", "part.items.deleted"); $part_items = $tmpl->fetchPage(); OCP\JSON::success(array('data' => array('feedid' => $feedid, 'part_items' => $part_items)));