IPTV Checker v1.26.2481600 - Release Notes
Five changes. Two of them stop the plugin acting on stale or incomplete
evidence, one makes a whole class of unusable schedule impossible to save, one
is housekeeping for exported files, and one is a pass over the interface that
removed four statements that were not true.
Read the behaviour changes at the end before upgrading. One setting has been
removed, and several buttons have changed colour.
A scan that was cut short no longer applies its verdicts
The scan runs in its own thread; the scheduled check only waits for it. That
wait ended either when the scan finished or when the scheduler was told to stop,
and the two were treated identically. Stopping or restarting the scheduler
therefore let the plugin carry on as though the scan had completed.
It did not act on partial data, which would have been the obvious guess. The
results file is written once, at the end of a scan, so while a scan is in flight
that file still holds the previous run's complete results. The plugin was
therefore re-applying an earlier run's verdicts at an arbitrary later time,
which can delete a channel that has since recovered.
A session that did not write new results now writes its CSV, which is the record
of what was probed, and stops there. No report is emailed, and no rename, move,
restore or delete runs.
This happens more often than it sounds. Opening the Dispatcharr Plugins page
causes a plugin discovery pass, which unloads every plugin, which stops the
scheduler. On the day this was released the guard fired for real twenty minutes
after deployment, on a scan 275 streams into 5,275.
Schedules that can never run are refused, and described when they can
The schedule field checked only that an expression had five fields. It did not
look at what was in them. These were all accepted, reported as saved, and then
never ran:
| What you type | What used to happen |
|---|---|
0 25 * * * |
Saved. Hour 25 matches no hour, so it never ran. |
"0 22 * * 0,2,4" |
Saved with the quotation marks as part of the fields. Never ran. |
0 22 * * SUN,TUE,THU |
Saved. This plugin matches numbers, not day names. Never ran. |
0 22 * * 0,2,4, |
Saved. The trailing comma leaves an empty value. Never ran. |
0 22 * * 0, 2, 4 |
Saved, and ran on Sundays only. The spaces split it and the rest was dropped silently. |
Each is now refused when you save it, with a message naming what is wrong.
Saving a schedule also shows what it means:
Cron Schedules: 0 22 * * 0,2,4 (Sun, Tue and Thu at 10:00 PM)
Anything the plugin cannot describe with certainty is shown as written rather
than guessed at.
Day of week 7 now means Sunday, as in standard cron. It previously matched
nothing, so a schedule written that way never fired.
Old CSV exports can be deleted automatically
A new setting, Delete CSV Exports Older Than (Days), removes this plugin's
own exports from /data/exports/ once they pass that age. It runs straight
after each export rather than on a schedule, because files only accumulate when
one is written.
It defaults to 0, meaning keep everything, so nothing is deleted unless you
ask for it.
Four rules apply, and each has a test:
- Only files named
iptv_checker_results_*.csvare ever removed. That directory
is shared with other plugins, and their files are not touched. - The file just written is never deleted.
- At least one file always survives, so a small number cannot empty the
directory. - A failure to tidy up never turns a successful export into a reported error.
The settings form, the buttons and the CSV record
An interface pass found four statements that were not true and corrected them.
A setting that did nothing has been removed. scheduler_export_csv had a
label, help text and a default of off, and no code read it. The scheduled CSV
export is unconditional by design, because that file is the record of what was
probed when a destructive action follows. The control promised the opposite of
the behaviour in both directions.
The Scheduling heading advertised webhook actions. The webhook feature was
removed from this plugin a month earlier and no code mentions it.
The group selection panel described the danger backwards. It said a typo
narrows a run. In exclude mode a pattern that matches nothing excludes nothing,
so the run covers every group, and all of them become eligible for the
scheduled rename, move and delete. The panel now says so.
Seven confirmation dialogs claimed their action was irreversible. Renaming
and moving are undone by Restore Recovered Channels. Those dialogs now say how
to undo the action instead, with one exception stated plainly: Restore does not
strip the video format suffix, because it acts on channels that failed rather
than on channels that play.
The form is now grouped under 17 headings rather than 15. The block of twelve
automatic actions split into three: what a run leaves behind, the channel
changes that can be undone, and deletion, which cannot.
The CSV preamble now says what the file is and that the hash lines are a
preamble a spreadsheet should skip, states what the run did before how it was
configured, renders settings as Yes and No rather than as Python values, and
records which detectors ran and which automatic changes were armed. All four
detectors are optional, so a report listing no blank screens previously meant
either that none were found or that nobody looked, and the file did not say
which. It also no longer fails when the results list is empty.
A setting that is off is now read as off
Every boolean setting was read with plain truthiness. A value stored as the
string false is a non-empty string, so it was read as on. Nine of the
thirty affected reads gate a scheduled rename, move or delete.
All of them now use one parser, and the CSV record renders through that same
parser, so the file and the behaviour cannot disagree about what a setting says.
On the installation where this was found, Dispatcharr stores these as real
booleans, so the fault was not occurring there. It is a correctness fix for
anyone whose values are stored differently.
Behaviour changes
A setting has been removed.
scheduler_export_csvis gone from the form.
It never did anything: the scheduled CSV export always ran and still does.
Your stored value remains in the database, unread.
Button colours have changed. Red now marks only Delete Dead Channels, the
one action that removes channels. The rename and move actions are orange,
because Restore Recovered Channels undoes them. Clear CSV Exports is orange
rather than red, because it deletes this plugin's own export files and no
channel data.
A schedule that cannot run is now refused at save time. If you have one
saved, it is still loaded, because refusing it outright would leave an
installation running nothing at all. You will see the error the next time you
press Save Schedule, which is the point at which you can fix it.
A schedule written with day of week 7 now fires on Sundays. It previously
fired on nothing.
A boolean setting stored as the string
falseis now read as off. If any
of your settings were stored that way, an action you had switched off may have
been running, and will now stop.
A scan stopped part way no longer emails a report or applies channel
changes. A window that closes normally still does both.
Upgrading
Delete the old plugin on the Plugins page, restart the container, then import
the new zip. Your settings are preserved.
Nothing in this release requires a configuration change. The new export
retention setting defaults to keeping every file.
Full Changelog: v1.26.2402308...v1.26.2481600