Add blank line after class or function definition (#408)

This commit is contained in:
stepshal 2017-01-12 21:54:55 +07:00 committed by beardypig
parent 6cce32a58d
commit 922e169207
92 changed files with 95 additions and 3 deletions

View File

@ -135,5 +135,6 @@ def main():
# Blocks until playback is done
player.play(stream)
if __name__ == "__main__":
main()

View File

@ -161,4 +161,5 @@ class RingBuffer(Buffer):
def is_full(self):
return self.free == 0
__all__ = ["Buffer", "RingBuffer"]

View File

@ -90,4 +90,5 @@ class Cache(object):
else:
return default
__all__ = ["Cache"]

View File

@ -57,4 +57,5 @@ class LoggerModule(object):
def debug(self, msg, *args, **kwargs):
self.manager.msg(self.module, 4, msg, *args, **kwargs)
__all__ = ["Logger"]

View File

@ -13,4 +13,5 @@ class Options(object):
if key in self.options:
return self.options[key]
__all__ = ["Options"]

View File

@ -127,4 +127,5 @@ class AMFPacket(Packet):
return cls(version, headers, messages)
__all__ = ["AMFPacket", "AMFHeader", "AMFMessage"]

View File

@ -1058,6 +1058,7 @@ class BoxPayloadMETA(BoxContainer):
class BoxPayloadDINF(BoxContainerSingle):
pass
PayloadTypes = {
"ftyp": BoxPayloadFTYP,
"mvhd": BoxPayloadMVHD,

View File

@ -9,4 +9,5 @@ class F4VError(Exception):
class AMFError(Exception):
pass
__all__ = ["FLVError", "F4VError", "AMFError"]

View File

@ -60,4 +60,5 @@ class TagData(Packet):
else:
return len(self.data)
__all__ = ["Packet", "TagData"]

View File

@ -883,6 +883,7 @@ class AMF0Value(ScriptDataValue):
class AMF0String(ScriptDataString):
pass
AMF0Number = ScriptDataNumber
AMF3Double = ScriptDataNumber

View File

@ -75,6 +75,7 @@ class ErrorReturnCode(Exception):
class CommandNotFound(Exception): pass
rc_exc_regex = re.compile("ErrorReturnCode_(\d+)")
rc_exc_cache = {}

View File

@ -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

View File

@ -85,4 +85,5 @@ class Aftonbladet(Plugin):
return streams
__plugin__ = Aftonbladet

View File

@ -71,4 +71,5 @@ class Aliez(Plugin):
return streams
__plugin__ = Aliez

View File

@ -46,4 +46,5 @@ class Antenna(Plugin):
return streams
__plugin__ = Antenna

View File

@ -47,4 +47,5 @@ class ard_live(Plugin):
return streams
__plugin__ = ard_live

View File

@ -127,4 +127,5 @@ class ard_mediathek(Plugin):
self.logger.error("Failed to extract {0} streams: {1}",
parser_name, err)
__plugin__ = ard_mediathek

View File

@ -107,4 +107,5 @@ class ArteTV(Plugin):
return chain.from_iterable(streams)
__plugin__ = ArteTV

View File

@ -94,4 +94,5 @@ class AzubuTV(Plugin):
return streams
__plugin__ = AzubuTV
__plugin__ = AzubuTV

View File

@ -61,4 +61,5 @@ class Beam(Plugin):
return streams
__plugin__ = Beam

View File

@ -66,4 +66,5 @@ class Bigo(Plugin):
sid, uid, ip, port = flashvars.groups()
yield "live", BigoStream(self.session, sid, uid, ip, port)
__plugin__ = Bigo

View File

@ -54,4 +54,5 @@ class Bilibili(Plugin):
stream = HTTPStream(self.session, url)
yield name, stream
__plugin__ = Bilibili

View File

@ -70,4 +70,5 @@ class bliptv(Plugin):
streams[quality_dict[stream['video_bitrate']]] = HTTPStream(self.session, stream['direct_url'])
return streams
__plugin__ = bliptv

View File

@ -150,4 +150,5 @@ class bongacams(Plugin):
return {'live': stream}
__plugin__ = bongacams

View File

@ -33,4 +33,5 @@ class Chaturbate(Plugin):
return HLSStream.parse_variant_playlist(self.session, playlist_url)
__plugin__ = Chaturbate

View File

@ -26,4 +26,5 @@ class ConnectCast(Plugin):
return dict(live=RTMPStream(self.session, params))
__plugin__ = ConnectCast

View File

@ -330,4 +330,5 @@ class Crunchyroll(Plugin):
return api
__plugin__ = Crunchyroll

View File

@ -197,4 +197,5 @@ class DailyMotion(Plugin):
return self._get_streams_from_media(media_id)
__plugin__ = DailyMotion

View File

@ -36,4 +36,5 @@ class DisneyDE(Plugin):
return HLSStream.parse_variant_playlist(self.session, stream_url)
__plugin__ = DisneyDE

View File

@ -163,4 +163,5 @@ class Douyutv(Plugin):
stream = HTTPStream(self.session, url)
yield "low", stream
__plugin__ = Douyutv

View File

@ -155,4 +155,5 @@ class Dplay (Plugin):
# Feed stream data to mapper and return all streams found
return mapper (streams)
__plugin__ = Dplay

View File

@ -137,4 +137,5 @@ class DRDK(Plugin):
return streams
__plugin__ = DRDK

View File

@ -74,4 +74,5 @@ class Euronews(Plugin):
else:
return self._get_vod_stream()
__plugin__ = Euronews

View File

@ -67,4 +67,5 @@ class Expressen(Plugin):
return streams
__plugin__ = Expressen
__plugin__ = Expressen

View File

@ -146,4 +146,5 @@ class Filmon(Plugin):
if match:
return self._get_live_streams(match.group(1))
__plugin__ = Filmon

View File

@ -130,4 +130,5 @@ class Filmon_us(Plugin):
return
__plugin__ = Filmon_us

View File

@ -38,4 +38,5 @@ class Furstream(Plugin):
return dict(live=stream)
__plugin__ = Furstream

View File

@ -106,4 +106,5 @@ class GamingLive(Plugin):
elif type == "videos":
return self._get_vod_streams(match.group("name"))
__plugin__ = GamingLive

View File

@ -49,4 +49,5 @@ class GOMeXP(Plugin):
return streams
__plugin__ = GOMeXP

View File

@ -52,4 +52,5 @@ class GoodGame(Plugin):
return streams
__plugin__ = GoodGame

View File

@ -191,4 +191,5 @@ class Hitbox(Plugin):
else:
return self._get_video_streams(player)
__plugin__ = Hitbox

View File

@ -59,4 +59,5 @@ class Huajiao(Plugin):
stream = HTTPStream(self.session, video_data['main'])
yield "live", stream
__plugin__ = Huajiao

View File

@ -51,4 +51,5 @@ class INE(Plugin):
if source["type"] == "hls":
return HLSStream.parse_variant_playlist(self.session, "https:" + source["file"])
__plugin__ = INE

View File

@ -39,4 +39,5 @@ class LivecodingTV(Plugin):
elif stream_type == "video/mp4":
yield 'vod', HTTPStream(self.session, url)
__plugin__ = LivecodingTV

View File

@ -47,4 +47,5 @@ class LiveMe(Plugin):
if video:
yield "live", video
__plugin__ = LiveMe

View File

@ -121,4 +121,5 @@ class Livestream(Plugin):
for stream in streams.items():
yield stream
__plugin__ = Livestream

View File

@ -195,4 +195,5 @@ class media_ccc_de(Plugin):
return streams
__plugin__ = media_ccc_de

View File

@ -61,4 +61,5 @@ class Mips(Plugin):
return streams
__plugin__ = Mips

View File

@ -92,4 +92,5 @@ class MLGTV(Plugin):
return mapper(items)
__plugin__ = MLGTV

View File

@ -73,4 +73,5 @@ class NOS(Plugin):
else:
return self._get_source_streams()
__plugin__ = NOS

View File

@ -90,4 +90,5 @@ class NPO(Plugin):
else:
return self._get_vod_streams()
__plugin__ = NPO

View File

@ -60,4 +60,5 @@ class NRK(Plugin):
return HLSStream.parse_variant_playlist(self.session, media_url)
__plugin__ = NRK

View File

@ -32,4 +32,5 @@ class OPENRECtv(Plugin):
return HLSStream.parse_variant_playlist(self.session, playlist_url)
__plugin__ = OPENRECtv

View File

@ -49,4 +49,5 @@ class ORFTVThek(Plugin):
return streams
__plugin__ = ORFTVThek

View File

@ -85,5 +85,6 @@ class pandatv(Plugin):
return streams
__plugin__ = pandatv

View File

@ -53,4 +53,5 @@ class Periscope(Plugin):
else:
return
__plugin__ = Periscope

View File

@ -67,4 +67,5 @@ class Piczel(Plugin):
return
__plugin__ = Piczel

View File

@ -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

View File

@ -55,4 +55,5 @@ class Rtve(Plugin):
return HLSStream.parse_variant_playlist(self.session, hls_url)
__plugin__ = Rtve

View File

@ -42,4 +42,5 @@ class SeeMePlay(Plugin):
stream = HTTPStream(self.session, res["url"])
return dict(video=stream)
__plugin__ = SeeMePlay

View File

@ -38,4 +38,5 @@ class sportschau(Plugin):
return HDSStream.parse_manifest(self.session, stream_metadata['mediaResource']['dflt']['videoURL']).items()
__plugin__ = sportschau

View File

@ -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

View File

@ -23,4 +23,5 @@ class StreamBoat(Plugin):
url = 'http://{}{}'.format(cdn, playlist_url)
return dict(source=HLSStream(self.session, url))
__plugin__ = StreamBoat

View File

@ -84,4 +84,5 @@ class Streamingvideoprovider(Plugin):
except PluginError as err:
self.logger.error("Unable to extract HLS stream: {0}", err)
__plugin__ = Streamingvideoprovider

View File

@ -56,4 +56,5 @@ class StreamLive(Plugin):
return mapper(urls)
__plugin__ = StreamLive

View File

@ -23,4 +23,5 @@ class StreamMe(Plugin):
except KeyError:
return {}
__plugin__ = StreamMe

View File

@ -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

View File

@ -88,4 +88,5 @@ class SVTPlay(Plugin):
return mapper(videos)
__plugin__ = SVTPlay

View File

@ -113,4 +113,5 @@ class Tga(Plugin):
elif cid != 0:
return self._get_plu_streams(cid)
__plugin__ = Tga

View File

@ -35,4 +35,5 @@ class Tigerdile(Plugin):
return streams
__plugin__ = Tigerdile

View File

@ -69,4 +69,5 @@ class TV4Play(Plugin):
return streams
__plugin__ = TV4Play

View File

@ -76,4 +76,5 @@ class TV8cat(Plugin):
"playpath": source.get("stream_name")})
yield q, s
__plugin__ = TV8cat

