pycalendar.git
11 years agoaggregator: Add processors field for post-fetch processing hooks
W. Trevor King [Sun, 30 Jun 2013 15:15:10 +0000 (11:15 -0400)]
aggregator: Add processors field for post-fetch processing hooks

11 years agofeed: Turn Feed into a set of entries
W. Trevor King [Sun, 30 Jun 2013 15:07:39 +0000 (11:07 -0400)]
feed: Turn Feed into a set of entries

11 years agoentry: Add an initial Entry implementation
W. Trevor King [Sun, 30 Jun 2013 15:07:18 +0000 (11:07 -0400)]
entry: Add an initial Entry implementation

11 years agofeed: Only fetch if we haven't already (or if we're forcing a fetch)
W. Trevor King [Sun, 30 Jun 2013 14:35:33 +0000 (10:35 -0400)]
feed: Only fetch if we haven't already (or if we're forcing a fetch)

11 years agoaggregator: Add an initial Aggregator implementation
W. Trevor King [Sun, 30 Jun 2013 14:27:44 +0000 (10:27 -0400)]
aggregator: Add an initial Aggregator implementation

Currently broken pending support for `for entry in feed`.  The version
and product identifier fields are required, as specified in RFC 5545,
sections 3.7.3 (Product Identifier) and 3.7.4 (Version).  They'll also
need to have special characters (e.g. commas) escaped, but I'll get to
that later.

11 years agofeed: Implement feed.fetch()
W. Trevor King [Sun, 30 Jun 2013 14:04:48 +0000 (10:04 -0400)]
feed: Implement feed.fetch()

Add __version__, __url__, and USER_AGENT to the package namespace, so
we have a useful user agent to use when fetching.  The fetch code can
hard-code UTF-8 as the feed charset, because RFC 5545, section 6
(Internationalization Considerations) reads:

  Applications MUST generate iCalendar streams in the UTF-8 charset
  and MUST accept an iCalendar stream in the UTF-8 or US-ASCII
  charset.

From a character conversion standpoint, that means we can always use
UTF-8, because US-ASCII is a subset of UTF-8.

11 years agotest/data/geohash.ics: Pull out geohashing example from Feed doctest
W. Trevor King [Sun, 30 Jun 2013 13:41:21 +0000 (09:41 -0400)]
test/data/geohash.ics: Pull out geohashing example from Feed doctest

This makes it easier to reuse the test data in other locations.

Also escape commas in the data.  From RFC 5545, section 3.3.11. Text:

  The "TEXT" property values may also contain special characters that
  are used to signify delimiters, such as a COMMA character for lists
  of values or a SEMICOLON character for structured values.  In order
  to support the inclusion of these special characters in "TEXT"
  property values, they MUST be escaped with a BACKSLASH character.

11 years agofeed: Stub out the Feed class
W. Trevor King [Sun, 30 Jun 2013 13:25:29 +0000 (09:25 -0400)]
feed: Stub out the Feed class

11 years agoBegin versioning under the GPLv3
W. Trevor King [Sun, 30 Jun 2013 12:54:37 +0000 (08:54 -0400)]
Begin versioning under the GPLv3