Giter Club home page Giter Club logo

bililive_dm's People

Contributors

copyliu avatar dependabot[bot] avatar genteure avatar iredmond avatar luncode avatar no5972 avatar shiori514 avatar wzxjohn avatar xqq avatar zchidori avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bililive_dm's Issues

希望优化侧面板内容

侧面板的显示的效果不大美观,希望能够优化一下:

  1. 目前观众互动同时管理了进入直播间和打赏道具的信息,能否给他们单独的开关,比如不看进入直播间的信息但是看到打赏道具的信息
  2. 增加自动过滤功能,当弹幕较多时,按照优先等级过滤这些内容。当弹幕较薄时,显示用户勾选的全部内容,从而让面板显示的内容数量较为稳定:
    a 上线信息。b 礼物较多时 价格较低的礼物忽略赠送人,替换为礼物名xN d 观众的相似言论

请教礼物实时获取的实现原理

由于我的电脑是MacOS,因此无缘直接使用弹幕姬(除非装双系统),于是我用Python写了个轻型程序,用于监控关注粉丝变化,并通过POST的方法发感谢弹幕和定时的欢迎弹幕。所以想再增加一些功能,比如感谢礼物

在分析礼物信息来源时,发现这个数据应该是通过JS控制下面的div容器实现的

<div class="penury-gift-msg w-100 p-relative over-hidden" id="penury-gift-msg">
  <div class="penury-gift-item v-middle a-move-out-bottom">
    <span class="username v-middle">某位粉丝的姓名</span>
    <span class="action v-middle">喂食辣条</span>
    <div class="dp-i-block v-middle">
      <div class="gift-frame gift-1-20" style="width: 20px; height: 20px;"></div>
    </div>
    <span class="count">X 1</span>
  </div>
</div>

由于我使用Python习惯直接通过URL来GET和POST来实现某个功能,如果直接将整个网页的代码GET下来再解析并正则匹配的话效率太低,我看了下弹幕姬官网上是安装插件实现的,但dll文件没法解读,所以想请教一下您在这方面是如何实现的 ?

今天自动更新后不能建立连接了

在我的Windows 7 SP1服务器以及我的Windows 10 1909电脑上均出现以下三个错误中的一种,旧版本没有这个问题,如果勾选了自动重连就无限刷这些错误了,不勾选也是无法连接,显示连接成功后立即报错断开。只安装了“更多日志”这个插件,停用插件问题依旧
服务器没有安装杀毒软件,个人电脑安装了火绒

15:21:59 : 連線被斷開: 開發者資訊System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 BiliDMLib.utils.ReadB(NetworkStream stream, Byte[] buffer, Int32 offset, Int32 count)
在 BiliDMLib.DanmakuLoader.ReceiveMessageLoop()

15:22:51 : 連線被斷開: 開發者資訊System.ObjectDisposedException: 无法访问已释放的对象。
在 BiliDMLib.utils.ReadB(NetworkStream stream, Byte[] buffer, Int32 offset, Int32 count)
在 BiliDMLib.DanmakuLoader.ReceiveMessageLoop()

15:23:38 : 連線被斷開: 開發者資訊System.IO.IOException: 无法从传输连接中读取数据: 你的主机中的软件中止了一个已建立的连接。。 ---> System.Net.Sockets.SocketException: 你的主机中的软件中止了一个已建立的连接。
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
在 BiliDMLib.utils.ReadB(NetworkStream stream, Byte[] buffer, Int32 offset, Int32 count)
在 BiliDMLib.DanmakuLoader.ReceiveMessageLoop()

弹幕姬打不开

今天打开弹幕姬,提示更新,更新之后,打开弹幕姬,只显示如下图
image
然后就没反应了

最近所有带版本检查的插件都出现以下错误提示

2:22:21 : 房管助手重制版 版本检查失败 : The operation has timed out
2:22:21 : 更多日志 版本检查失败 : The operation has timed out
2:22:21 : 礼物统计 版本检查失败 : The remote name could not be resolved: 'www.danmuji.cn'
2:22:21 : 管理直播间小工具 版本检查失败 : The operation has timed out
2:23:42 : 登录中心 版本检查失败:The operation has timed out

不知道为什么。。。重装弹幕姬本体和插件也不管用。。。

运行setup.exe时报错Application cannot be started

可能和我曾经将User AppData的文件夹Location属性从C盘更改到E盘有关

Log 如下:

