Files
2023-02-24 15:28:06 +01:00

38 lines
1.1 KiB
Python

# -*- coding: utf-8 -*-
"""IPTV Manager Integration module"""
import json
import socket
from .movistar import Movistar
class IPTVManager:
"""Interface to IPTV Manager"""
def __init__(self, port):
"""Initialize IPTV Manager object"""
self.port = port
def via_socket(func):
"""Send the output of the wrapped function to socket"""
def send(self, m):
"""Decorator to send over a socket"""
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', self.port))
try:
sock.sendall(json.dumps(func(self, m)).encode())
finally:
sock.close()
return send
@via_socket
def send_channels(self, m):
"""Return JSON-STREAMS formatted python datastructure to IPTV Manager"""
return dict(version=1, streams=m.export_channels())
@via_socket
def send_epg(self, m):
"""Return JSON-EPG formatted python data structure to IPTV Manager"""
return dict(version=1, epg=m.export_epg())