diff options
Diffstat (limited to 'src/livestreamer/plugins/ongamenet.py')
-rw-r--r-- | src/livestreamer/plugins/ongamenet.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/livestreamer/plugins/ongamenet.py b/src/livestreamer/plugins/ongamenet.py new file mode 100644 index 0000000..0267c84 --- /dev/null +++ b/src/livestreamer/plugins/ongamenet.py @@ -0,0 +1,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 |