Stores the failed-channel snapshot as a workflow artifact (90-day
retention) and downloads the previous run's artifact for comparison,
instead of committing a state file back to the repo.
Weekly trend workflow: runs the full iptv-checker weekly, keeps a
snapshot of failed URLs in .github/checker-history/failed.txt, and
reports newly-broken vs newly-recovered channels since the last run
in the job summary.
PR check workflow: on any PR touching lists/*.md, extracts only the
added/changed stream links from the diff and checks just those (not
the whole 2000+ channel playlist), reporting online/failed results
directly in the PR's Checks summary.
The config's files list still referenced the README's placeholder
filenames (playlist1.m3u, playlist2.m3u), which don't exist in this
repo, so the linter was silently checking nothing. Point it at the
real playlist.m3u8, drop the noisy full-file cat dump, and surface
its output in the job summary like the iptv-checker step.
Add a job summary listing the failed channels and upload the full
online.m3u/failed.m3u results as a build artifact, instead of running
the checker and discarding its output.
* Improve make_playlist.py code quality and fix bugs
- Fix group name bug: replace underscores with spaces before title()
so filenames like north_korea.md produce "North Korea" not "North_Korea"
- Fix resource leaks: use context managers for all file handles including
EPG list and per-country playlist files
- Remove os.chdir() global side effect: use absolute paths derived from
the script location instead
- Avoid calling to_m3u_line() twice per channel by caching the result
- Fix redundant trailing colon in filename[:-3:] slice
- Consistent use of write() for headers instead of mixing print/write
- Strip blank lines from EPG URL list when reading
* Skip commit and push when playlist has no changes
Prevents the workflow from failing with exit code 1 when the generated
playlist is identical to the previous run and there is nothing to commit.
* Use current branch instead of hardcoded master for push
Replace hardcoded origin/master reference with @{u} (upstream of current
branch) for the diff check, and use HEAD for the push target so the
workflow works correctly on any branch.
---------
Co-authored-by: Kálmán „KAMI” Szalai <kami911gmail.com>