jvoisin
0caadf82f2
perf(rss): optimize a bit BuildFeed
...
Calls to urllib.AbsoluteURL take a bit less than 10% of the time spent in
parser.ParseFeed, completely parsing an url only to check if it's absolute, and
if not, to make it so.
Checking if it starts with `https://` or `http://` is usually enough to find if
an url is absolute, and if is doesn't, it's always possible to fall back to
urllib.AbsoluteURL.
This also comes with the advantage of reducing heap allocations, as most of the
time spent in urllib.AbsoluteURL is heap-related (de)allocations.
2025-06-10 19:23:16 -07:00
Frédéric Guillot
8142268799
feat: populate feed description automatically
2025-05-24 21:15:52 -07:00
Frédéric Guillot
e342a4f143
fix: address minor issues detected by Go linters
2025-03-24 20:48:46 -07:00
Frédéric Guillot
7f54b27079
fix(rss): handle item title with CDATA content correctly
...
Fix regression introduced in commit a3ce03cc
2025-02-15 14:51:27 -08:00
Frédéric Guillot
a3ce03cc9d
feat(rss): add workaround for RSS item title with HTML content
2025-02-14 21:21:49 -08:00
Frédéric Guillot
191f3a7ad7
feat(rss): calculate hash based on item title/content for feeds without GUID and link
2024-10-18 18:37:38 -07:00
jvoisin
f109e3207c
reader/rss: don't add empty tags to RSS items
...
This commit adds a bunch of checks to prevent reader/rss from adding empty tags
to rss items, as well as some minor refactors like nested conditions and loops
unrolling.
2024-03-24 19:46:56 -07:00
Frédéric Guillot
ad1d349a0c
rss: use Channel tags only if there is no Item tags
2024-03-23 13:46:48 -07:00
Frédéric Guillot
08640b27d5
Ensure enclosure URLs are always absolute
2024-03-19 21:57:46 -07:00
Frédéric Guillot
fa9697b972
Remove trailing space in SiteURL and FeedURL
2024-03-18 17:51:06 -07:00
Frédéric Guillot
4834e934f2
Remove some duplicated code in RSS parser
2024-03-15 18:40:06 -07:00
Frédéric Guillot
dd4fb660c1
Refactor Atom parser to use an adapter
2024-03-15 17:27:16 -07:00
Frédéric Guillot
5948786b15
Add support for RSS <media:category> element
2024-03-13 21:35:39 -07:00
Frédéric Guillot
648b9a8f6f
Refactor RSS Parser to use an adapter
2024-03-13 21:25:09 -07:00
Frédéric Guillot
6d97f8b458
Parse podcast categories
2024-03-11 22:30:27 -07:00
Frédéric Guillot
f8e50947f2
Move iTunes and GooglePlay XML definitions to their own packages
2024-03-11 22:09:31 -07:00
Frédéric Guillot
9a637ce95e
Refactor RSS parser to use default namespace
...
This change avoid some limitations of the Go XML parser regarding XML namespaces
2024-03-11 21:07:13 -07:00
jvoisin
a074773e6c
Use an io.ReadSeeker instead of an io.Reader to parse feeds
...
This will allow to make use of func (*Reader) Seek, instead of re-recreating a
new reader. It's a large commit for a small change, but anything to simply the
reader/buffer/ReadAll/… mess is a step in the right direction I think, and it
should enable more follow-up simplifications.
2024-03-06 20:13:39 -08:00
Frédéric Guillot
d0f99cee1a
Regression: ensure all HTML documents are encoded in UTF-8
...
Fixes #2196
2023-12-01 16:52:03 -08:00
Frédéric Guillot
e3eaaea15a
Update date parser to parse more invalid date formats
2023-11-01 20:55:35 +01:00
Frédéric Guillot
14e25ab9fe
Refactor HTTP Client and LocalizedError packages
2023-10-22 13:09:30 -07:00
Frédéric Guillot
5e6c054345
Take RSS TTL field into consideration to schedule next check date
2023-10-20 20:11:05 -07:00
Frédéric Guillot
c0e954f19d
Implement structured logging using log/slog package
2023-09-24 22:37:33 -07:00
Frédéric Guillot
48f6885f44
Add generic webhook integration
2023-09-09 13:11:42 -07:00
Frédéric Guillot
36f013670e
Strip HTML tags from DublinCore Creator tags
2023-09-08 17:39:49 -07:00
Frédéric Guillot
e5d9f2f5a0
Rename internal url package to avoid overlap with net/url
2023-08-13 19:57:04 -07:00
Romain de Laage
fb8737e330
feat: use podcast duration tag as reading time
2023-08-12 18:14:29 -07:00
Frédéric Guillot
168a870c02
Move internal packages to an internal folder
...
For reference: https://go.dev/doc/go1.4#internalpackages
2023-08-10 20:29:34 -07:00