PLATFORM VERSION INFO
Windows : 10.0.16299.0 (Win32NT)
Common Language Runtime : 4.0.30319.42000
System.Deployment.dll : 4.7.2556.0 built by: NET471REL1
clr.dll : 4.7.2633.0 built by: NET471REL1LAST_C
dfdll.dll : 4.7.2556.0 built by: NET471REL1
dfshim.dll : 10.0.16299.15 (WinBuild.160101.0800)

SOURCES
Deployment url : http://soft.ceve-market.org/bilibili_dm/Bililive_dm.application

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://soft.ceve-market.org/bilibili_dm/Bililive_dm.application resulted in exception. Following failure messages were detected:
+ Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [4/8/2018 4:36:24 PM] : Activation of http://soft.ceve-market.org/bilibili_dm/Bililive_dm.application has started.

ERROR DETAILS
Following errors were detected during this operation.
* [4/8/2018 4:36:24 PM] System.UnauthorizedAccessException
- Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
- Source: System.Deployment
- Stack trace:
at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(UInt32 Flags, IntPtr hToken, Guid& riid)
at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore()
at System.Deployment.Application.ComponentStore..ctor(ComponentStoreType storeType, SubscriptionStore subStore)
at System.Deployment.Application.SubscriptionStore..ctor(String deployPath, String tempPath, ComponentStoreType storeType)
at System.Deployment.Application.SubscriptionStore.get_CurrentUser()
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

代码重构和系统兼容性改进建议

我粗略地阅读了这个程序的源码,并对它有了一定了解。从中我看出了一些显著的问题,会阻碍今后的软件维护。

应用架构设计问题

这个软件是 Code Behind 模式的 WPF 应用,并且代码长度已经有一定规模了。这种情况下应当考虑选择使用 Mvvm 模式重构代码。Code Behind 模式将逻辑、数据结构 与 UI 代码混杂在一起,按理说这样的写法应当仅存在于原型制作阶段(急于看到第一个成品),而不应该在软件有一定规模的情况下使用。

纯托管化改造

Windows 10 要出 ARM64 版本了,而这个项目包含一些本机 C++ 动态链接库。这种混用非微软提供的本机动态链接库和托管代码的方式会阻碍应用程序今后的移植工作,或者在 ARM64 设备上大幅降低性能。有关如何使用托管代码重写弹幕窗口,可以参考 http://sharpdx.org/wiki/class-library-api/directcomposition/

针对平台的自适应代码

我注意到一些选项是不应该留给用户去选择的。比如说 Direct Composition 弹幕渲染模式。这个模式应该在 Windows 8 或更高的系统自动打开,在 Windows 7 自动关闭。如果这个设置被误用,会对游戏主播带来困扰。目前这种优化的渲染技术被证实是稳定的。因为 Windows 商店上大多数应用在用这种渲染机制,它们没有因为绘图 API 有问题而出现诡异的行为。反倒是使用旧式绘图方式 (LayeredWindow) 的软件容易出问题。

自定义缩放支持

如果你的应用目标 .NET Framework 版本低于 4.7.2 Preview, 那么你的 WPF 应用是没有针对每个显示器的 DPI 感知功能的。这样如果用户更改缩放比例或者使用远程桌面,你的应用会变得模糊。在这方面我研究过怎样在低版本实现逐监视器 DPI 感知,可以看看我的仓库 https://github.com/Nukepayload2/WPF_Borderless_Window/ 里的 Demo,并在 Nuget 上安装我帮你们编译好的类库。

Exception of type 'System.OutOfMemoryException' was thrown.

