Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/littlecodersh/danmu
Python 弹幕包 A live danmu package for python
https://github.com/littlecodersh/danmu
bilibili danmu douyu panda
Last synced: about 23 hours ago
JSON representation
Python 弹幕包 A live danmu package for python
- Host: GitHub
- URL: https://github.com/littlecodersh/danmu
- Owner: littlecodersh
- License: other
- Created: 2016-08-01T12:59:26.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-11T17:55:53.000Z (almost 7 years ago)
- Last Synced: 2024-10-30T02:37:15.801Z (15 days ago)
- Topics: bilibili, danmu, douyu, panda
- Language: Python
- Size: 33.2 KB
- Stars: 719
- Watchers: 37
- Forks: 149
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# danmu
![py2][py2] ![py3][py3] [English Version][english_version]
danmu 是一个开源的直播平台弹幕接口,使用他没什么基础的你也可以轻松的操作各平台弹幕。
使用不到三十行代码,你就可以使用Python基于弹幕进一步开发。
支持斗鱼、熊猫、战旗、全民、Bilibili多平台弹幕。
支持各版本Python,无平台依赖,方便各类开发者、爱好者使用。
一次开启,主播上线自动连接,下线后上线自动重连。
经过深度优化,几乎不漏过任何一条弹幕;使用抽象构架,方便修改与开发。
## Documents
你可以在[这里][document]获取使用帮助。
## Installation
可以通过本命令安装 danmu:
```bash
pip install danmu
```## Simple uses
通过如下代码,可以初步通过Python对弹幕进行处理。
```python
import time, sysfrom 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!' % msg['NickName'])@dmc.other
def other_fn(msg):
pp('Other message received')dmc.start(blockThread = True)
```## Screenshot
![screenshot][screenshot]
## Advanced uses
### 设置默认的消息处理方式
消息被分为三种类型注册:danmu, gift, other
分别对应:普通弹幕,礼物消息,其他消息
如果某种类型没有注册过,将会使用默认方法,默认方法的注册方式如下:
```python
from danmu import DanMuClientdmc = DanMuClient('http://www.douyu.com/lslalala')
@dmc.default
def default_fn(msg):
pp('[%s] %s' % (msg['NickName'], msg['Content']))
```### 取消已经注册过的方法
通过以下方式可以取消某一种类型的注册。
```python
from danmu import DanMuClientdmc = DanMuClient('http://www.douyu.com/lslalala')
dmc.default(None)
dmc.gift(None)
```## FAQ
Q: 获取的消息格式都是什么?
A: 消息为一个字典,必有三个键:NickName、Content、MsgType,对应用户名、消息内容、消息类型。
## Comments
如果有什么问题或者建议都可以在这个[Issue][issue#2]和我讨论
或者也可以在gitter上交流:[![gitter][gitter_picture]][gitter]
[py2]: https://img.shields.io/badge/python-2.7-ff69b4.svg "python2"
[py3]: https://img.shields.io/badge/python-3.5-red.svg "python3"
[english_version]: https://github.com/littlecodersh/danmu/blob/master/README_EN.md
[document]: http://danmu.readthedocs.io/zh_CN/latest/
[screenshot]: http://7xrip4.com1.z0.glb.clouddn.com/danmu/demo.png?imageView/2/w/400/ "screenshot"
[issue#2]: https://github.com/littlecodersh/danmu/issues/2
[gitter_picture]: https://badges.gitter.im/littlecodersh/danmu.svg "gitter"
[gitter]: https://gitter.im/littlecodersh/danmu?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge