]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
开始可以使用命令行
authorqydysky <qydysky@foxmail.com>
Sat, 12 Jun 2021 08:00:12 +0000 (16:00 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 12 Jun 2021 08:00:12 +0000 (16:00 +0800)
F/cmd.go
bili_danmu.go

index 40829cf602ea8f97113ee8270dc208cf40853732..7e44048daa43fce4b1809b5658ca1ca20901f16b 100644 (file)
--- a/F/cmd.go
+++ b/F/cmd.go
@@ -24,6 +24,17 @@ func Cmd() {
                if inputs := scanner.Text();inputs == `` {//帮助
                        fmt.Print("\n")
                        fmt.Println("切换房间->输入数字回车")
+                       if c.Roomid == 0 {
+                               if _,ok := c.Cookie.LoadV(`bili_jct`).(string);ok {
+                                       fmt.Println("查看直播中主播->输入' live'回车")
+                               } else {
+                                       fmt.Println("登陆->输入' login'回车")
+                               }
+                               fmt.Println("搜索主播->输入' search关键词'回车")
+                               fmt.Println("其他输出隔断不影响")
+                               fmt.Print("\n")
+                               continue
+                       }
                        if _,ok := c.Cookie.LoadV(`bili_jct`).(string);ok {
                                fmt.Println("发送弹幕->输入' 字符串'回车")
                                fmt.Println("查看直播中主播->输入' live'回车")
@@ -41,7 +52,7 @@ func Cmd() {
                        cmdlog.L(`W: `, "不支持功能键")
                } else if inputs[0] == 32 {// 开头
                        //录制切换
-                       if strings.Contains(inputs, ` rec`) {
+                       if strings.Contains(inputs, ` rec`) && c.Roomid != 0 {
                                if !c.Liveing {
                                        cmdlog.L(`W: `, "不能切换录制状态,未在直播")
                                        continue
@@ -85,7 +96,7 @@ func Cmd() {
                                continue
                        }
                        //获取小心心
-                       if strings.Contains(inputs, ` getheart`) {
+                       if strings.Contains(inputs, ` getheart`) && c.Roomid != 0 {
                                if _,ok := c.Cookie.LoadV(`bili_jct`).(string);!ok {
                                        cmdlog.L(`W: `, "尚未登陆,不能获取小心心")
                                        continue
@@ -117,12 +128,12 @@ func Cmd() {
                                continue
                        }
                        //重载弹幕
-                       if strings.Contains(inputs, ` reload`) {
+                       if strings.Contains(inputs, ` reload`) && c.Roomid != 0 {
                                c.Danmu_Main_mq.Push_tag(`flash_room`,nil)
                                continue
                        }
                        //当前直播间信息
-                       if strings.Contains(inputs, ` room`) {
+                       if strings.Contains(inputs, ` room`) && c.Roomid != 0 {
                                fmt.Print("\n")
                                fmt.Println("当前直播间信息")
                                {
@@ -156,6 +167,7 @@ func Cmd() {
                                        cmdlog.L(`W: `, "尚未登陆,不能发送弹幕")
                                        continue
                                }
+                               if c.Roomid != 0 {continue}
                                if len(inputs) < 2 {
                                        cmdlog.L(`W: `, "输入长度过短", inputs)
                                        continue
@@ -167,6 +179,7 @@ func Cmd() {
                        cmdlog.L(`I: `, "进入房间",room)
                        c.Danmu_Main_mq.Push_tag(`change_room`,nil)
                } else {//其余字符串
+                       if c.Roomid != 0 {continue}
                        send.Danmu_s(inputs, c.Roomid)
                }
        }
index 736346a08e4155a5245b418996be210cd914960e..96e219ee2141619b3f55db3a1d39c07cb238329b 100644 (file)
@@ -57,28 +57,30 @@ func Demo(roomid ...int) {
                        flash_room_chan = make(chan struct{})
                )
 
-               go func(){
-                       var room = *groomid
-                       if room == 0 && len(roomid) != 0 {
-                               room = roomid[0]
-                       }
-                       if room == 0 {
-                               c.Log.Block(1000)//等待所有日志输出完毕
-                               fmt.Printf("输入房间号: ")
-                               _, err := fmt.Scanln(&room)
-                               if err != nil {
-                                       danmulog.L(`E: `, "输入错误", err)
-                                       return
-                               }
-                       } else {
-                               fmt.Print("房间号: ", strconv.Itoa(room), "\n")
-                       }
+               //-r 房间初始化
+               var room = *groomid
+               if room == 0 && len(roomid) != 0 {
+                       room = roomid[0]
+               }
+               if room == 0 {
+                       c.Log.Block(1000)//等待所有日志输出完毕
+                       fmt.Println("输入房间号或` live`获取正在直播的主播")
+               } else {
+                       fmt.Print("房间号: ", strconv.Itoa(room), "\n")
                        if c.Roomid == 0 {
                                c.Roomid = room
-                               change_room_chan <- struct{}{}
+                               go func(){change_room_chan <- struct{}{}}()
                        }
-               }()
+               }
                
+
+               //如果连接中断,则等待
+               F.KeepConnect()
+               //获取cookie
+               F.Get(`Cookie`)
+               //命令行操作 切换房间 发送弹幕
+               go F.Cmd()
+
                //使用带tag的消息队列在功能间传递消息
                c.Danmu_Main_mq.Pull_tag(msgq.FuncMap{
                        `flash_room`:func(data interface{})(bool){//房间重进
@@ -129,14 +131,8 @@ func Demo(roomid ...int) {
 
                //捕获ctrl+c退出
                signal.Notify(interrupt, os.Interrupt)
-               //如果连接中断,则等待
-               F.KeepConnect()
-               //获取cookie
-               F.Get(`Cookie`)
                //获取uid
                F.Get(`Uid`)
-               //命令行操作 切换房间 发送弹幕
-               go F.Cmd()
                //兑换硬币
                F.Get(`Silver_2_coin`)
                //每日签到