├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── doc
└── 姬娘 开发文档.docx
└── source
├── App.config
├── Class
├── ApplicationEvents.vb
├── BilibiliApi.vb
├── Common.vb
├── DanmuEntry
│ ├── DanmuEntry.vb
│ ├── DatabaseUpgrader.vb
│ └── UserInfo.vb
├── DanmuHttp.vb
├── DanmuParser
│ ├── DanmuEventTransfer.vb
│ ├── DmCmdParser.vb
│ └── OpCodeParser.vb
├── DanmuSender
│ ├── DanmuRepeatOptions.vb
│ ├── DanmuSender.vb
│ ├── DanmuSenderInfo.vb
│ ├── DanmuSenderOptionLevel.vb
│ ├── DanmuSenderOptionName.vb
│ ├── RepeatDanmuInfo.vb
│ ├── SendStatus.vb
│ └── SentDanmuInfo.vb
├── Entity
│ ├── APIPostResponseBaseEntity.vb
│ ├── AnchorInRoomEntity.vb
│ ├── ConfigEntity.vb
│ ├── DanmuEntity.vb
│ ├── DanmuFormatEntity.vb
│ ├── DanmuServerInfoEntity.vb
│ ├── LiveEntity.vb
│ ├── LoginUrlEntity.vb
│ ├── MainFormEntity.vb
│ ├── ReportReasonEntity.vb
│ ├── RoomAdminEntity.vb
│ ├── RoomBlackViewerEntity.vb
│ ├── RoomEntity.vb
│ ├── RoomShieldInfoEntity.vb
│ ├── RoomSilentInfoEntity.vb
│ ├── RoomViewerInfoEntity.vb
│ ├── ThanksHimeEntity.vb
│ ├── UserInfoEntity.vb
│ ├── UserSearchResultEntity.vb
│ └── ViewerMedalEntity.vb
├── Events.vb
├── LightLiver.vb
├── LiveStreamPusher
│ ├── LiveStreamPusher.vb
│ ├── LiveStreamPusherInfo.vb
│ └── WindowBase.vb
├── MedalUpgradeHime
│ └── MedalUpgradeHime.vb
├── RaffleHime.vb
├── RandomEmoji.vb
└── Tcp
│ ├── ParsedEventArgs.vb
│ ├── TcpEvents.vb
│ ├── TcpListener.vb
│ └── TcpPacketParser.vb
├── Control
├── FansInfoEditControl.Designer.vb
├── FansInfoEditControl.resx
├── FansInfoEditControl.vb
├── FunctionTestControl.Designer.vb
├── FunctionTestControl.resx
├── FunctionTestControl.vb
├── LiveRoomInfoControl.Designer.vb
├── LiveRoomInfoControl.resx
├── LiveRoomInfoControl.vb
├── PagerControl.Designer.vb
├── PagerControl.resx
├── PagerControl.vb
├── RankingListControl.Designer.vb
├── RankingListControl.resx
├── RankingListControl.vb
├── SettingControl.Designer.vb
├── SettingControl.resx
└── SettingControl.vb
├── EnumDefine
├── ConnectMode.vb
├── CookieSource.vb
├── LoginResult.vb
└── UserRole.vb
├── Form
├── DanmuControl
│ ├── BlackViewerControl.Designer.vb
│ ├── BlackViewerControl.resx
│ ├── BlackViewerControl.vb
│ ├── DanmuControl.Designer.vb
│ ├── DanmuControl.resx
│ ├── DanmuControl.vb
│ ├── DanmuControlFunctionTest.vb
│ ├── FrmDanmuColor.Designer.vb
│ ├── FrmDanmuColor.resx
│ ├── FrmDanmuColor.vb
│ ├── FrmReportReason.Designer.vb
│ ├── FrmReportReason.resx
│ ├── FrmReportReason.vb
│ ├── FrmRoomViewerManage.Designer.vb
│ ├── FrmRoomViewerManage.resx
│ ├── FrmRoomViewerManage.vb
│ ├── FrmYanText.Designer.vb
│ ├── FrmYanText.resx
│ ├── FrmYanText.vb
│ ├── IViewerManageBaseControl.vb
│ ├── RoomAdminControl.Designer.vb
│ ├── RoomAdminControl.resx
│ ├── RoomAdminControl.vb
│ ├── RoomGlobalSilentControl.Designer.vb
│ ├── RoomGlobalSilentControl.resx
│ ├── RoomGlobalSilentControl.vb
│ ├── RoomShieldControl.Designer.vb
│ ├── RoomShieldControl.resx
│ ├── RoomShieldControl.vb
│ ├── UserControlTestForm.Designer.vb
│ ├── UserControlTestForm.resx
│ ├── UserControlTestForm.vb
│ ├── ViewerManageBaseControl.Designer.vb
│ ├── ViewerManageBaseControl.vb
│ ├── ViewerRemarkControl.Designer.vb
│ ├── ViewerRemarkControl.resx
│ └── ViewerRemarkControl.vb
├── FrmFansManage.Designer.vb
├── FrmFansManage.resx
├── FrmFansManage.vb
├── FrmLiveSetting.Designer.vb
├── FrmLiveSetting.resx
├── FrmLiveSetting.vb
├── FrmMain.Designer.vb
├── FrmMain.resx
├── FrmMain.vb
├── FrmPluginManage.Designer.vb
├── FrmPluginManage.resx
├── FrmPluginManage.vb
├── FrmSelectArea.Designer.vb
├── FrmSelectArea.resx
├── FrmSelectArea.vb
├── FrmThanksHime.Designer.vb
├── FrmThanksHime.resx
├── FrmThanksHime.vb
└── Login
│ ├── FrmLoginFromBrowser.Designer.vb
│ ├── FrmLoginFromBrowser.resx
│ ├── FrmLoginFromBrowser.vb
│ ├── FrmLoginFromCookies.Designer.vb
│ ├── FrmLoginFromCookies.resx
│ ├── FrmLoginFromCookies.vb
│ ├── FrmLoginFromQRCode.Designer.vb
│ ├── FrmLoginFromQRCode.resx
│ ├── FrmLoginFromQRCode.vb
│ ├── FrmQuickLogin.Designer.vb
│ ├── FrmQuickLogin.resx
│ ├── FrmQuickLogin.vb
│ └── LoginManager.vb
├── My Project
├── Application.Designer.vb
├── Application.myapp
├── AssemblyInfo.vb
├── Resources.Designer.vb
├── Resources.resx
├── Settings.Designer.vb
├── Settings.settings
└── app.manifest
├── packages.config
├── res
├── CreateDb.sql
├── DanmuDisplayTemplete.html
└── YanText.txt
└── 姬娘.vbproj
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JiNiang(中文名:`姬娘`,下面都用`姬娘`表示)
2 | [bilibili](https://www.bilibili.com/)直播姬、弹幕姬、danmuku、各种姬,VB(新VB.NET)实现,***史上结构最乱项目(官方吐槽)***
3 |
4 | ## Release
5 | [安装包(installer package)](https://github.com/shanxing2/JiNiang/releases)
6 |
7 | ## 框架版本
8 | .NET 4.6.1
9 |
10 | ## 引用
11 | ### NuGet
12 | 1.Install-Package System.ValueTuple -Version 4.5.0
13 | 2.Install-Package Microsoft.AspNet.WebApi.Client -Version 5.2.7
14 |
15 | 注:此Package依赖于Newtonsoft.Json,但是我们这个项目用不到,所以不需要也可以,可以在NuGet管理器中勾选 ‘强制卸载,即使有依赖项’,然后强制卸载依赖包Newtonsoft.Json。
16 |
17 | ### 第三方库
18 | * 1.[shanxinglib.dll](https://github.com/shanxing2/shanxinglib)
19 | * 2.[ShanXingTech.IO2.Database](https://github.com/shanxing2/ShanXingTech.IO2.Database)
20 | * 3.`姬娘`插件
21 |
22 | ## 错误
23 | 1.无法获取密钥文件“ShanXingTech.pfx”的 MD5 校验和。未能找到文件“*\ShanXingTech.pfx”。
24 | 解决方法:
25 | 右键项目——属性——签名,去掉勾选 “为程序集签名(A)”,或者选择(或创建)你自己的强名称密钥文件。
26 |
27 | ## FQA
28 | 1.软件运行不出现录界面,直接出现空白主界面。
29 | 解决:根据系统位数查看软件目录下是否自动生成 x86 或者 x64 文件夹,并且里面有一个名为 ‘SQLite.Interop.dll’ 的文件。如果有,查看 C:\ShanXingTech\Log 目录下是否有 log文件,如果有,打开,查看是否有类似 ‘无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。’log,如果有,打开电脑‘控制面板’,查看是否有‘[Microsoft Visual C++ 2015 Redistributable(X64或X86)](https://www.microsoft.com/zh-cn/download/details.aspx?id=53840)’,如果没有,请下载安装,安装完成后,重新打开姬娘再看是否可以解决。
30 |
31 | ## 已有功能(主要)
32 |
33 | * 自动更新在线人数、粉丝人数(更新间隔跟随发心跳包间隔);
34 | * 新粉丝关注提示;
35 | * 送礼提示&感谢、上船提示&感谢、欢迎老爷进直播间;
36 | * 发弹幕;
37 | * 退出时自动缓存最多100条记录,下次启动时如果没有新弹幕会再加载缓存的弹幕;
38 | * 一键快速开播(已有)以及OBS自动推流(暂未实现);
39 | * ***勋章升级提示***
40 |
41 | ## TODO
42 | * 添加插件系统;
43 | * 可自定义部分弹幕展示格式(送礼、上船、老爷进直播间、新粉丝关注等,通过插件形式);
44 | * 弹幕只展示最新100条,减少资源占用(目前展示接收到的所有弹幕);
45 | * 发弹幕模块可分离,自由吸附到其他软件上,比如官方的弹幕姬;
46 | * 自动打开直播宝箱(可选);
47 | * 自动赠送包裹中的免费道具给主播(可选);
48 | * 听直播,只有声音没有视频,会不会省辣么一点点牛量呢???(当前B站用的协议,应该实现不了这个功能)
49 | * 礼物榜单/统计;
50 | * 注:插件系统做好之后,界面会大改!
51 |
52 | ## BUG反馈、建议、编程交流群、女装裙797522112←◡←
53 | Q群:[797522112](https://jq.qq.com/?_wv=1027&k=5MuFkkR) 胖头鱼煲汤好好次
54 |
55 | ## 小破站直播间
56 | [4236342](https://live.bilibili.com/4236342),[关注他](https://space.bilibili.com/52155851)
57 |
58 | ## 淘宝恰饭
59 | [胖头鱼煲汤好好次](http://shop68147918.taobao.com/)
--------------------------------------------------------------------------------
/doc/姬娘 开发文档.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/shanxing2/JiNiang/c4f610e9d0a4fa29244dc8b774f622ae070b1b5f/doc/姬娘 开发文档.docx
--------------------------------------------------------------------------------
/source/App.config:
--------------------------------------------------------------------------------
1 |
2 |