public void Init_connection() { lr = new LiveRoom(liveid, cookiestr); lr.sm.ReceivedDanmaku += Receiver_ReceivedDanmaku; lr.sm.StreamStarted += StreamStarted; lr.sm.ExceptionHappened += Sm_ExceptionHappened;; lr.sm.LogOutput += Sm_LogOutput; lr.init_connection(); blr = new BiliLiveRoom(liveid, MainHolder.bililogin); }
private void run_CheckedChanged(object sender, EventArgs e) { if (run.Checked) { sm = new StreamMonitor((int)roomnumber.Value, () => { return(new System.Net.Sockets.TcpClient()); }); liveroom = new BiliLiveRoom((int)roomnumber.Value, api); sm.ReceivedDanmaku += Sm_ReceivedDanmaku; sm.Start(); } else { sm.Stop(); } }
//private const bool DO_PUSH_LIVE = false; public void StreamStarted(object sender, StreamStartedArgs e) { doStreamCacuStability(); if (lid > 0 && !ispickedup) { MainHolder.broadcaster.BroadcastToAdminGroup("开播事件被重复推送,将忽略并沿用原事件ID。\n" + "原事件ID:" + lid + "\n" + "https://live.bilibili.com/" + liveid); return; } ispickedup = false; blr = new BiliLiveRoom(liveid, MainHolder.bililogin); lid = blr.lid; new_commers = 0; viewerlist.Clear(); gold_coins = 0; selver_coins = 0; tlist.Clear(); bool atall = (DateTime.Now.Hour < 23 && DateTime.Now.Hour > 6); DataBase.me.recBLive(lid, blr.title); if (DO_PUSH_LIVE) { MainHolder.broadcaster.BroadcastToAllGroup(new IChatMessage[] { new PlainMessage("【直播通知】\n" + blr.title + "\nhttps://live.bilibili.com/2064239?rnd=" + new Random().Next(100, 99999)), new ImageMessage(null, blr.cover, null), atall ? (IChatMessage) new AtAllMessage():new PlainMessage("<@[免打扰模式]>") }); if (MainHolder.useBiliRecFuncs) { blr.sendDanmaku(atall ? "已推送直播通知" : "已推送直播通知(免打扰模式)"); } } if (!ispickedup) { MainHolder.broadcaster.BroadcastToAdminGroup("开播\n事件识别ID:" + lid + "\n" + "https://live.bilibili.com/" + liveid); } else { MainHolder.broadcaster.BroadcastToAdminGroup("开播\n事件识别ID:" + lid + "(覆盖pickup数据)\n" + "https://live.bilibili.com/" + liveid); } }
public int PickupRunningLive() { blr = new BiliLiveRoom(liveid, MainHolder.bililogin); if (blr.status != BiliLiveRoom.STATUS_LIVE) { lid = -1; return(lid); } ; if (lid > 0) { if (lid != blr.lid) { MainHolder.broadcaster.BroadcastToAdminGroup("!之前有一个直播数据并未正确结束\n旧lid:" + lid + "\n新lid:" + blr.lid + "\n新的直播数据被加载,之前的数据可能已经丢失。"); } return(lid); } ispickedup = true; lid = blr.lid; MainHolder.broadcaster.BroadcastToAdminGroup("发现正在进行(中途数据中断)的直播\n事件识别ID:" + lid + "\n" + "https://live.bilibili.com/" + liveid); DataBase.me.getBLiveData(lid, out new_commers, out gold_coins, out selver_coins); return(lid); }