Commits
- Commit:
964b49d98af7652f37f0eb6fe170fdca5d444b35
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Via:
- Oliver Lowe <o@olowe.co>
- Date:
Rename some templates
Make the channel template re-usable
Add handler for channel page
List episode titles
- Commit:
5dfdd66b09fe47403bcc7678f431f06feba5cbb1
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Via:
- Oliver Lowe <o@olowe.co>
- Date:
Add initial channel handler
- Commit:
e396d327ce7472ac9a79ab7df26755d6e50ef0c7
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Via:
- Oliver Lowe <o@olowe.co>
- Date:
Wrap channel results so we can add extra data
Link to channel
- Commit:
f018f5a676cd8a415a426d8302bc1950a9dd20b4
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Via:
- Oliver Lowe <o@olowe.co>
- Date:
Rename "Feeds" to Channels as that's what they are
Make button link styles reuseable
Add button that will link to the channel
- Commit:
425992826e66e30d6e3cd737f117fc9f1703f820
- From:
- Oliver Lowe <o@olowe.co>
- Date:
readme: add pkg.go.dev link
- Commit:
1045eb74978b0936743a76a3b690ccdd6e85450e
- From:
- Oliver Lowe <o@olowe.co>
- Date:
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.
- Commit:
5f9e6325936e158cd3c8afcbd5005b278dc9a855
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #8 from ollytom/main
rss: handle valid empty fields
- Commit:
f3e9104510af53a78a30c8260e06559a88ddcdc3
- From:
- Oliver Lowe <o@olowe.co>
- Date:
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 !
- Commit:
c4a56c0a8e7accfd981a9b7b19515d5f3302c278
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Date:
Display most appropriate channel data
Improve channel styling
- Commit:
93ff9d7f210e985d4d61bdb8dda1ea69c2b2cb43
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #7 from ollytom/js
service: support queries without javascript
- Commit:
d33056098fdd12e73cad42fb5cbdf5476ac5c023
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #6 from ollytom/time
rss: store pubdate etc. as native time.Time
- Commit:
59dafdf0addd0f5bfb93098447743706dff813b4
- From:
- Oliver Lowe <o@olowe.co>
- Date:
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
- Commit:
79a20b3c5fd63bf1883cb8afd98ba8696b1aa406
- From:
- Oliver Lowe <o@olowe.co>
- Date:
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/
- Commit:
874b706b1cb8542a2aa62bd35d6da2ba7bc16f78
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Date:
Improve parsing of additional rss channel meta data
Initial rendering of channel results
Move handlers into their own file
- Commit:
ed95fc8404c32829d0715ad12d6150cb663c049c
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Date:
Create DB package for reading/writing data
Implement URL detection for search and lookup RSS feed
- Commit:
38dff9091688843ea4d52933f27306435c054355
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #4 from ollytom/main
rss: use built-in RFC 1123 time format
- Commit:
37ef97ad5e578f2ca9370bc38b90ee0c8289b8e1
- From:
- Oliver Lowe <o@olowe.co>
- Date:
rss: use built-in RFC 1123 time format
Numeric timezone variant. Timestamps :(
- Commit:
722a6f393041fe09c87f797a39d8ff00d157fe3d
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Date:
Move handlers to their own service
- Commit:
5a25e6098daa4525fb5946d5330478354e706d73
- From:
- Matt Streatfield <matt.r.streatfield@gmail.com>
- Date:
Add RSS decoder
- Commit:
9e0ba934362a7537b7f206c419f40c138508d96b
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #3 from ollytom/main
add opml package
- Commit:
8dfb72dda0321813659e4a002f69ac988a0143fd
- From:
- Oliver Lowe <o@olowe.co>
- Date:
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!
- Commit:
ccfca0aabb4388eed90e53cb4bad4798a81e6458
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #2 from ollytom/main
atom: implement feed decoding
- Commit:
848b29c4c69a1837ec426676170747fd0d830885
- From:
- Oliver Lowe <o@olowe.co>
- Date:
atom: implement feed decoding
Terrible test but hopefully enough for a sanity check in these
(very!) early stages!
- Commit:
33d9e23c99af8e8c059dd587cf9ee8d61734d300
- From:
- Matthew Streatfield <StreatCodes@users.noreply.github.com>
- Via:
- GitHub <noreply@github.com>
- Date:
Merge pull request #1 from ollytom/main
import atom package
- Commit:
a9f96a604b510116b1178805feac471ee101a3d8
- From:
- Oliver Lowe <o@olowe.co>
- Date:
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.