Commit Graph

43 Commits

Author SHA1 Message Date
ByteHamster 7b390f1c92
Speed up feed parsing (#7023)
AntennaPod is quite slow with huge feeds. The reason is that we have a bunch of workarounds for misbehaving feeds that also make it slower to work with feeds that do not misbehave.

Changes:

- Only start guessing duplicate episodes when no "proper" match is found
- Only parse non-html as HTML for attributes that really need it
- Do not log failed Long parsing when size is not specified
- Try to parse dates with RFC822 first before falling back to workarounds for other formats

I ran a benchmark with "Stuff you should know" (for which the workarounds are not needed) containing 2k episodes. Includes download of 8MB of feed XML (~5 seconds), debug build.
Before: 44 seconds, after: 13 seconds ==> 3.4 times faster feed refresh
2024-03-24 18:04:39 +01:00
ByteHamster 084b9c2317
Store last refresh attempt for feeds (#7022) 2024-03-24 17:57:00 +01:00
ByteHamster f6b45e7162
Rename FeedMedia methods to no longer have underscores (#7017) 2024-03-23 11:27:55 +01:00
ByteHamster cae848b505 Fix indentation in last 8 files 2024-03-04 23:09:59 +01:00
Taco e9d190da1b
Bump AGP and Gradle (#6489) 2023-10-17 20:52:21 +02:00
ByteHamster da200f6139
Fix crash if vorbis exception does not have message (#6678) 2023-10-02 21:12:45 +02:00
peking_ling 8b7d3cabac
Fix NullPointerException when chapter does not have start time (#6520) 2023-06-20 22:31:44 +02:00
ByteHamster e261514c5b
Update feed url when server returns itunes:new-feed-url (#6291) 2023-01-29 12:12:08 +01:00
ByteHamster d61745be86 Check Lint recursively from the :app module
instead of checking every module individually. This avoids having to
re-state all disabled Lint checks in all parent modules.
2022-11-06 11:55:23 +01:00
ByteHamster b9ded7ea3b Don't print full stack trace when there is no vorbis comment 2022-10-27 22:02:08 +02:00
ByteHamster 9624d8ce9e Speed up chapter parsing 2022-10-21 21:46:18 +02:00
Taco 89cfeb93db
Update jsoup library (#5902) 2022-05-26 09:59:10 +02:00
ByteHamster 197a0a1044
Merge pull request #5777 from ByteHamster/ignore-item-author
Ignore itunes:author when not child of channel
2022-03-13 11:21:48 +01:00
ByteHamster d31b0daee0 Ignore itunes:author when not child of channel
Co-authored-by: dllmr <dllmr@users.noreply.github.com>
2022-03-13 11:00:35 +01:00
ByteHamster 933fde839e Read vorbis description of local files 2022-03-11 20:57:24 +01:00
ByteHamster 36a36e4f85
Merge pull request #5769 from ByteHamster/id3-comment
Extract shownotes from id3 comment field
2022-03-10 07:14:48 +01:00
ByteHamster ce8e356647 Extract shownotes from id3 comment field 2022-03-09 22:08:32 +01:00
Tony Tam 1a1bf02e8a
Support for podcast 2.0 chapters (#5630) 2022-03-06 16:09:09 +01:00
ByteHamster ff3258c34a Move database to its own module 2022-02-27 19:47:41 +01:00
ByteHamster 48852e081a Delete a few unused things 2022-02-22 20:14:00 +01:00
ByteHamster acb384b128 Merge branch 'master' into develop 2022-02-19 13:46:12 +01:00
TacoTheDank 87067af965 Fix some gradle deprecations 2022-02-09 11:28:40 -05:00
ByteHamster 6196cd754f Fix line breaks in plain-text descriptions
Workaround was added for publishers misbehaving but the current
implementation breaks valid feeds
2022-01-30 14:47:14 +01:00
ByteHamster cda22a8c5f Manually detect m4b on devices that don't do it 2022-01-29 20:16:46 +01:00
ByteHamster f8927ebc67 Do not hang trying to parse ogg/vorbis chapters 2022-01-27 08:30:00 +01:00
ByteHamster d4d506345b Move mime type guessing out of MediaType enum 2022-01-25 22:08:05 +01:00
ByteHamster c376be44dd When mime type is octet-stream, guess from the file name 2022-01-25 21:55:38 +01:00
ByteHamster 1837ce30d1 MIME type is always ISO encoded 2022-01-22 23:09:32 +01:00
ByteHamster 3b9dfb3c76 Fix vorbis chapter parsing 2022-01-22 17:16:37 +01:00
ByteHamster 49b6386a6d Run parser tests with robolectric 2022-01-22 17:16:37 +01:00
TacoTheDank 560bf3f434 Centralize library versions used in multiple modules 2021-12-04 13:01:22 -05:00
ByteHamster 473ba14f88
Merge pull request #5565 from ByteHamster/simplify-opus
Simplify opus parsing
2021-11-21 21:03:12 +01:00
ByteHamster e2600f54e4 Stop parsing if we encounter an unrealistically long comment 2021-11-21 18:49:50 +01:00
ByteHamster d94bfd80b7 Simplify opus parsing 2021-11-21 18:04:37 +01:00
ByteHamster dd2dd9e4b8 Work around some publishers putting html everywhere 2021-11-16 21:23:52 +01:00
ByteHamster a651317bc2 Apparently some devices crash when trying to call xpp.next 2021-11-06 17:37:04 +01:00
ByteHamster bb9936f696 Ignore item tags that are not inside a channel 2021-10-30 21:58:17 +02:00
ByteHamster 222f305d66
Merge pull request #5368 from TacoTheDank/librarybump
Update AppCompat to 1.3.x
2021-09-06 18:45:54 +02:00
ByteHamster b36cdb0c4e
Improvements related to duplicate detection (#5387)
* Move duplicate detection to one single place
* Canonicalize some common characters that are often confused
* Assume same episode even when date is off by 1 week
* Display duplicate detection as warning, not error
2021-09-06 17:59:17 +02:00
TacoTheDank 2b58d2efc0 Fix media parser test resources mistakenly put in the wrong directory 2021-08-29 01:39:48 -04:00
TacoTheDank fe1d69f1be Update AppCompat to 1.3.x 2021-08-28 20:33:44 -04:00
ByteHamster ca64739f36 Moved media file parser to its own module 2021-08-28 10:59:26 +02:00
ByteHamster 24389d42e8 Moved feed parser to its own module 2021-08-28 09:57:41 +02:00