From 4c79b4141945287fbbbcdcaebe9f835ecf0d62b0 Mon Sep 17 00:00:00 2001 From: qydysky Date: Sat, 20 Feb 2021 13:45:53 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96=E4=B8=8D?= =?utf8?q?=E5=88=B0LIVE=5FBUVID=20=E4=BE=9D=E8=B5=96mapRange=E4=BF=AE?= =?utf8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- F/api.go | 12 +++++++----- bili_danmu.go | 39 ++++++++++++++++++++++--------------- demo/config/config_K_v.json | 4 ++-- demo/go.mod | 8 ++++---- demo/go.sum | 8 ++++++++ 5 files changed, 44 insertions(+), 27 deletions(-) diff --git a/F/api.go b/F/api.go index 251b0ca..4288bf0 100644 --- a/F/api.go +++ b/F/api.go @@ -1142,23 +1142,25 @@ func (i *api) Get_LIVE_BUVID() (o *api){ o = i apilog := apilog.Base_add(`LIVE_BUVID`).L(`T: `,`获取LIVE_BUVID`) if live_buvid,ok := c.Cookie.LoadV(`LIVE_BUVID`).(string);ok && live_buvid != `` {apilog.L(`I: `,`存在`);return} + if c.Roomid == 0 {apilog.L(`E: `,`失败!无Roomid`);return} if c.Cookie.Len() == 0 {apilog.L(`E: `,`失败!无cookie`);return} if api_limit.TO() {apilog.L(`E: `,`超时!`);return}//超额请求阻塞,超时将取消 for {//获取 req := p.Req() if err := req.Reqf(p.Rval{ - Url:`https://api.live.bilibili.com/rc/v1/Title/webTitles`, + Url:`https://live.bilibili.com/`+strconv.Itoa(c.Roomid), Header:map[string]string{ - `Host`: `api.live.bilibili.com`, + `Host`: `live.bilibili.com`, `User-Agent`: `Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0`, - `Accept`: `application/json, text/plain, */*`, + `Accept`: `text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8`, `Accept-Language`: `zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2`, `Accept-Encoding`: `gzip, deflate, br`, - `Origin`: `https://live.bilibili.com`, `Connection`: `keep-alive`, + `Cache-Control`: `no-cache`, `Referer`:"https://live.bilibili.com", `DNT`: `1`, + `Upgrade-Insecure-Requests`: `1`, }, Timeout:3, Retry:2, @@ -1181,7 +1183,7 @@ func (i *api) Get_LIVE_BUVID() (o *api){ time.Sleep(time.Second) } } - + Cookie := make(map[string]string) c.Cookie.Range(func(k,v interface{})(bool){ Cookie[k.(string)] = v.(string) diff --git a/bili_danmu.go b/bili_danmu.go index 3aa08de..54152b7 100644 --- a/bili_danmu.go +++ b/bili_danmu.go @@ -11,7 +11,6 @@ import ( p "github.com/qydysky/part" ws "github.com/qydysky/part/websocket" - g "github.com/qydysky/part/get" msgq "github.com/qydysky/part/msgq" reply "github.com/qydysky/bili_danmu/Reply" send "github.com/qydysky/bili_danmu/Send" @@ -129,26 +128,34 @@ func Demo(roomid ...int) { c.Danmu_Main_mq.Push_tag(`change_room`,nil) } } - if p.Checkfile().IsExist("cookie.txt") { + var cookieString string + if !p.Checkfile().IsExist("cookie.txt") {//读取cookie文件 + go get_cookie() + p.Sys().Timeoutf(3) + } else { q.File = "cookie.txt" - f := p.File().FileWR(q) - for k,v := range p.Cookies_String_2_Map(f){ + cookieString := p.File().FileWR(q) + } + + if cookieString == `` {//cookie.txt为空 + danmulog.L(`E: `, `cookie.txt为空`) + go get_cookie() + p.Sys().Timeoutf(3) + } else { + for k,v := range p.Cookies_String_2_Map(cookieString){//cookie存入全局变量syncmap c.Cookie.Store(k, v) } - if tmp_uid,e := g.SS(f,`DedeUserID=`,`;`,0,0);e == nil { - if v,e := strconv.Atoi(tmp_uid);e == nil { - c.Uid = v - } else { - danmulog.L(`E: `, `读取cookie错误`,e) - go get_cookie() - } - } else { - danmulog.L(`E: `, `读取cookie错误`,e) + if uid,ok := c.Cookie.LoadV(`DedeUserID`).(string);!ok{//cookie中DedeUserID + danmulog.L(`E: `, `读取cookie错误,无DedeUserID`) + go get_cookie() + p.Sys().Timeoutf(3) + } else if uid,e := strconv.Atoi(uid);e != nil{ + danmulog.L(`E: `, e) go get_cookie() + p.Sys().Timeoutf(3) + } else { + c.Uid = uid } - } else { - go get_cookie() - p.Sys().Timeoutf(3) } } diff --git a/demo/config/config_K_v.json b/demo/config/config_K_v.json index ad9aa8c..5da7697 100644 --- a/demo/config/config_K_v.json +++ b/demo/config/config_K_v.json @@ -34,8 +34,8 @@ "Gtk弹幕窗":true, "调用obs":false, - "直播流":"", - "保存flv直播流":true, + "直播流-help":"只有保存直播流时才考虑生成ass", + "保存flv直播流":false, "生成Ass弹幕":true, "弹幕处理":"", diff --git a/demo/go.mod b/demo/go.mod index 241d8fc..c3a877b 100644 --- a/demo/go.mod +++ b/demo/go.mod @@ -11,13 +11,13 @@ require ( github.com/miekg/dns v1.1.38 // indirect github.com/mitchellh/mapstructure v1.4.1 // indirect github.com/qydysky/bili_danmu v0.5.7 - github.com/qydysky/part v0.4.4 // indirect + github.com/qydysky/part v0.4.5 // indirect github.com/shirou/gopsutil v3.21.1+incompatible // indirect github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect - golang.org/x/crypto v0.0.0-20210218145215-b8e89b74b9df // indirect - golang.org/x/net v0.0.0-20210119194325-5f4716e94777 // indirect - golang.org/x/sys v0.0.0-20210218155724-8ebf48af031b // indirect + golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 // indirect + golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d // indirect + golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43 // indirect ) replace ( diff --git a/demo/go.sum b/demo/go.sum index f7b1ee8..0fee916 100644 --- a/demo/go.sum +++ b/demo/go.sum @@ -147,6 +147,8 @@ github.com/qydysky/part v0.4.3 h1:ckgSo+MefqrRgWdCjnHbJiS/Qy52VnzBj7YbFXPHNJU= github.com/qydysky/part v0.4.3/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= github.com/qydysky/part v0.4.4 h1:RtUcO6LhfO8CKk+fOhtSiLu9/IOa5aOe0IjIjpU2Bbk= github.com/qydysky/part v0.4.4/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= +github.com/qydysky/part v0.4.5 h1:CxojfZ9g+UBWw2rUp2RZDCxRhY7kuqWiEyRYVaYQcqU= +github.com/qydysky/part v0.4.5/go.mod h1:43opuciW71sZvOR67kye50jgMDSDrn/t6+LefNdlXPg= github.com/qydysky/part/msgq v0.0.0-20201213031129-ca3253dc72ad h1:Jtzf509lQrkUMGTV0Sc6IDCAiR1VrBcHrIban7hpye4= github.com/qydysky/part/msgq v0.0.0-20201213031129-ca3253dc72ad/go.mod h1:w32TkJNVtTJd4LOS09cq+4uYG6itcN2vsqw+slp44Rg= github.com/qydysky/part/msgq v0.0.0-20201213120821-f36e49c32bba h1:1ew9dRpc0Rux0WkWeT/4AE15ynYWmL2D7onJEJIFOB8= @@ -197,6 +199,8 @@ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHR golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210218145215-b8e89b74b9df h1:y7QZzfUiTwWam+xBn29Ulb8CBwVN5UdzmMDavl9Whlw= golang.org/x/crypto v0.0.0-20210218145215-b8e89b74b9df/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -216,6 +220,8 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b h1:iFwSg7t5GZmB/Q5TjiEAsdoLD golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777 h1:003p0dJM77cxMSyCPFphvZf/Y5/NXf5fzg6ufd1/Oew= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d h1:1aflnvSoWWLI2k/dMUAl5lvU1YO4Mb4hz0gh+1rjcxU= +golang.org/x/net v0.0.0-20210220033124-5f55cee0dc0d/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -251,6 +257,8 @@ golang.org/x/sys v0.0.0-20210217105451-b926d437f341 h1:2/QtM1mL37YmcsT8HaDNHDgTq golang.org/x/sys v0.0.0-20210217105451-b926d437f341/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210218155724-8ebf48af031b h1:lAZ0/chPUDWwjqosYR0X4M490zQhMsiJ4K3DbA7o+3g= golang.org/x/sys v0.0.0-20210218155724-8ebf48af031b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43 h1:SgQ6LNaYJU0JIuEHv9+s6EbhSCwYeAf5Yvj6lpYlqAE= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -- 2.39.2