Implemented only_new option for RSS feed, so you can request RSS feed that contains only new files.

This commit is contained in:
Tero Kivinen 2018-10-26 04:26:42 +03:00 committed by Phy
parent 7a0b5f30c2
commit 68f43bcf6b
No known key found for this signature in database
GPG Key ID: D475AA55A8144239
3 changed files with 10 additions and 0 deletions

View File

@ -133,6 +133,8 @@ function rss_parseOptions() {
'items' => array('int', 'num', $conf['recent']),
// Boolean, only used in rc mode
'show_minor' => array('bool', 'minor', false),
// Boolean, only used in rc mode
'only_new' => array('bool', 'onlynewpages', false),
// String, only used in list mode
'sort' => array('str', 'sort', 'natural'),
// String, only used in search mode
@ -146,6 +148,7 @@ function rss_parseOptions() {
$opt['items'] = max(0, (int) $opt['items']);
$opt['show_minor'] = (bool) $opt['show_minor'];
$opt['only_new'] = (bool) $opt['only_new'];
$opt['sort'] = valid_input_set('sort', array('default' => 'natural', 'date'), $opt);
$opt['guardmail'] = ($conf['mailguard'] != '' && $conf['mailguard'] != 'none');
@ -469,6 +472,7 @@ function rssRecentChanges($opt) {
$flags = 0;
if(!$conf['rss_show_deleted']) $flags += RECENTS_SKIP_DELETED;
if(!$opt['show_minor']) $flags += RECENTS_SKIP_MINORS;
if($opt['only_new']) $flags += RECENTS_ONLY_NEW_PAGES;
if($opt['content_type'] == 'media' && $conf['mediarevisions']) $flags += RECENTS_MEDIA_CHANGES;
if($opt['content_type'] == 'both' && $conf['mediarevisions']) $flags += RECENTS_MEDIA_PAGES_MIXED;

View File

@ -205,6 +205,7 @@ function addMediaLogEntry(
*
* RECENTS_SKIP_DELETED - don't include deleted pages
* RECENTS_SKIP_MINORS - don't include minor changes
* RECENTS_ONLY_NEW_PAGES - only include new created pages
* RECENTS_SKIP_SUBSPACES - don't include subspaces
* RECENTS_MEDIA_CHANGES - return media changes instead of page changes
* RECENTS_MEDIA_PAGES_MIXED - return both media changes and page changes
@ -299,6 +300,7 @@ function getRecents($first,$num,$ns='',$flags=0){
*
* RECENTS_SKIP_DELETED - don't include deleted pages
* RECENTS_SKIP_MINORS - don't include minor changes
* RECENTS_ONLY_NEW_PAGES - only include new created pages
* RECENTS_SKIP_SUBSPACES - don't include subspaces
* RECENTS_MEDIA_CHANGES - return media changes instead of page changes
*
@ -373,6 +375,9 @@ function _handleRecent($line,$ns,$flags,&$seen){
// skip seen ones
if(isset($seen[$recent['id']])) return false;
// skip changes, of only new pages are requested
if($recent['type']!==DOKU_CHANGE_TYPE_CREATE && ($flags & RECENTS_ONLY_NEW_PAGES)) return false;
// skip minors
if($recent['type']===DOKU_CHANGE_TYPE_MINOR_EDIT && ($flags & RECENTS_SKIP_MINORS)) return false;

View File

@ -22,6 +22,7 @@ define('RECENTS_SKIP_MINORS', 4);
define('RECENTS_SKIP_SUBSPACES', 8);
define('RECENTS_MEDIA_CHANGES', 16);
define('RECENTS_MEDIA_PAGES_MIXED', 32);
define('RECENTS_ONLY_NEW_PAGES', 64);
/**
* Wrapper around htmlspecialchars()