View File

@ -623,4 +623,5 @@ class UStreamTV(Plugin):
if channel_id:
return self._get_live_streams(channel_id)
__plugin__ = UStreamTV

View File

@ -101,4 +101,5 @@ class VaughnLive(Plugin):
return dict(live=stream)
__plugin__ = VaughnLive

View File

@ -59,4 +59,5 @@ class Veetle(Plugin):
return {name: stream}
__plugin__ = Veetle

View File

@ -156,4 +156,5 @@ class VGTV(Plugin):
return streams
__plugin__ = VGTV

View File

@ -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

View File

@ -65,4 +65,5 @@ class WAT(Plugin):
return token
__plugin__ = WAT

View File

@ -55,4 +55,5 @@ class WebTV(Plugin):
except IOError:
self.logger.warning("Could not open the stream, perhaps the channel is offline")
__plugin__ = WebTV

View File

@ -109,4 +109,5 @@ class Weeb(Plugin):
return streams
__plugin__ = Weeb

View File

@ -127,4 +127,5 @@ class zdf_mediathek(Plugin):
return streams
__plugin__ = zdf_mediathek

View File

@ -94,4 +94,5 @@ class Zhanqitv(Plugin):
if http_stream:
yield "http", http_stream
__plugin__ = Zhanqitv

