Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
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;
}
Ejemplo n.º 4
0
*
* 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;
}
Ejemplo n.º 5
0
<?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));
Ejemplo n.º 6
0
<!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!');
}
Ejemplo n.º 7
0
        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);
Ejemplo n.º 8
0
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');
Ejemplo n.º 9
0
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)));
Ejemplo n.º 10
0
*
* @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();
Ejemplo n.º 11
0
<?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)));