mirror of https://github.com/streamlink/streamlink
Add blank line after class or function definition (#408)
This commit is contained in:
parent
6cce32a58d
commit
922e169207
|
@ -135,5 +135,6 @@ def main():
|
|||
# Blocks until playback is done
|
||||
player.play(stream)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
|
@ -161,4 +161,5 @@ class RingBuffer(Buffer):
|
|||
def is_full(self):
|
||||
return self.free == 0
|
||||
|
||||
|
||||
__all__ = ["Buffer", "RingBuffer"]
|
||||
|
|
|
@ -90,4 +90,5 @@ class Cache(object):
|
|||
else:
|
||||
return default
|
||||
|
||||
|
||||
__all__ = ["Cache"]
|
||||
|
|
|
@ -57,4 +57,5 @@ class LoggerModule(object):
|
|||
def debug(self, msg, *args, **kwargs):
|
||||
self.manager.msg(self.module, 4, msg, *args, **kwargs)
|
||||
|
||||
|
||||
__all__ = ["Logger"]
|
||||
|
|
|
@ -13,4 +13,5 @@ class Options(object):
|
|||
if key in self.options:
|
||||
return self.options[key]
|
||||
|
||||
|
||||
__all__ = ["Options"]
|
||||
|
|
|
@ -127,4 +127,5 @@ class AMFPacket(Packet):
|
|||
|
||||
return cls(version, headers, messages)
|
||||
|
||||
|
||||
__all__ = ["AMFPacket", "AMFHeader", "AMFMessage"]
|
||||
|
|
|
@ -1058,6 +1058,7 @@ class BoxPayloadMETA(BoxContainer):
|
|||
class BoxPayloadDINF(BoxContainerSingle):
|
||||
pass
|
||||
|
||||
|
||||
PayloadTypes = {
|
||||
"ftyp": BoxPayloadFTYP,
|
||||
"mvhd": BoxPayloadMVHD,
|
||||
|
|
|
@ -9,4 +9,5 @@ class F4VError(Exception):
|
|||
class AMFError(Exception):
|
||||
pass
|
||||
|
||||
|
||||
__all__ = ["FLVError", "F4VError", "AMFError"]
|
||||
|
|
|
@ -60,4 +60,5 @@ class TagData(Packet):
|
|||
else:
|
||||
return len(self.data)
|
||||
|
||||
|
||||
__all__ = ["Packet", "TagData"]
|
||||
|
|
|
@ -883,6 +883,7 @@ class AMF0Value(ScriptDataValue):
|
|||
class AMF0String(ScriptDataString):
|
||||
pass
|
||||
|
||||
|
||||
AMF0Number = ScriptDataNumber
|
||||
|
||||
AMF3Double = ScriptDataNumber
|
||||
|
|
|
@ -75,6 +75,7 @@ class ErrorReturnCode(Exception):
|
|||
|
||||
class CommandNotFound(Exception): pass
|
||||
|
||||
|
||||
rc_exc_regex = re.compile("ErrorReturnCode_(\d+)")
|
||||
rc_exc_cache = {}
|
||||
|
||||
|
|
|
@ -71,4 +71,5 @@ class AdultSwim(Plugin):
|
|||
else:
|
||||
self.logger.error("Couldn't find the stream data for this stream: {}".format(stream_name))
|
||||
|
||||
|
||||
__plugin__ = AdultSwim
|
||||
|
|
|
@ -85,4 +85,5 @@ class Aftonbladet(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Aftonbladet
|
||||
|
|
|
@ -71,4 +71,5 @@ class Aliez(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Aliez
|
||||
|
|
|
@ -46,4 +46,5 @@ class Antenna(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Antenna
|
||||
|
|
|
@ -47,4 +47,5 @@ class ard_live(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = ard_live
|
||||
|
|
|
@ -127,4 +127,5 @@ class ard_mediathek(Plugin):
|
|||
self.logger.error("Failed to extract {0} streams: {1}",
|
||||
parser_name, err)
|
||||
|
||||
|
||||
__plugin__ = ard_mediathek
|
||||
|
|
|
@ -107,4 +107,5 @@ class ArteTV(Plugin):
|
|||
|
||||
return chain.from_iterable(streams)
|
||||
|
||||
|
||||
__plugin__ = ArteTV
|
||||
|
|
|
@ -94,4 +94,5 @@ class AzubuTV(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
__plugin__ = AzubuTV
|
||||
|
||||
__plugin__ = AzubuTV
|
||||
|
|
|
@ -61,4 +61,5 @@ class Beam(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Beam
|
||||
|
|
|
@ -66,4 +66,5 @@ class Bigo(Plugin):
|
|||
sid, uid, ip, port = flashvars.groups()
|
||||
yield "live", BigoStream(self.session, sid, uid, ip, port)
|
||||
|
||||
|
||||
__plugin__ = Bigo
|
||||
|
|
|
@ -54,4 +54,5 @@ class Bilibili(Plugin):
|
|||
stream = HTTPStream(self.session, url)
|
||||
yield name, stream
|
||||
|
||||
|
||||
__plugin__ = Bilibili
|
||||
|
|
|
@ -70,4 +70,5 @@ class bliptv(Plugin):
|
|||
streams[quality_dict[stream['video_bitrate']]] = HTTPStream(self.session, stream['direct_url'])
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = bliptv
|
||||
|
|
|
@ -150,4 +150,5 @@ class bongacams(Plugin):
|
|||
|
||||
return {'live': stream}
|
||||
|
||||
|
||||
__plugin__ = bongacams
|
||||
|
|
|
@ -33,4 +33,5 @@ class Chaturbate(Plugin):
|
|||
|
||||
return HLSStream.parse_variant_playlist(self.session, playlist_url)
|
||||
|
||||
|
||||
__plugin__ = Chaturbate
|
||||
|
|
|
@ -26,4 +26,5 @@ class ConnectCast(Plugin):
|
|||
|
||||
return dict(live=RTMPStream(self.session, params))
|
||||
|
||||
|
||||
__plugin__ = ConnectCast
|
||||
|
|
|
@ -330,4 +330,5 @@ class Crunchyroll(Plugin):
|
|||
|
||||
return api
|
||||
|
||||
|
||||
__plugin__ = Crunchyroll
|
||||
|
|
|
@ -197,4 +197,5 @@ class DailyMotion(Plugin):
|
|||
|
||||
return self._get_streams_from_media(media_id)
|
||||
|
||||
|
||||
__plugin__ = DailyMotion
|
||||
|
|
|
@ -36,4 +36,5 @@ class DisneyDE(Plugin):
|
|||
|
||||
return HLSStream.parse_variant_playlist(self.session, stream_url)
|
||||
|
||||
|
||||
__plugin__ = DisneyDE
|
||||
|
|
|
@ -163,4 +163,5 @@ class Douyutv(Plugin):
|
|||
stream = HTTPStream(self.session, url)
|
||||
yield "low", stream
|
||||
|
||||
|
||||
__plugin__ = Douyutv
|
||||
|
|
|
@ -155,4 +155,5 @@ class Dplay (Plugin):
|
|||
# Feed stream data to mapper and return all streams found
|
||||
return mapper (streams)
|
||||
|
||||
|
||||
__plugin__ = Dplay
|
||||
|
|
|
@ -137,4 +137,5 @@ class DRDK(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = DRDK
|
||||
|
|
|
@ -74,4 +74,5 @@ class Euronews(Plugin):
|
|||
else:
|
||||
return self._get_vod_stream()
|
||||
|
||||
|
||||
__plugin__ = Euronews
|
||||
|
|
|
@ -67,4 +67,5 @@ class Expressen(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
__plugin__ = Expressen
|
||||
|
||||
__plugin__ = Expressen
|
||||
|
|
|
@ -146,4 +146,5 @@ class Filmon(Plugin):
|
|||
if match:
|
||||
return self._get_live_streams(match.group(1))
|
||||
|
||||
|
||||
__plugin__ = Filmon
|
||||
|
|
|
@ -130,4 +130,5 @@ class Filmon_us(Plugin):
|
|||
|
||||
return
|
||||
|
||||
|
||||
__plugin__ = Filmon_us
|
||||
|
|
|
@ -38,4 +38,5 @@ class Furstream(Plugin):
|
|||
|
||||
return dict(live=stream)
|
||||
|
||||
|
||||
__plugin__ = Furstream
|
||||
|
|
|
@ -106,4 +106,5 @@ class GamingLive(Plugin):
|
|||
elif type == "videos":
|
||||
return self._get_vod_streams(match.group("name"))
|
||||
|
||||
|
||||
__plugin__ = GamingLive
|
||||
|
|
|
@ -49,4 +49,5 @@ class GOMeXP(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = GOMeXP
|
||||
|
|
|
@ -52,4 +52,5 @@ class GoodGame(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = GoodGame
|
||||
|
|
|
@ -191,4 +191,5 @@ class Hitbox(Plugin):
|
|||
else:
|
||||
return self._get_video_streams(player)
|
||||
|
||||
|
||||
__plugin__ = Hitbox
|
||||
|
|
|
@ -59,4 +59,5 @@ class Huajiao(Plugin):
|
|||
stream = HTTPStream(self.session, video_data['main'])
|
||||
yield "live", stream
|
||||
|
||||
|
||||
__plugin__ = Huajiao
|
||||
|
|
|
@ -51,4 +51,5 @@ class INE(Plugin):
|
|||
if source["type"] == "hls":
|
||||
return HLSStream.parse_variant_playlist(self.session, "https:" + source["file"])
|
||||
|
||||
|
||||
__plugin__ = INE
|
||||
|
|
|
@ -39,4 +39,5 @@ class LivecodingTV(Plugin):
|
|||
elif stream_type == "video/mp4":
|
||||
yield 'vod', HTTPStream(self.session, url)
|
||||
|
||||
|
||||
__plugin__ = LivecodingTV
|
||||
|
|
|
@ -47,4 +47,5 @@ class LiveMe(Plugin):
|
|||
if video:
|
||||
yield "live", video
|
||||
|
||||
|
||||
__plugin__ = LiveMe
|
||||
|
|
|
@ -121,4 +121,5 @@ class Livestream(Plugin):
|
|||
for stream in streams.items():
|
||||
yield stream
|
||||
|
||||
|
||||
__plugin__ = Livestream
|
||||
|
|
|
@ -195,4 +195,5 @@ class media_ccc_de(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = media_ccc_de
|
||||
|
|
|
@ -61,4 +61,5 @@ class Mips(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Mips
|
||||
|
|
|
@ -92,4 +92,5 @@ class MLGTV(Plugin):
|
|||
|
||||
return mapper(items)
|
||||
|
||||
|
||||
__plugin__ = MLGTV
|
||||
|
|
|
@ -73,4 +73,5 @@ class NOS(Plugin):
|
|||
else:
|
||||
return self._get_source_streams()
|
||||
|
||||
|
||||
__plugin__ = NOS
|
||||
|
|
|
@ -90,4 +90,5 @@ class NPO(Plugin):
|
|||
else:
|
||||
return self._get_vod_streams()
|
||||
|
||||
|
||||
__plugin__ = NPO
|
||||
|
|
|
@ -60,4 +60,5 @@ class NRK(Plugin):
|
|||
|
||||
return HLSStream.parse_variant_playlist(self.session, media_url)
|
||||
|
||||
|
||||
__plugin__ = NRK
|
||||
|
|
|
@ -32,4 +32,5 @@ class OPENRECtv(Plugin):
|
|||
|
||||
return HLSStream.parse_variant_playlist(self.session, playlist_url)
|
||||
|
||||
|
||||
__plugin__ = OPENRECtv
|
||||
|
|
|
@ -49,4 +49,5 @@ class ORFTVThek(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = ORFTVThek
|
||||
|
|
|
@ -85,5 +85,6 @@ class pandatv(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = pandatv
|
||||
|
||||
|
|
|
@ -53,4 +53,5 @@ class Periscope(Plugin):
|
|||
else:
|
||||
return
|
||||
|
||||
|
||||
__plugin__ = Periscope
|
||||
|
|
|
@ -67,4 +67,5 @@ class Piczel(Plugin):
|
|||
|
||||
return
|
||||
|
||||
|
||||
__plugin__ = Piczel
|
||||
|
|
|
@ -19,4 +19,5 @@ class rtlxl(Plugin):
|
|||
playlist_url = "http://manifest.us.rtl.nl" + re.compile(r'videopath":"(?P<playlist_url>.*?)",', re.IGNORECASE).search(html).group("playlist_url")
|
||||
return HLSStream.parse_variant_playlist(self.session, playlist_url)
|
||||
|
||||
|
||||
__plugin__ = rtlxl
|
||||
|
|
|
@ -55,4 +55,5 @@ class Rtve(Plugin):
|
|||
|
||||
return HLSStream.parse_variant_playlist(self.session, hls_url)
|
||||
|
||||
|
||||
__plugin__ = Rtve
|
||||
|
|
|
@ -42,4 +42,5 @@ class SeeMePlay(Plugin):
|
|||
stream = HTTPStream(self.session, res["url"])
|
||||
return dict(video=stream)
|
||||
|
||||
|
||||
__plugin__ = SeeMePlay
|
||||
|
|
|
@ -38,4 +38,5 @@ class sportschau(Plugin):
|
|||
|
||||
return HDSStream.parse_manifest(self.session, stream_metadata['mediaResource']['dflt']['videoURL']).items()
|
||||
|
||||
|
||||
__plugin__ = sportschau
|
||||
|
|
|
@ -30,4 +30,5 @@ class SSH101(Plugin):
|
|||
if stream_src and stream_src.endswith("m3u8"):
|
||||
return HLSStream.parse_variant_playlist(self.session, stream_src)
|
||||
|
||||
|
||||
__plugin__ = SSH101
|
||||
|
|
|
@ -23,4 +23,5 @@ class StreamBoat(Plugin):
|
|||
url = 'http://{}{}'.format(cdn, playlist_url)
|
||||
return dict(source=HLSStream(self.session, url))
|
||||
|
||||
|
||||
__plugin__ = StreamBoat
|
||||
|
|
|
@ -84,4 +84,5 @@ class Streamingvideoprovider(Plugin):
|
|||
except PluginError as err:
|
||||
self.logger.error("Unable to extract HLS stream: {0}", err)
|
||||
|
||||
|
||||
__plugin__ = Streamingvideoprovider
|
||||
|
|
|
@ -56,4 +56,5 @@ class StreamLive(Plugin):
|
|||
|
||||
return mapper(urls)
|
||||
|
||||
|
||||
__plugin__ = StreamLive
|
||||
|
|
|
@ -23,4 +23,5 @@ class StreamMe(Plugin):
|
|||
except KeyError:
|
||||
return {}
|
||||
|
||||
|
||||
__plugin__ = StreamMe
|
||||
|
|
|
@ -21,4 +21,5 @@ class StreamupCom(Plugin):
|
|||
hls_url = "http://video-cdn.streamup.com{}".format(url)
|
||||
return HLSStream.parse_variant_playlist(self.session, hls_url)
|
||||
|
||||
|
||||
__plugin__ = StreamupCom
|
||||
|
|
|
@ -88,4 +88,5 @@ class SVTPlay(Plugin):
|
|||
|
||||
return mapper(videos)
|
||||
|
||||
|
||||
__plugin__ = SVTPlay
|
||||
|
|
|
@ -113,4 +113,5 @@ class Tga(Plugin):
|
|||
elif cid != 0:
|
||||
return self._get_plu_streams(cid)
|
||||
|
||||
|
||||
__plugin__ = Tga
|
||||
|
|
|
@ -35,4 +35,5 @@ class Tigerdile(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Tigerdile
|
||||
|
|
|
@ -69,4 +69,5 @@ class TV4Play(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = TV4Play
|
||||
|
|
|
@ -76,4 +76,5 @@ class TV8cat(Plugin):
|
|||
"playpath": source.get("stream_name")})
|
||||
yield q, s
|
||||
|
||||
|
||||
__plugin__ = TV8cat
|
||||
|
|
|
@ -623,4 +623,5 @@ class UStreamTV(Plugin):
|
|||
if channel_id:
|
||||
return self._get_live_streams(channel_id)
|
||||
|
||||
|
||||
__plugin__ = UStreamTV
|
||||
|
|
|
@ -101,4 +101,5 @@ class VaughnLive(Plugin):
|
|||
|
||||
return dict(live=stream)
|
||||
|
||||
|
||||
__plugin__ = VaughnLive
|
||||
|
|
|
@ -59,4 +59,5 @@ class Veetle(Plugin):
|
|||
|
||||
return {name: stream}
|
||||
|
||||
|
||||
__plugin__ = Veetle
|
||||
|
|
|
@ -156,4 +156,5 @@ class VGTV(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = VGTV
|
||||
|
|
|
@ -14,6 +14,7 @@ def html_unescape(s):
|
|||
parser = HTMLParser()
|
||||
return parser.unescape(s)
|
||||
|
||||
|
||||
_url_re = re.compile(r"https?://(?:www\.)?vidio\.com/(?P<type>live|watch)/(?P<id>\d+)-(?P<name>[^/?#&]+)")
|
||||
_clipdata_re = re.compile(r"""data-json-clips\s*=\s*(['"])(.*?)\1""")
|
||||
|
||||
|
@ -51,4 +52,5 @@ class Vidio(Plugin):
|
|||
for source in clip["sources"]:
|
||||
return HLSStream.parse_variant_playlist(self.session, source["file"])
|
||||
|
||||
|
||||
__plugin__ = Vidio
|
||||
|
|
|
@ -65,4 +65,5 @@ class WAT(Plugin):
|
|||
|
||||
return token
|
||||
|
||||
|
||||
__plugin__ = WAT
|
||||
|
|
|
@ -55,4 +55,5 @@ class WebTV(Plugin):
|
|||
except IOError:
|
||||
self.logger.warning("Could not open the stream, perhaps the channel is offline")
|
||||
|
||||
|
||||
__plugin__ = WebTV
|
||||
|
|
|
@ -109,4 +109,5 @@ class Weeb(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = Weeb
|
||||
|
|
|
@ -127,4 +127,5 @@ class zdf_mediathek(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = zdf_mediathek
|
||||
|
|
|
@ -94,4 +94,5 @@ class Zhanqitv(Plugin):
|
|||
if http_stream:
|
||||
yield "http", http_stream
|
||||
|
||||
|
||||
__plugin__ = Zhanqitv
|
||||
|
|
|
@ -450,5 +450,6 @@ class Streamlink(object):
|
|||
def version(self):
|
||||
return __version__
|
||||
|
||||
|
||||
__all__ = ["Streamlink"]
|
||||
|
||||
|
|
|
@ -264,4 +264,5 @@ class AkamaiHDStream(Stream):
|
|||
|
||||
return StreamIOThreadWrapper(self.session, stream.open())
|
||||
|
||||
|
||||
__all__ = ["AkamaiHDStream"]
|
||||
|
|
|
@ -70,4 +70,5 @@ class ConsoleOutput(object):
|
|||
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
__all__ = ["ConsoleOutput"]
|
||||
|
|
|
@ -171,4 +171,5 @@ class PlayerOutput(Output):
|
|||
else:
|
||||
self.player.stdin.write(data)
|
||||
|
||||
|
||||
__all__ = ["PlayerOutput", "FileOutput"]
|
||||
|
|
|
@ -53,4 +53,5 @@ class TestPlugin(Plugin):
|
|||
|
||||
return streams
|
||||
|
||||
|
||||
__plugin__ = TestPlugin
|
||||
|
|
|
@ -30,6 +30,7 @@ class TestSession(unittest.TestCase):
|
|||
self.logger.debug("test")
|
||||
self.assertEqual(self.output.getvalue(), "[test][debug] test\n")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ class TestOptions(unittest.TestCase):
|
|||
self.options.set("a_option", "option")
|
||||
self.assertEqual(self.options.get("a_option"), "option")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
|
|
@ -47,5 +47,6 @@ class TestPluginAPIHTTPSession(unittest.TestCase):
|
|||
|
||||
self.assertEqual(HTTPSession.json(res), {u"test": u"\u0391 and \u03a9"})
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -97,5 +97,6 @@ class TestSession(unittest.TestCase):
|
|||
self.assertTrue("support" in streams)
|
||||
self.assertTrue(isinstance(streams["support"], HTTPStream))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
|
@ -79,4 +79,4 @@ class TestUtil(unittest.TestCase):
|
|||
def test_parse_qsd(self):
|
||||
self.assertEqual(
|
||||
{"test": "1", "foo": "bar"},
|
||||
parse_qsd("test=1&foo=bar", schema=validate.Schema({"test": validate.text, "foo": "bar"})))
|
||||
parse_qsd("test=1&foo=bar", schema=validate.Schema({"test": validate.text, "foo": "bar"})))
|
||||
|
|
Loading…
Reference in New Issue