38 lines
1.1 KiB
Python
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())
|