summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/aggregate.pm
AgeCommit message (Collapse)Author
2010-09-07needsbuild hook interface changed; the hooks should now return the modified ↵Joey Hess
array of things that need built. (Backwards compatability code keeps plugins using the old interface working.)
2010-07-06revert bugfixJoey Hess
Not needed; lastupdate will be 0 for new feeds.
2010-07-06bugfixJoey Hess
2010-07-06aggregate: Write timestamp next aggregation can happen to ↵Joey Hess
.ikiwiki/aggregatetime, to allow for more sophisticated cron jobs.
2010-02-12setup file orderingJoey Hess
2010-02-12add section informationJoey Hess
2009-06-12aggregate: Avoid resetting ctime when an item md5 changes.Joey Hess
Besides being wrong to do, this could lead to the wrong item being expired, as follows: If B is added and at the same time A is changed, then A's ctime may be set to the current time, while B's is set to its creation time. Thus the new item, A, is incorrectly removed as older. (This interacted especially badly with the bug fixed by 90b4d079605b72bb50d1da41402d994960e10937.)
2009-06-12aggregate: Fix storing of changed md5.Joey Hess
The aggregate state merge code neglected to merge changes to the md5 field of an item. Therefore, if an item's md5 changed after initial aggregation, it would be updated, and rewritten, each time thereafter. This was wasteful and indirectly led to some expire problems.
2009-02-03Work around XML::Atom strangeness that results in double-encoded postsSimon McVittie
See [[bugs/Aggregated_Atom_feeds_are_double-encoded]]. By default, XML::Atom outputs strings of UTF-8 bytes with the Perl UTF8 flag stripped off, which IkiWiki assumes to be Latin-1 and re-encodes as UTF-8 on output. XML::Feed does not currently (0.41-1) set the magic variable to change this behaviour (I've filed a bug on CPAN), but IkiWiki can usefully set the same variable as a workaround.
2008-12-23finalise version 3.00 of the plugin apiJoey Hess
2008-12-23enable aggregate_internal by defaultJoey Hess
2008-12-19avoid uninitialized valueJoey Hess
This can happen when a new field, such as the new lasttry, is added.
2008-12-17aggregate: If a feed fails to be downloaded, try again immediatly next time ↵Joey Hess
aggregation is run, even if the usual time has not passed. Closes: #508622 (Michael Gold)
2008-12-17Coding style change: Remove explcit vim folding markers.Joey Hess
2008-11-18avoid uninitialized value warningJoey Hess
2008-11-18improve escaping of wikilinks and preprocessor directivesJoey Hess
The old method failed for '[' x 3.
2008-11-17call decode_utf8 inside evalJoey Hess
holger reported that decode_utf8 was crashing with perl 5.8.8. Earlier, I thought that passing 0 to the function avoided this with old perls, but that was apparently not enough, it still crashes. So, put it inside the eval, so we can at least recover from it crashing.
2008-11-06aggregate: Try to query XML::Feed for the base url when derelevatising ↵Joey Hess
links. Since this needs the just released XML::Feed 0.3, as well as a not yet released XML::RSS, it will fall back to the old method if no xml:base info is available.
2008-10-19fix relativedate timezone inclusionJoey Hess
The machine parseable date needs to include a timezone. Also, simplified the interface for date display.
2008-10-19mark up date so relativedate will workJoey Hess
2008-10-16aggregate: Avoid bug that caused immediate expiration of items with a date ↵Joey Hess
in the future.
2008-09-29Removed the pagefile function, which was confusingly close in name toJoey Hess
newpagefile. Note that newpagefile is not used here (or in recentchanges) because the internal use pages they generate are transient and unlikely to benefit from being put each in their own subdir.
2008-09-27Export pagetitle, titlepage, linkpage.Joey Hess
2008-09-27typoJoey Hess
2008-09-25aggregate: Avoid uninitialized value warnings for pages with no recorded ctime.Joey Hess
I saw this in the wild, apparently a page was not present on disk, but was in the aggregate db, and not marked as expired either. Not sure how that happened, but such pages should get marked as expired since they have an effectively zero ctime.
2008-09-17fix check for nonexistant contentJoey Hess
2008-09-17store ctime for use by expiry codeJoey Hess
The expiry code does need to make sure to sort in ctime order, even if expiring by count, so it expires the right ones.
2008-09-17aggregate: Support atom feeds with only a summary element, and no content ↵Joey Hess
elements.
2008-09-17aggregate: Allow expirecount to work on the first pass. (expireage still ↵Joey Hess
needs to wait for the pages to be rendered though)
2008-08-03add plugin safe/rebuild info (part 1 of 2)Joey Hess
too many plugins.. brain exploding..
2008-07-26remove default values in getsetupJoey Hess
They were a bit confusing, since they did not actually set the default, and example values are sufficient.
2008-07-26turn booleans into questionsJoey Hess
2008-07-25added getsetup hooks for all plugins up to recentchangesJoey Hess
2008-07-14fixesJoey Hess
2008-07-14use prune to delete rendered filesJoey Hess
This handles deleting empty directories too.
2008-07-15Fix aggregateinternal migration so it skips expired entries, and deletes outputSimon McVittie
2008-07-14Merge commit 'smcv/aggregateinternal' into aggregateinternalJoey Hess
Conflicts: IkiWiki/Plugin/aggregate.pm
2008-07-15Use _aggregated as extension for internalized aggregationSimon McVittie
2008-07-14changes to debug message printingJoey Hess
2008-07-14Add aggregateinternal mode to ikiwiki-transition.Simon McVittie
Usage: 1. Update all pagespecs that use aggregated pages to use internal() 2. ikiwiki-transition aggregateinternal $srcdir $htmlext (where $srcdir and $htmlext are the srcdir and htmlext options in your .setup file) 3. Add aggregateinternal to your .setup file 4. Rebuild the wiki
2008-07-14Merge commit 'origin/master' into aggregateinternalSimon McVittie
2008-07-13switch preprocess hooks to use error functionJoey Hess
2008-07-12Make aggregated items be internal pages if --aggregateinternal is used.Simon McVittie
This addresses <http://ikiwiki.info/todo/aggregate_to_internal_pages/> in a simple way. With this approach, a flag day is required, on which all users of aggregated pages start to inline them using the internal() pagespec; after that, the aggregateinternal option can safely be switched on in the setup file (and the old aggregated pages can be deleted by hand).
2008-06-21`template` option for aggregate.pm.Bernd Zeimetz
Allows to specify the template file which is used to create the html pages.
2008-05-28When calling decode_utf8 on known-problimatic content in aggregate, ↵Joey Hess
explicitly pass 0 (FB_DEFAULT) as the second parameter. Apparently perl 5.8 needs this to avoid crashing on malformed utf-8, despite its docs saying it is the default.
2008-05-05aggregate: Add support for web-based triggering of aggregation for people ↵Joey Hess
stuck on shared hosting without cron. (Sheesh.) Enabled via the `aggregate_webtrigger` configuration optiom.
2008-04-03aggregate: Correct a mistake in the code that dummy up a guid for feeds ↵Joey Hess
lacking one.
2008-03-14load HTML::Entities at topJoey Hess
Used in several subs, not all of which load it on demand, this seems simpler.
2008-03-12no need to use HTML::Entities, as it's loaded on demand by code belowJoey Hess
2008-02-03implement aggregate_locking designJoey Hess
Now aggregation will not lock the wiki. Any changes made during aggregaton are merged in with the changed state accumulated while aggregating. A separate lock file prevents multiple concurrent aggregators. Garbage collection of orphaned guids is much improved. loadstate() is only called once per process, so tricky support for reloading wiki state is not needed. (Tested fairly thuroughly.)