Opened 12 years ago

Closed 6 years ago

#12296 closed Patch - Feature (Unverified)

Watchlist Improvements

Reported by: Roger Siddons <dizygotheca@…> Owned by: Roger Siddons
Priority: minor Milestone: unknown
Component: MythTV - General Version: Master Head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

The watchlist has 2 functions:

a) to select the 'first' episode of each series of recordings, b) to present the resulting titles in a convenient order for watching

Issues

(a) 1. It currently selects the earliest/oldest episode so the wrong recording is shown when episodes are recorded out of order.

(a) 2. Series are grouped by recording rule. For rules that record different titles, the later ones will be hidden. Multiple episodes of the same title are shown when multiple rules record the same title.

(b) 3. Current ordering uses arbitrary weightings with a highly subjective set of rules summarised as:

  • promote series with many episodes
  • promote series that are about to record again
  • promote new recordings for 42 hrs
  • promote recordings from the same time of day, demote others
  • promote daily/weekly recordings
  • hide series that have been recently deleted
  • promote quickly watched series
  • demote old recordings

In practice this produces a seemingly random and unintuitive order which is then frequently reshuffled.


A series of patches is attached for ease of review, but should be applied in sequence.

  1. Group watchlist recordings by title rather than recording rule. Thus different titles recorded by a one rule are all shown and a single title recorded by multiple rules are grouped together. Also a pre-requisite for selection by episode number.
  1. 'First' episodes are selected by season/episode as well as age. Initial selection is age. However if the oldest episode has season/episode numbers assigned then it is superseded by any earlier season/episode that exists. Specials or untagged recordings that co-exist with tagged ones thus appear in proper sequence.
  1. The watchlist currently caches its scores in ProgramInfo::recpriority2 in order to display the program score/state on the Info/ProgDetails screen. This is confusing and an abuse of ProgramInfo.
    The score/state is of no interest to the user, who cannot alter it. It is debug information that belongs in the logs and has been removed along with the ProgramInfo caching.
    Themes should remove WATCH_LIST_SCORE & WATCH_LIST_STATUS widgets from progdetails*.html. However they are set as empty to prevent breakage for now.
  1. A new UI widget "watchtotal" enables the watchlist to show the number of episodes of each title, for example a "recordings" buttonlist widget of:
    <textarea name="title">
      <template>%title%% (|watchtotal| episodes)%% - "|subtitle|"%</template>
    </textarea>
    
    will produce:
    The Simpsons (15 episodes) - "Homer does something stupid"
    
    This widget only exists when the Watchlist group is selected in the groups list - for other groups it will show the usual:
    The Simpsons - "Homer does something stupid"
    
  1. Restructures the code to support multiple sort strategies. Adds a setting "WatchListOrder" so the user can select their preferred sorting strategy in Setup/TV Settings/TV Playback/Page 6. It defaults to "Classic" - the existing strategy.
  1. Adds a new simplified sort strategy "LimitedOldest" that is IMHO more stable, intuitive & useful. Titles are ordered by record date (oldest first). New titles & quickly-watched titles are placed at the top; titles that remain unwatched are relegated to the bottom. Two new settings "PlaybackWLRecentLimit" & "PlaybackWLOldLimit" are introduced so the user can adjust this behaviour.

Attachments (6)

0001-Watchlist-Group-by-title-rather-than-recording-rule.patch (3.3 KB ) - added by Roger Siddons <dizygotheca@…> 12 years ago.
0002-Watchlist-Select-by-episode-numbers-and-date.patch (6.3 KB ) - added by Roger Siddons <dizygotheca@…> 12 years ago.
0003-Watchlist-Remove-caching-prog-details-info-improve-l.patch (20.6 KB ) - added by Roger Siddons <dizygotheca@…> 12 years ago.
0004-Watchlist-Add-watchtotal-widget-theme-support.patch (2.9 KB ) - added by Roger Siddons <dizygotheca@…> 12 years ago.
0005-Watchlist-Implement-multiple-ordering-strategies.patch (19.7 KB ) - added by Roger Siddons <dizygotheca@…> 12 years ago.
0006-Watchlist-Add-Oldest-with-Limits-strategy.patch (10.5 KB ) - added by Roger Siddons <dizygotheca@…> 12 years ago.

Download all attachments as: .zip

Change History (16)

by Roger Siddons <dizygotheca@…>, 12 years ago

by Roger Siddons <dizygotheca@…>, 12 years ago

by Roger Siddons <dizygotheca@…>, 12 years ago

by Roger Siddons <dizygotheca@…>, 12 years ago

by Roger Siddons <dizygotheca@…>, 12 years ago

by Roger Siddons <dizygotheca@…>, 12 years ago

comment:1 by Karl Egly, 11 years ago

Owner: set to Roger Siddons
Status: newassigned

Roger, assigning your open patches to yourself. Feel free to unassign if you prefer a review.

comment:2 by Roger Siddons <rsiddons@…>, 10 years ago

Resolution: fixed
Status: assignedclosed

In 67f4135dfd1d9e5408e16581b92612805645fb88/mythtv:

Error: Processor CommitTicketReference failed
GIT backend not available

comment:3 by Roger Siddons, 10 years ago

Resolution: fixed
Status: closednew

comment:4 by Roger Siddons, 10 years ago

Status: newassigned

comment:5 by Roger Siddons, 10 years ago

Restoring status as ticket was only closed (automatically) due to an unintentional commit which was immediately reverted.

comment:6 by Stuart Auchterlonie, 10 years ago

Milestone: unknown29.0

comment:7 by Stuart Auchterlonie, 9 years ago

Milestone: 29.029.1

comment:8 by Roger Siddons, 9 years ago

Milestone: 29.130.0

comment:9 by dizygotheca, 8 years ago

Milestone: 30.0unknown

comment:10 by Stuart Auchterlonie, 6 years ago

Resolution: Unverified
Status: assignedclosed

Closing all old tickets in trac.

If your issue still persists, please open an issue in Github https://github.com/MythTV/mythtv/issues

and reference the existing trac ticket.

Note: See TracTickets for help on using tickets.