Commit Briefs
Rename some templates (main)
Make the channel template re-usable Add handler for channel page List episode titles
Wrap channel results so we can add extra data
Link to channel
Rename "Feeds" to Channels as that's what they are
Make button link styles reuseable Add button that will link to the channel
rss: handle more timestamp variants
I parsed every feed listed in opml/otl.opml and found a bunch of variants of RFC 822 and RFC 1123 timestamps used.
Merge pull request #8 from ollytom/main
rss: handle valid empty fields
rss: handle valid empty fields
Ran into a problem when trying to parse the feed at https://hnrss.org/frontpage. That feed's channel has no pubdate element set; UnmarshalXML errors on timestamp parsing with as it gets an empty string. Reading the spec I found very few fields are actually required. Funnily enough testdata/empty.xml is a valid RSS feed - I even verified using the official RSS validator at https://www.rssboard.org/rss-validator !
Display most appropriate channel data
Improve channel styling
Merge pull request #7 from ollytom/js
service: support queries without javascript
Merge pull request #6 from ollytom/time
rss: store pubdate etc. as native time.Time
service: support queries without javascript
I was curious how it all worked if I disabled javascript entirely. Pretty cool how it all "just worked" once I set the usual `action` attr in the form element. While here fix little nit about using a boolean type for a boolean condition
rss: store pubdate etc. as native time.Time
This uses a technique I've used a few times to work with loosely typed data in XML and JSON. The original idea is from [icholy]. It's a little tricky, but it's easy to test. [icholy]: https://choly.ca/post/go-json-marshalling/
Improve parsing of additional rss channel meta data
Initial rendering of channel results Move handlers into their own file
Create DB package for reading/writing data
Implement URL detection for search and lookup RSS feed
Merge pull request #4 from ollytom/main
rss: use built-in RFC 1123 time format
rss: use built-in RFC 1123 time format
Numeric timezone variant. Timestamps :(
Merge pull request #3 from ollytom/main
add opml package
add opml package
Feed readers use OPML to exchange lists of feeds, which is what any applications developed here may do at some point, too. This package only does decoding for now; I dumped my own feeds out of my own feed reader app as a quick test to see how tricky this would be!
Merge pull request #2 from ollytom/main
atom: implement feed decoding
atom: implement feed decoding
Terrible test but hopefully enough for a sanity check in these (very!) early stages!
Merge pull request #1 from ollytom/main
import atom package
import atom package
Atom is easier feed format to parse as it's stricter than RSS 2.0. Both are common in the wild but I thought Atom would be a good start. And of course this a better place for the package rather than my random Go package repo.