Пример #1
0
def get_stream_url(data_url):
    utils.log("Getting URL for channel: " + data_url)
    config.login_check()

    streamurl = None

    url = API_ENDPOINT + "/api/v1.7/get/content/live-streams/" + data_url + "?include=quality"
    opener = get_url_opener()
    opener.addheaders.append(('Authorization', "Bearer " + config.get_setting(constants.TOKEN)))
    response = opener.open(url)

    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        config.set_setting_bool(constants.LOGGED_IN, False)
        raise ApiError(
            "Got incorrect response code while requesting stream info. Reponse code: " + response_code + ";\nText: " + response_text)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError, e:
        config.set_setting(constants.LOGGED_IN, False)
        raise ApiError("Did not receive json, something wrong: " + response_text)
Пример #2
0
def get_stream_url(data_url):
    utils.log("Getting URL for channel: " + data_url)
    config.login_check()

    streamurl = None

    url = API_ENDPOINT + "/api/v1.4/get/content/live-streams/" + data_url + "?include=quality"
    opener = get_url_opener()
    opener.addheaders.append(
        ('Authorization', "Bearer " + config.get_setting(constants.TOKEN)))
    response = opener.open(url)

    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        config.set_setting_bool(constants.LOGGED_IN, False)
        raise ApiError(
            "Got incorrect response code while requesting stream info. Reponse code: "
            + response_code + ";\nText: " + response_text)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError, e:
        config.set_setting(constants.LOGGED_IN, False)
        raise ApiError("Did not receive json, something wrong: " +
                       response_text)
Пример #3
0
def get_stream_url(data_url):
    utils.log("Getting URL for channel: " + data_url)
    config.login_check()

    streamurl = None

    url = API_ENDPOINT + "/get/content/live-streams/" + data_url + "?include=quality"
    opener = get_url_opener()
    opener.addheaders.append(
        ('Authorization', "Bearer " + config.get_setting(constants.TOKEN)))
    response = None
    try:
        response = opener.open(url)
    except urllib.error.HTTPError as e:
        config.set_setting(constants.LOGGED_IN, "False")
        raise ApiError("Something wrong: " + e.code)

    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        config.set_setting_bool(constants.LOGGED_IN, "False")
        raise ApiError(
            "Got incorrect response code while requesting stream info. Reponse code: "
            + response_code + ";\nText: " + response_text)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError:
        config.set_setting(constants.LOGGED_IN, "False")
        raise ApiError("Did not receive json, something wrong: " +
                       response_text)

    stream_links = {}

    for stream in json_object["data"]:

        if stream["type"] != "live-streams":
            continue

        url = stream["attributes"][
            "stream-url"] + "&auth_token=app_" + config.get_setting(
                constants.TOKEN)

        if "_lq.stream" in stream["id"]:
            stream_links["3-lq"] = url
        elif "_mq.stream" in stream["id"]:
            stream_links["2-mq"] = url
        elif "_hq.stream" in stream["id"]:
            stream_links["1-hq"] = url
        elif "_hd.stream" in stream["id"]:
            stream_links["0-hd"] = url

    for key in sorted(stream_links.keys()):
        streamurl = stream_links[key]
        break

    return streamurl
Пример #4
0
def get_channels():
    config.login_check()

    url = API_ENDPOINT + '/api/v1.4/get/tv/channels'
    opener = get_url_opener()
    response = opener.open(url)
    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        raise ApiError(
            "Got incorrect response code while requesting channel list. Reponse code: " + response_code + ";\nText: " + response_text)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError, e:
        raise ApiError("Did not receive json, something wrong: " + response_text)
Пример #5
0
def get_channels():
    config.login_check()

    url = API_ENDPOINT + '/get/content/packages?include=channels'
    opener = get_url_opener()
    response = opener.open(url)
    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        raise ApiError(
            "Got incorrect response code while requesting channel list. Reponse code: " + response_code + ";\nText: " + response_text)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError, e:
        raise ApiError("Did not receive json, something wrong: " + response_text)
Пример #6
0
def get_channels():
    config.login_check()

    url = API_ENDPOINT + '/get/content/packages?include=channels'
    opener = get_url_opener()
    response = opener.open(url)
    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        raise ApiError(
            "Got incorrect response code while requesting channel list. Reponse code: "
            + response_code + ";\nText: " + response_text)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError:
        raise ApiError("Did not receive json, something wrong: " +
                       response_text)

    if "included" not in json_object:
        raise ApiError("Invalid response: " + response_text)

    channels = []
    for item in json_object["included"]:
        if "type" not in item or "id" not in item:
            continue

        if item["type"] != "channels":
            continue

        if item["attributes"] is None or item["attributes"]["title"] is None:
            continue

        channels.append({
            'id': item["id"],
            'name': item["attributes"]["title"],
            'logo': item["attributes"]["logo-url"],
            'thumb': item["attributes"]["epg-default-poster-url"]
        })

    return channels
Пример #7
0
def get_epg(date):
    utils.log("Getting EPG for date: " + date)
    config.login_check()

    url = API_ENDPOINT + "/api/v1.4/get/tv/epg/?daynight=" + date
    opener = get_url_opener()
    opener.addheaders.append(('Authorization', "Bearer " + config.get_setting(constants.TOKEN)))
    response = opener.open(url)

    response_text = response.read()
    response_code = response.getcode()

    if response_code != 200:
        config.set_setting_bool(constants.LOGGED_IN, False)
        raise ApiError(
            "Got bad response from EPG service. Response code: " + response_code)

    json_object = None
    try:
        json_object = json.loads(response_text)
    except ValueError, e:
        config.set_setting(constants.LOGGED_IN, False)
        raise ApiError("Did not receive json, something wrong: " + response_text)