我是使用了您的DanmakuLoader相关的类构建我的程序,仅仅在原文件的基础上修改了一下调试输出信息,然后引用进我构建的程序,一切在多天的开发中都没有什么问题,直到今天我碰到了一个希望却无法重现的OutOfMemory异常,由DanmakuLoader.cs:line 177导致,后面再次测试的时候,使用过相同或者不同的RoomId,但是也没能再次发现这个异常,由于对bilibili的api不太了解,我不太清楚原因,我将当时的一些调试输出信息贴上,希望有空可以指教下。`
error

弹幕姬安装失败,是什么问题?

试图下载“https://soft.ceve-market.org/bilibili_dm/Bililive_dm.application”时发生错误。

有关详细信息,请参阅位于“C:\Users\傻猪\AppData\Local\Temp\VSD6667.tmp\install.log”的安装日志文件。

The following properties have been set:
Property: [AdminUser] = true {boolean}
Property: [InstallMode] = HomeSite {string}
Property: [NTProductType] = 1 {int}
Property: [ProcessorArchitecture] = AMD64 {string}
Property: [VersionNT] = 10.0.0 {version}
Running checks for package 'Microsoft .NET Framework 4.6.2 (x86 和 x64)', phase BuildList
Reading value 'Release' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full'
Read integer value 461814
Setting value '461814 {int}' for property 'DotNet462Full_Release'
Reading value 'v4' of registry key 'HKLM\SOFTWARE\Microsoft\NET Framework Setup\OS Integration'
Read integer value 1
Setting value '1 {int}' for property 'DotNet462Full_OSIntegrated'
Reading value 'Release' of registry key 'HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full\2052'
Read integer value 461814
Setting value '461814 {int}' for property 'DotNet462FullLangPack_Release'
Reading value 'LCID' of registry key 'HKLM\SYSTEM\CurrentControlSet\Control\MUI\UILanguages\zh-CN'
Read integer value 2052
Setting value '2052 {int}' for property 'DotNet462FullLangPack_OS_LCID'
Reading value 'v4' of registry key 'HKLM\SOFTWARE\Microsoft\NET Framework Setup\OS Integration'
Read integer value 1
Setting value '1 {int}' for property 'DotNet462FullLangPack_OSIntegrated'
The following properties have been set for package 'Microsoft .NET Framework 4.6.2 (x86 和 x64)':
Property: [DotNet462FullLangPack_OSIntegrated] = 1 {int}
Property: [DotNet462FullLangPack_OS_LCID] = 2052 {int}
Property: [DotNet462FullLangPack_Release] = 461814 {int}
Property: [DotNet462Full_OSIntegrated] = 1 {int}
Property: [DotNet462Full_Release] = 461814 {int}
Running checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-ENU.exe'
Result of running operator 'ValueEqualTo' on property 'InstallMode' and value 'HomeSite': true
Result of checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-ENU.exe' is 'Bypass'
Running checks for command 'DotNetFX462\NDP462-KB3151802-Web.exe'
Result of running operator 'ValueNotEqualTo' on property 'InstallMode' and value 'HomeSite': false
Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet462Full_Release' and value '394802': true
Result of checks for command 'DotNetFX462\NDP462-KB3151802-Web.exe' is 'Bypass'
Running checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet462FullLangPack_Release' and value '394802': true
Result of checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe' is 'Bypass'
Running checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe'
Result of running operator 'ValueGreaterThanEqualTo' on property 'DotNet462FullLangPack_Release' and value '394802': true
Result of checks for command 'DotNetFX462\NDP462-KB3151800-x86-x64-AllOS-CHS.exe' is 'Bypass'
'Microsoft .NET Framework 4.6.2 (x86 和 x64)' RunCheck result: No Install Needed
Launching Application.
URLDownloadToCacheFile failed with HRESULT '-2146697211'
Error: 试图下载“https://soft.ceve-market.org/bilibili_dm/Bililive_dm.application”时发生错误。

未做粘包处理?

大概看了看代码来学习了一下,但是我自己抓取的一部分测试数据中(我用的ws,看代码用的是tcp所以不太确定是否有相同问题),有的时候发现header里面的长度跟整体长度不匹配,然后仔细一看,数据特别多的时候,服务器直接把两段消息直接连起来丢过来了(HEADER1 BODY1 HEADER2 BODY2)。我不太确定是否会处理后面那一段数据。

而且新弹幕协议Proto=2的时候,body里面套娃,还可能出现粘包???(我测试的时候中有遇到)
HEADER + DEFLATEBODY(HEADER1 + BODY1 + HEADER2 + BODY2)

下面是两段我自用项目里对这个部分处理的代码。
From https://github.com/toshiya14/LiveChatLib

        /// <summary>
        /// Split binary frame might contains multiple packages into package binary data enumerable.
        /// </summary>
        /// <param name="buffer">package binary data.</param>
        /// <returns></returns>
        private static IEnumerable<byte[]> SplitBuffer(byte[] buffer)
        {
            using (var ms = new MemoryStream(buffer))
            {
                ms.Seek(0, SeekOrigin.Begin);
                using (var reader = new BinaryReader(ms))
                {
                    while (ms.Position < ms.Length)
                    {
                        var length = reader.ReadBytes(4).ByteToInt32(true);
                        if (length > buffer.Length)
                        {
                            throw new Exception("Binary frame broken, package size:" + buffer.Length + ", size in header:" + length);
                        }
                        ms.Seek(-4, SeekOrigin.Current);
                        var pack = reader.ReadBytes(length);
                        yield return pack;
                    }
                }
            }
        }
                using(var ms = new MemoryStream(extracted))
                {
                    ms.Seek(0, SeekOrigin.Begin);
                    using (var reader = new BinaryReader(ms))
                    {
                        do
                        {
                            var p = new Package()
                            {
                                HeadLength = headlen,
                                ProtoVer = protover,
                                Sequence = sequence
                            };
                            var msgLength = reader.ReadBytes(4).ByteToInt32(true);
                            var msgHeaderLength = reader.ReadBytes(2).ByteToInt16(true);
                            var msgVer = reader.ReadBytes(2).ByteToInt16(true);
                            var msgAc = reader.ReadBytes(4).ByteToInt32(true);
                            var msgParam = reader.ReadBytes(4).ByteToInt32(true);
                            switch (msgAc)
                            {
                                case 3:
                                    p.MessageType = MsgType.ServerHeart;
                                    break;

                                case 5:
                                    p.MessageType = MsgType.Command;
                                    break;

                                case 8:
                                    p.MessageType = MsgType.Auth;
                                    break;
                            }
                            p.Body = reader.ReadBytes((int)(msgLength - 16));
                            list.Add(p);
                        } while (ms.Length - ms.Position > 16);
                    }
                    return list;
                }

弹幕侧栏在DX12 API的游戏下会冻结卡死

一些DX12游戏貌似会非常优先的占用系统GPU资源,游戏在窗口化/无边框情况下,只要游戏窗口在前台,弹幕侧栏就会进入5秒一帧左右的超卡状态,经常有弹幕显示在主窗口里,但是侧边栏根本弹不出来.

*将游戏锁帧,降低GPU占用率,可以解决
*OBS打开会使情况变得更糟
*Win10游戏模式关闭/开启,均不能解决这个问题
*GPU Hardware Accelerated Scheduling关闭/开启,均不能解决这个问题

不知道软件上有没有任何方法解决这个问题
希望没有太打扰。

弹幕姬配置保存功能

建议以下配置可以保存:

  • 侧边栏、弹幕、自动重连、保存到我的文档、道具和老爷、窗口置顶,这几个复选框的勾选状态
  • 插件的启用状态

利用monodevelop 在linux编译时报错 系统archlinux 64bit 如果有时间可否帮我看下报错的原因

Building Solution: Bililive_dm (Debug)

Building: BilibiliDM_PluginFramework (Debug)

Build started 2015/11/16 3:55:18.


Project "/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj" (Build target(s)):

Target PrepareForBuild:
    Configuration: Debug Platform: AnyCPU

Target ResolveAssemblyReferences:

/usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'PresentationCore' not resolved
For searchpath {CandidateAssemblyFiles}
Warning: {CandidateAssemblyFiles} not supported currently
For searchpath {HintPathFromItem}
HintPath attribute not found
For searchpath {TargetFrameworkDirectory}
Considered target framework dir /usr/lib/mono/4.0, assembly named 'PresentationCore' not found.
For searchpath {PkgConfig}
Considered PresentationCore, but could not find in any pkg-config files.
For searchpath {GAC}
Considered PresentationCore, but could not find in the GAC.
For searchpath {RawFileName}
For searchpath bin/Debug/
/usr/lib/mono/4.5/Microsoft.Common.targets: warning : Reference 'PresentationFramework' not resolved
For searchpath {CandidateAssemblyFiles}
Warning: {CandidateAssemblyFiles} not supported currently
For searchpath {HintPathFromItem}
HintPath attribute not found
For searchpath {TargetFrameworkDirectory}
Considered target framework dir /usr/lib/mono/4.0, assembly named 'PresentationFramework' not found.
For searchpath {PkgConfig}
Considered PresentationFramework, but could not find in any pkg-config files.
For searchpath {GAC}
Considered PresentationFramework, but could not find in the GAC.
For searchpath {RawFileName}
For searchpath bin/Debug/

Target GenerateSatelliteAssemblies:
No input files were specified for target GenerateSatelliteAssemblies, skipping.

Target GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because its outputs are up-to-date.

Target CoreCompile:
    Tool /usr/lib/mono/4.5/mcs.exe execution started with arguments: /noconfig /debug:full /debug+ /optimize- /out:obj/Debug/BilibiliDM_PluginFramework.dll DMPlugin.cs DanmakuModel.cs Events.cs GiftRank.cs Properties/AssemblyInfo.cs /target:library /define:"DEBUG;TRACE" /nostdlib /reference:/usr/lib/mono/4.0/System.dll /reference:/usr/lib/mono/4.0/System.Xaml.dll /reference:/usr/lib/mono/4.0/System.Xml.Linq.dll /reference:/usr/lib/mono/4.0/System.Data.DataSetExtensions.dll /reference:/usr/lib/mono/4.0/Microsoft.CSharp.dll /reference:/usr/lib/mono/4.0/System.Data.dll /reference:/usr/lib/mono/4.0/System.Xml.dll /reference:/usr/lib/mono/4.0/WindowsBase.dll /reference:../packages/Newtonsoft.Json.7.0.1/lib/net40/Newtonsoft.Json.dll /reference:../packages/JetBrains.Annotations.10.0.0/lib/net20/JetBrains.Annotations.dll /reference:/usr/lib/mono/4.0/System.Core.dll /reference:/usr/lib/mono/4.0/mscorlib.dll /warn:4

DMPlugin.cs(33,17): error CS0103: The name MessageBox' does not exist in the current context DMPlugin.cs(64,17): error CS0103: The nameMessageBox' does not exist in the current context
DMPlugin.cs(95,17): error CS0103: The name MessageBox' does not exist in the current context DMPlugin.cs(127,17): error CS0103: The nameMessageBox' does not exist in the current context
DMPlugin.cs(232,30): error CS0103: The name Application' does not exist in the current context DMPlugin.cs(248,30): error CS0103: The nameApplication' does not exist in the current context
Task "Csc" execution -- FAILED
Done building target "CoreCompile" in project "/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj".-- FAILED

Done building project "/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj".-- FAILED

Build FAILED.

Warnings:

/home/roy/Downloads/bililive_dm/BilibiliDM_PluginFramework/BilibiliDM_PluginFramework.csproj (Build) ->
/usr/lib/mono/4.5/Microsoft.Common.targets (ResolveAssemblyReferences target) ->

/usr/lib/mono/4.5/Microsoft.Common.targets:  warning : Reference 'PresentationCore' not resolved
/usr/lib/mono/4.5/Microsoft.Common.targets:  warning : Reference 'PresentationFramework' not resolved

Errors:

---------------------- 完成 ----------------------

构建:6 个错误, 2 个警告

一个来自房管的小建议

希望作者大大可以把日志里的弹幕进行左对齐,因为每个人ID长短的差异,导致弹幕不是从一个起点开始,大大降低了快速阅读的效率。因为目前是通过点击日志进行禁言操作,并且不是随时盯着弹幕看,经常需要快速阅读之前的弹幕看有没有搞事情的。要是有可能做到高亮显示某个ID的所有弹幕就更棒了,比如点击一个ID,他最近发的所有弹幕就会被高亮显示,就可以很轻易的发现谁搞事了。

安装后出现KERNELBASE.dll错误,请问如何 解决

win7系统
问题签名:
问题事件名称: APPCRASH
应用程序名: Bililive_dm.exe
应用程序版本: 1.1.0.0
应用程序时间戳: 5e9090c9
故障模块名称: KERNELBASE.dll
故障模块版本: 6.1.7601.24384
故障模块时间戳: 5c6e248c
异常代码: c06d007e
异常偏移: 000000000000be0d
OS 版本: 6.1.7601.2.1.0.256.1
区域设置 ID: 2052
其他信息 1: 7283
其他信息 2: 72836eb6216b49be15302fdb224c1b5d
其他信息 3: 10bd
其他信息 4: 10bd9f9b144e97a6172df8089ecda269

[BUG]排行榜的弹幕消息格式已经变了

今天在写代码测试,发现cmd和内容都变了,新数据格式如下:

{
    u'roomid': u'1029',
    u'cmd': u'SEND_TOP',
    u'data': {
        u'top_list': [
            {
                u'uname': u'\u53f6\u5b50\u4e0d\u662f\u6930\u5b50',
                u'coin': 693300,
                u'uid': 1554307
            },
            {
                u'uname': u'The\u4e36MIB',
                u'coin': 590300,
                u'uid': 8970213
            },
            {
                u'uname': u'\u556a\u556a\u556a\u72c2\u9b54Hentai',
                u'coin': 450400,
                u'uid': 2627136
            },
            {
                u'uname': u'\u6735\u62c9\u56fe\u6069',
                u'coin': 195900,
                u'uid': 3848972
            },
            {
                u'uname': u'\u5f20\u6773\u4e4b',
                u'coin': 176400,
                u'uid': 7924331
            },
            {
                u'uname': u'\u4eba\u672c\u65e0\u8272',
                u'coin': 154933,
                u'uid': 14250935
            },
            {
                u'uname': u'Anisakis',
                u'coin': 139600,
                u'uid': 678615
            },
            {
                u'uname': u'\u82cf\u9825\u747f',
                u'coin': 101500,
                u'uid': 2399028
            },
            {
                u'uname': u'\u61d2\u6563\u7684\u53c9\u5b50',
                u'coin': 100000,
                u'uid': 1354913
            },
            {
                u'uname': u'StormNight',
                u'coin': 72030,
                u'uid': 1998049
            }
        ]
    }
}

希望能有排队这一类的插件

例如弹幕回复 排队
在后台或者文本文件中能对该条弹幕发送人进行记录
且同一个用户不会重复
希望能做成文本文件以供obs显示

无法启动弹幕姬

错误报告如下

請有空發給 [email protected] 謝謝
2017/8/31 19:20:44
System.Windows.Markup.XamlParseException: 对类型“Bililive_dm.MainWindow”的构造函数执行符合指定的绑定约束的调用时引发了异常。 ---> System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
   在 MS.Win32.NativeMethods.IOleCommandTarget.Exec(GUID pguidCmdGroup, Int32 nCmdID, Int32 nCmdexecopt, Object[] pvaIn, Int32 pvaOut)
   在 System.Windows.Controls.WebBrowser.DoNavigate(Uri source, Object& targetFrameName, Object& postData, Object& headers, Boolean ignoreEscaping)
   在 Bililive_dm.MainWindow..ctor()
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   在 System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   在 System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   在 System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   在 System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
   在 System.Windows.Application.DoStartup()
   在 System.Windows.Application.<.ctor>b__1_0(Object unused)
   在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)-------插件列表--------

弹幕姬版本是目前自动更新的最新版本
Windows 版本为 windows 10 insider build 16278

点歌姬几个问题咨询

1.点歌姬v3里好像找不到歌词行数的设置
2.点歌姬歌词模板没有提供可用对象的列表,用户只知道demo里的类似{{播放列表}}这样的对象

新版弹幕协议的一些hint

每个包是4字节长度+12字节标识符+剩下的数据
“连接成功”和“人气值”的标识符没有变化,“JSON数据”目前变为为压缩格式:
压缩数据的标识符是0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,剩下的数据直接用lzma解压,可以得到旧的包结构(即:4字节长度+标识符0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00+JSON数据)

平时比较喜欢用您的软件,祝早日恢复!

插件如何隐藏弹幕

是否有可能让插件决定是否隐藏一条弹幕?
事件没有Cancell,而且弹幕的文本设为空,还是会显示原内容=_=

弹幕显示时程序崩溃

“测试效果”按钮正常,收到弹幕后,弹幕显示在程序主界面中,之后程序崩溃

版本:1.1.1.28

系统日志如下:

应用程序: Bililive_dm.exe
Framework 版本: v4.0.30319
说明: 由于未经处理的异常,进程终止。
异常信息: System.Reflection.TargetParameterCountException
在 System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
在 System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
在 System.Reflection.MethodBase.Invoke(System.Object, System.Object[])
在 ExtendLogging.MainProgram.ProcDanmaku(BilibiliDM_PluginFramework.DanmakuModel)
在 ExtendLogging.MainProgram.<.ctor>b__52_0()
在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
在 System.Threading.ThreadHelper.ThreadStart()

希望发布Mac系统下的弹幕姬

B站弹幕姬作者你好!
随着B站直播间的日益壮大,Mac版的弹幕姬也需要更新发布一下啦o(^_^)o。
我作为一个重度的Mac用户,没有弹幕姬我感到很不舒服,每次都要打开直播间才能够看弹幕。相当蛋疼。。。
若您有能力的话~顺便可以推出Linux下弹幕姬吗。
真的是万分感谢!
Tony

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.