]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
修复获取不到LIVE_BUVID
authorqydysky <qydysky@foxmail.com>
Sat, 20 Feb 2021 05:45:53 +0000 (13:45 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 20 Feb 2021 05:45:53 +0000 (13:45 +0800)
依赖mapRange修复

F/api.go
bili_danmu.go
demo/config/config_K_v.json
demo/go.mod
demo/go.sum

index 251b0cabc83508b0fc3564dde1abd668f8667bc6..4288bf093991ac207f4524da52f114668e7690fc 100644 (file)
--- 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)
index 3aa08deb8fbad5ecaa54140c483fa878600b7c13..54152b710b5c66fc987bd68cb650610fb8c4f6d0 100644 (file)
@@ -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)
                                }
                        }
                        
index ad9aa8c0e3879b95f47fa21aaa41d105fd8f74c0..5da76974b9be3fb932dba65b88d22adac20cc404 100644 (file)
@@ -34,8 +34,8 @@
     "Gtk弹幕窗":true,
     "调用obs":false,
     
-    "直播流":"",
-    "保存flv直播流":true,
+    "直播流-help":"只有保存直播流时才考虑生成ass",
+    "保存flv直播流":false,
     "生成Ass弹幕":true,
 
     "弹幕处理":"",
index 241d8fcef0c5a348c6c3261cd59ff2e962d9a87d..c3a877b0ddbc65a5358c8443a31e120effceef9c 100644 (file)
@@ -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 (
index f7b1ee8a23244f1312280a1046eaf79ad6c652a2..0fee916223003de2c0c9e6f8638758e13786127e 100644 (file)
@@ -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=