Skip to content

Commit 5aafde7

Browse files
committed
fix Bilibili api
1 parent 6f5dae5 commit 5aafde7

3 files changed

Lines changed: 22 additions & 14 deletions

File tree

DefaultPlugin/Sources/BiliBili/Bilibili_dm/DanmakuLoader.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public async Task<bool> ConnectAsync(int roomId)
5858
{
5959
var request2 = WebRequest.Create(CIDInfoUrl + channelId);
6060
request2.Timeout = 2000;
61-
var response2 = await request2.GetResponseAsync();
61+
var response2 = request2.GetResponse();
6262
using (var stream = response2.GetResponseStream())
6363
{
6464
using (var sr = new StreamReader(stream))
@@ -67,7 +67,8 @@ public async Task<bool> ConnectAsync(int roomId)
6767
var xml = "<root>" + text + "</root>";
6868
XmlDocument doc = new XmlDocument();
6969
doc.LoadXml(xml);
70-
ChatHost = doc["root"]["server"].InnerText;
70+
ChatHost = doc["root"]["dm_server"].InnerText;
71+
ChatPort = int.Parse(doc["root"]["dm_port"].InnerText);
7172
}
7273
}
7374
}
@@ -85,7 +86,7 @@ public async Task<bool> ConnectAsync(int roomId)
8586
}
8687
Client = new TcpClient();
8788

88-
await Client.ConnectAsync(ChatHost, ChatPort);
89+
Client.Connect(ChatHost, ChatPort);
8990

9091
NetStream = Client.GetStream();
9192

DefaultPlugin/Sources/BiliBili/Bilibili_sender/BiliBiliSender.cs

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,23 +82,28 @@ public void setCookies(string cookies)
8282
/// <param name="msg">弹幕</param>
8383
public void send(string msg)
8484
{
85-
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri("http://live.bilibili.com/msg/send"));
85+
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri("http://api.live.bilibili.com/msg/send"));
8686
long unix = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000;
87-
byte[] byteArray = Encoding.UTF8.GetBytes("color=16777215&fontsize=25&mode=1&msg=" + msg + "&rnd=" + unix + "&roomid=" + BiliBili.BiliBili.RoomID + "");
87+
var body= "color=16777215&fontsize=25&mode=1&msg="+msg+"&rnd="+unix+"&roomid="+BiliBili.BiliBili.RoomID+"";
8888
string[] cookies = BiliBili.BiliBili.Cookies.ToString().Split("; ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
8989
Uri live = new Uri("http://live.bilibili.com/");
9090

91-
req.Method = "POST";
92-
req.ContentType = "application/x-www-form-urlencoded";
93-
req.ContentLength = byteArray.Length;
94-
req.CookieContainer = new CookieContainer();
91+
req.Method="POST";
92+
req.ContentType="application/x-www-form-urlencoded";
93+
req.Headers[HttpRequestHeader.Cookie]=BiliBili.BiliBili.Cookies.ToString();
9594

96-
foreach (var i in cookies)
95+
var result=cookies.Select(x => x.Split(new[] { '=' }, 2)).FirstOrDefault(x=>x[0]=="bili_jct");
96+
97+
if (result==null||result.Length<2)
9798
{
98-
string[] cookie = i.Split("=".ToCharArray(), 2);
99-
req.CookieContainer.Add(live, new Cookie(cookie[0], cookie[1].Replace(',', '_')));
99+
//no CSRF , cant send message
100+
return;
100101
}
102+
103+
body+="&csrf="+result[1];
101104

105+
byte[] byteArray = Encoding.UTF8.GetBytes(body);
106+
req.ContentLength=byteArray.Length;
102107

103108
using (Stream dataStream = req.GetRequestStream())
104109
{

DefaultPlugin/Sources/Twitch/TwitchIRCIO.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class TwitchIRCIO
3030
string oauth = @"oauth:pjaicvg4jon0o0doiwjlo5z9s05a7l";
3131
string name = @"osuSync";
3232
string client_id = "esmhw2lcvrgtqw545ourqjwlg7twee";
33-
string ircAddress = @"irc.twitch.tv";
33+
string ircAddress = @"irc.chat.twitch.tv";
3434
int ircPort = 6667;
3535
string channelName = null;
3636

@@ -98,7 +98,9 @@ private void initStart()
9898
outputStreamSender = new StreamWriter(rawSocketStream);
9999
inputStreamReciever = new StreamReader(rawSocketStream);
100100

101-
outputStreamSender.WriteLine($"PASS {oauth}\nNICK {name.ToLower()}");
101+
outputStreamSender.WriteLine($"PASS {oauth}");
102+
outputStreamSender.Flush();
103+
outputStreamSender.WriteLine($"NICK mikirasora");
102104
outputStreamSender.Flush();
103105

104106
outputStreamSender.WriteLine(@"CAP REQ :twitch.tv/membership");

0 commit comments

Comments
 (0)