Пример #1
0
 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();
     }
 }
Пример #3
0
        //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);
            }
        }
Пример #4
0
 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);
 }