Locally created timers not handled properly in IceTV

Issue #512 resolved
prl created an issue

If you use IceTV and create a local timer on a T series box, it no longer works correctly with IceTV.

When the local timer is created, it is sent to IceTV and appears in the IceTV My Week Web page. However, when the IceTV server sends back the confirmation respons of this to the PVR, the IceTV timer id isn't extracted from the response, so the IceTV timer id isn't added to the timer.

If the timer is then deleted on the IceTV Web page, the delete request is sent to the PVR, but because the timer on the PVR has no IceTV timer id, it's not deleted.

If instead, the timer is deleted on the PVR, because the timer has no IceTV it's assumed not to be on the IceTV server and so no delete request is sent to the server.

The IceTV plugin uses an IceTV id extracted from the header of the response to the creation request sent to the IceTV server. This information no longer seems to be in the response header. It is in the body of the response.

Replication steps

On a T series box using IceTV, create a local timer in the EPG. A corresponding entry is created in the IceTV My Week page for the device. However, the timer is not marked as an IceTV timer in the EPG or timer list.

Delete the timer on the PVR. It is not deleted on the server as it should be. Refresh the IceTV timers with MENU>IceTV>Fetch EPG and update timers now. It is still not deleted from the server.

Clean up by deleting the timer on the IceTV Web page, and then MENU>IceTV>Fetch EPG and update timers now.

Create a local timer in the EPG. A corresponding entry is created in the IceTV My Week page for the device. However, the timer is not marked as an IceTV timer in the EPG or timer list.

Delete the timer on the IceTV Web page, and then MENU>IceTV>Fetch EPG and update timers now.

The IceTV Web page entry for the timer is deleted, but the timer is not deleted on the PVR.

Clean up by deleting the timer on the PVR.

Comments (1)

  1. Peter Urbanec

    Fix Bug #512: Locally created timers not handled properly in IceTV

    [EPGFetcher]

    In postTimer(), use data in the JSON body of the IceTV response to the timer creation request instead of using part of the Location header field in the response.

    The Location header field is no longer sent by the server.

    If a response contains an ice_timer_id for the newliy created local timer, call RecordTimer.saveTimer() to save the updated timer] to timers.xml.

    → <<cset 457280c5fd3c>>

  2. Log in to comment