废话不多,先上演示代码, py2 与 py3 及全平台支持。
源代码见这里,欢迎 Star 与 Fork 。
import time, sys
from danmu import DanMuClient
def pp(msg):
print(msg.encode(sys.stdin.encoding, 'ignore').
decode(sys.stdin.encoding))
dmc = DanMuClient('http://www.douyu.com/lslalala')
if not dmc.isValid(): print('Url not valid')
@dmc.danmu
def danmu_fn(msg):
pp('[%s] %s' % (msg['NickName'], msg['Content']))
@dmc.gift
def gift_fn(msg):
pp('[%s] sent a gift!' % content['NickName'])
@dmc.other
def other_fn(msg):
pp('Other message received')
dmc.start(blockThread = True)
danmu 是一个开源的直播平台弹幕接口,使用他没什么基础的你也可以轻松的操作各平台弹幕。
使用不到三十行代码,你就可以使用 Python 基于弹幕进一步开发。
支持斗鱼、熊猫、战旗、全民多平台弹幕。
支持各版本 Python ,无平台依赖,方便各类开发者、爱好者使用。
一次开启,主播上线自动连接,下线后上线自动重连。
经过深度优化,几乎不漏过任何一条弹幕;使用抽象构架,方便修改与开发。
可以通过本命令安装 danmu :
pip install danmu
你可以在这里获取使用帮助。
消息被分为三种类型注册: danmu, gift, other
分别对应:普通弹幕,礼物消息,其他消息
如果某种类型没有注册过,将会使用默认方法,默认方法的注册方式如下:
from danmu import DanMuClient
dmc = DanMuClient('http://www.douyu.com/lslalala')
@dmc.default
def default_fn(msg):
pp('[%s] %s' % (msg['NickName'], msg['Content']))
通过以下方式可以取消某一种类型的注册。
from danmu import DanMuClient
dmc = DanMuClient('http://www.douyu.com/lslalala')
dmc.default(None)
dmc.gift(None)
如果有什么问题或者建议都可以在这个Issue和我讨论
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.