Add add_recording
method and exceptions
This commit is contained in:
parent
5e1a07e793
commit
55f1f41db3
@ -1,11 +1,13 @@
|
||||
import requests
|
||||
import json
|
||||
import m3u8
|
||||
from urllib3.exceptions import HTTPError
|
||||
from typing import List
|
||||
from .auth import login
|
||||
from .consts import API
|
||||
from .helpers import now_timestamp
|
||||
from .types import Program
|
||||
from .exceptions import RecordingException
|
||||
|
||||
|
||||
class MatteBOX:
|
||||
@ -55,6 +57,15 @@ class MatteBOX:
|
||||
recordings = [Program.from_recording(r) for r in res["entities"]]
|
||||
return recordings
|
||||
|
||||
def add_recording(self, program: Program) -> None:
|
||||
try:
|
||||
self.__get(
|
||||
"/sws/subscription/vod/pvr-add-program.json",
|
||||
params={"epgId": program.epg_id}
|
||||
)
|
||||
except HTTPError as e:
|
||||
raise RecordingException(e) from None
|
||||
|
||||
def get_stream(self, program: Program, end: bool = True) -> str:
|
||||
service_type = "TIMESHIFT_TV" if program.type == "program" else "NPVR"
|
||||
if end:
|
||||
|
10
mattebox/exceptions.py
Normal file
10
mattebox/exceptions.py
Normal file
@ -0,0 +1,10 @@
|
||||
import json
|
||||
|
||||
|
||||
class MatteBOXException(Exception):
|
||||
def __init__(self, e: Exception) -> None:
|
||||
super().__init__(json.loads(str(e))["errorMessage"])
|
||||
|
||||
|
||||
class RecordingException(MatteBOXException):
|
||||
pass
|
@ -4,6 +4,7 @@ from __future__ import annotations
|
||||
class Program:
|
||||
name: str
|
||||
channel: str
|
||||
epg_id: str
|
||||
content_id: str
|
||||
description: str
|
||||
ts_start: int
|
||||
@ -16,7 +17,8 @@ class Program:
|
||||
obj.__dict__ = {
|
||||
"name": data["name"],
|
||||
"channel": data["channelKey"],
|
||||
"content_id": data["epgId"],
|
||||
"epg_id": data["epgId"],
|
||||
"content_id": obj.epg_id,
|
||||
"description": data["shortDescription"],
|
||||
"ts_start": data["startTimestamp"],
|
||||
"ts_stop": data["endTimestamp"],
|
||||
@ -30,6 +32,7 @@ class Program:
|
||||
obj.__dict__ = {
|
||||
"name": data["title"],
|
||||
"channel": data["channelKey"],
|
||||
"epg_id": data["epgId"],
|
||||
"content_id": data["pvrProgramId"],
|
||||
"description": data["longDescription"],
|
||||
"ts_start": data["startTime"],
|
||||
|
Loading…
x
Reference in New Issue
Block a user