View File

@ -450,5 +450,6 @@ class Streamlink(object):
def version(self):
return __version__
__all__ = ["Streamlink"]

View File

@ -264,4 +264,5 @@ class AkamaiHDStream(Stream):
return StreamIOThreadWrapper(self.session, stream.open())
__all__ = ["AkamaiHDStream"]

View File

@ -70,4 +70,5 @@ class ConsoleOutput(object):
sys.exit(1)
__all__ = ["ConsoleOutput"]

View File

@ -171,4 +171,5 @@ class PlayerOutput(Output):
else:
self.player.stdin.write(data)
__all__ = ["PlayerOutput", "FileOutput"]

View File

@ -53,4 +53,5 @@ class TestPlugin(Plugin):
return streams
__plugin__ = TestPlugin

View File

@ -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()

View File

@ -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()

View File

@ -47,5 +47,6 @@ class TestPluginAPIHTTPSession(unittest.TestCase):
self.assertEqual(HTTPSession.json(res), {u"test": u"\u0391 and \u03a9"})
if __name__ == "__main__":
unittest.main()

View File

@ -97,5 +97,6 @@ class TestSession(unittest.TestCase):
self.assertTrue("support" in streams)
self.assertTrue(isinstance(streams["support"], HTTPStream))
if __name__ == "__main__":
unittest.main()

View File

@ -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"})))