Dispatcharr/apps/epg
SergeantPanda d4ecf45bc2 Bug Fix/Enhancement:
- EPG refresh tasks (`refresh_epg_data`) were being killed mid-transaction on large EPG sources. The `soft_time_limit=1700s` introduced in v0.21.0 raised `SoftTimeLimitExceeded`, a subclass of `Exception`, which was swallowed by the existing `except Exception` handler in `parse_programs_for_source`, leaving the database in a partial state with no logged error. The underlying cause is that the HTML entity preprocessing step added in v0.21.0 adds 2–10+ minutes on multi-gigabyte EPG files, pushing total task duration past the 1700s limit for large sources. `soft_time_limit` has been removed from `refresh_epg_data` and `time_limit` raised to 14400s (4 hours) as a true last-resort ceiling; the existing `TaskLockRenewer` daemon thread continues to renew the Redis lock every 120s for legitimately long-running tasks.
- HTML entity preprocessing (`_resolve_html_entities`) now performs a fast binary pre-scan before any file read or write. The pre-scan reads the file in 4 MB chunks without text decoding and exits immediately on the first non-XML named entity found. For EPG sources that contain no HTML entities — the common case — the full line-by-line read+rewrite pass (which takes 2–10+ minutes on a 2.5 GB file) is skipped entirely.
2026-03-29 19:51:57 -05:00
..
migrations Enhancement: Add a priority field to EPGSource and prefer higher-priority sources when matching channels. Also ignore EPG sources where is_active is false during matching, and update serializers/forms/frontend accordingly.(Closes #603, #672) 2025-12-05 09:54:11 -06:00
tests fix: resolve HTML named entities in XMLTV files before parsing 2026-03-15 00:59:58 -05:00
__init__.py Initial commit 2025-02-18 11:14:09 -06:00
admin.py modified database fields for consistency, removed custom_url from streams (no longer needed) 2025-03-16 09:07:10 -04:00
api_urls.py Enhancement: - Stats page enhancements: Added "Now Playing" program information for active streams with smart polling that only fetches EPG data when programs are about to change (not on every stats refresh). Features include: 2026-01-20 13:37:40 -06:00
api_views.py perf(epg): speed up TV guide grid load 2k channels from 18s to ~8s 2026-03-13 12:16:10 -05:00
apps.py EPG auto import 2025-03-19 13:12:48 -05:00
models.py Enhancement: Add a priority field to EPGSource and prefer higher-priority sources when matching channels. Also ignore EPG sources where is_active is false during matching, and update serializers/forms/frontend accordingly.(Closes #603, #672) 2025-12-05 09:54:11 -06:00
serializers.py perf(epg): speed up TV guide grid load 2k channels from 18s to ~8s 2026-03-13 12:16:10 -05:00
signals.py Bug Fix: Cron schedule got overwrote when changing/loading settings (signals issue) 2026-02-24 10:48:17 -06:00
tasks.py Bug Fix/Enhancement: 2026-03-29 19:51:57 -05:00
urls.py Pre-Alpha v4 2025-02-24 15:04:03 -06:00
utils.py feat(guide): redesign guide with detail modal, progress bars, and season/episode display 2026-03-10 10:53:19 -05:00
views.py Pre-Alpha v4 2025-02-24 15:04:03 -06:00