jf-roku/components/liveTv/RecordProgramTask.bs
2023-10-03 12:11:25 -04:00

61 lines
2.0 KiB
Plaintext

import "pkg:/source/api/baserequest.bs"
import "pkg:/source/utils/config.bs"
import "pkg:/source/roku_modules/log/LogMixin.bs"
sub init()
m.log = log.Logger("RecordProgramTask")
m.top.functionName = "RecordOrCancelProgram"
end sub
sub RecordOrCancelProgram()
if m.top.programDetails <> invalid
' Are we setting up a recording or canceling one?
TimerId = invalid
if m.top.programDetails.json.TimerId <> invalid and m.top.programDetails.json.TimerId <> ""
TimerId = m.top.programDetails.json.TimerId
end if
if TimerId = invalid
' Setting up a recording...
programId = m.top.programDetails.Id
' Get Live TV default params from server...
url = "LiveTv/Timers/Defaults"
params = {
programId: programId
}
resp = APIRequest(url, params)
data = getJson(resp)
if data <> invalid
' Create recording timer...
if m.top.recordSeries = true
url = "LiveTv/SeriesTimers"
else
url = "LiveTv/Timers"
end if
resp = APIRequest(url)
postJson(resp, FormatJson(data))
m.top.programDetails.hdSmallIconUrl = "pkg:/images/red.png"
else
' Error msg to user?
m.log.error("Could not retrieve live TV Defaults from Server")
end if
else
' Cancelling a recording...
if m.top.recordSeries = true
TimerId = m.top.programDetails.json.SeriesTimerId
url = Substitute("LiveTv/SeriesTimers/{0}", TimerId)
else
url = Substitute("LiveTv/Timers/{0}", TimerId)
end if
resp = APIRequest(url)
deleteVoid(resp)
m.top.programDetails.hdSmallIconUrl = invalid
end if
end if
m.top.recordOperationDone = true
end sub