From: qydysky Date: Sat, 12 Jun 2021 08:00:12 +0000 (+0800) Subject: 开始可以使用命令行 X-Git-Tag: v0.5.10~41^2~109 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=bf6b14588f84d341d9043e629e27bd7ed2086d75;p=bili_danmu%2F.git 开始可以使用命令行 --- diff --git a/F/cmd.go b/F/cmd.go index 40829cf..7e44048 100644 --- 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) } } diff --git a/bili_danmu.go b/bili_danmu.go index 736346a..96e219e 100644 --- a/bili_danmu.go +++ b/bili_danmu.go @@ -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`) //每日签到