Comments (26)
@fuzhuo
@subtank
chatroom --> chatinfo
from danmu.
import time, sys
from danmu import DanMuClient
def pp(msg):
print(msg.encode(sys.stdin.encoding, 'ignore').
decode(sys.stdin.encoding))
#dmc = DanMuClient('https://www.douyu.com/32892')
#dmc = DanMuClient('https://live.bilibili.com/324')
dmc = DanMuClient('https://www.panda.tv/66666')
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)
+1
from danmu.
顶一个
from danmu.
@songtianyi ???
from danmu.
后一条看不懂,修改哪里
from danmu.
@songtianyi thanks, 看起来可以
http 'http://www.panda.tv/ajax_chatinfo?roomid=66666&_=1500220999'
from danmu.
@songtianyi 搞定,万分感谢。
@fuzhuo 你去修改一下Python\Lib\site-packages\danmu\目录下的32行代码就好了
from danmu.
@subtank
你们能连上服务器不,我这边还是没反应
from danmu.
@songtianyi 可以了,你要修改我说的那个文件对应位置
from danmu.
@subtank
改了啊,是我提出的方法啊
from danmu.
那就不知道了
from danmu.
@subtank 提个PR吧
from danmu.
@subtank
@fuzhuo
你们了解他发的内容不,我不是很懂python
第一个包
4 byte 消息类型
2 byte 数据大小,不包括消息类型
数据
4 byte 心跳包
不知道为什么第一个认证包 要带上心跳包
from danmu.
@songtianyi
我是做了个objc的实现,第一个心跳包是单独发的不是带上的吧?
难道不是先发个房间认证包,包含rid appid ts sign authType之类的
再发第一个心跳包
接下来进入异步读取弹幕消息的循环
然后开始定时发心跳包
from danmu.
@fuzhuo
作者的第一个心跳包是和认证包一起的。
你的能work不?
from danmu.
@songtianyi 可以work,我是分开发的,tvOS上正常弹幕。但没试过不知道第一个心跳包有没有时间限制,也许在超时前发就好了
from danmu.
@fuzhuo
你是按照我刚才说的 协议方式发的不?
数据大小 2个字节,一般都是用4个字节的,所以我有点怀疑。
from danmu.
@songtianyi 发送时数据大小不是两个字节而是一个字节吧,也许熊猫觉得进入房间的字符串长度是比较固定的不会超过256一个字节足以。这个python里第一个心跳确实一起发了,我分开发也没问题
data = (b'\x00\x06\x00\x02\x00' + pack('B', len(data)) +
data.encode('utf8') + b'\x00\x06\x00\x00')
from danmu.
@fuzhuo
两个字节啊,
\x00\x06\x00\x02\x00
最后的\x00 其实是长度的前半部分,作者的实现是有问题的。
你是直接用的他的代码还是自己开发的?
from danmu.
@songtianyi 嗯,多谢,你这样理解应该更合理,多出一字节有点怪怪的,可能在实际使用过程中长度没遇到过超过256,于是那个字节固定是0x00,所以作者的实现暂时使用不会出问题。我的是自己开发的oc版,但协议跟作者的实现用的一样的
from danmu.
@fuzhuo
看来我还是得自己抓包看下才行
from danmu.
@songtianyi 除非遇到验证包的长度值一个字节容纳不了才能验证你的想法,估计很难验证了
from danmu.
目前来看,panda的弹幕协议设计的比较混乱,收到的包不带长度,固定以ack开头,中间有一段不固定长度的内容,之后是json弹幕。
buffer要留的足够大即可。
from danmu.
不过我跑一段时间 会出现EOF
from danmu.
@fuzhuo 又挂了求帮忙。
from danmu.
又挂了
from danmu.
Related Issues (20)
- cannot import name 'DanMuClient' HOT 4
- 记录器失效 HOT 3
- pandatv 运行无反应
- 斗鱼弹幕部分失效 HOT 3
- HuomaoTV 失效求助 HOT 4
- b站失效了 HOT 4
- zhanqi.tv也失效了
- 淘宝直播的弹幕支持吗? HOT 1
- 可以发弹幕么?
- 大神,能不能写个虎牙的plugin
- 0000
- [bug]斗鱼礼物消息重复
- 其他平台实现问题
- __init__.py里面set_logging并未使用且会造成重复输出
- 不支持网易cc
- DouYu Danmu issue HOT 2
- 斗鱼收不到XXX欢迎来到本直播间的系统消息?
- 怎么停止正在爬取的弹幕操作
- 斗鱼新的url地址获取不到roomid
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from danmu.