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'回车")
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
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
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("当前直播间信息")
{
cmdlog.L(`W: `, "尚未登陆,不能发送弹幕")
continue
}
+ if c.Roomid != 0 {continue}
if len(inputs) < 2 {
cmdlog.L(`W: `, "输入长度过短", inputs)
continue
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)
}
}
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){//房间重进
//捕获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`)
//每日签到