aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/livestreamer/plugins/ongamenet.py
blob: 0267c841c524738885af49f2fe51ce96f014d98d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from livestreamer.compat import str, bytes
from livestreamer.plugins import Plugin, PluginError, NoStreamsError
from livestreamer.stream import RTMPStream
from livestreamer.utils import urlget

import re

class Ongamenet(Plugin):
    PlayerURL = "http://www.ongamenet.com/front/ongame/live/vodPlayerHD.jsp"
    SWFURL = "http://www.ongamenet.com/front/ongame/live/CJPlayer.swf"
    PageURL = "http://www.ongamenet.com"
    Streams = {
        "high": "hd",
        "low": "sd"
    }

    @classmethod
    def can_handle_url(self, url):
        return "ongamenet.com" in url

    def _get_play_url(self, var):
        res = urlget(self.PlayerURL)

        stream = None
        server = None

        streams = re.findall(('var {0}Stream = "(.+)"\;\r\n').format(var), res.text)
        servers = re.findall(('var {0}Server = "(.+)"\;\r\n').format(var), res.text)

        if streams and len(streams) >= 2:
            stream = streams[1]

        if servers and len(servers) >= 1:
            server = servers[0]

        return (server, stream)

    def _get_streams(self):
        streams = {}

        for var, name in self.Streams.items():
            server, stream = self._get_play_url(var)

            if not (stream and server):
                continue

            streams[name] = RTMPStream(self.session, {
                "rtmp": server,
                "playpath": stream,
                "swfUrl": self.SWFURL,
                "pageUrl": self.PageURL,
                "live": True,
            })

        return streams

__plugin__ = Ongamenet