]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
bug修正version获取方法
authorqydysky <qydysky@foxmail.com>
Sat, 19 Dec 2020 03:10:01 +0000 (11:10 +0800)
committerqydysky <qydysky@foxmail.com>
Sat, 19 Dec 2020 03:10:01 +0000 (11:10 +0800)
F/api.go
bili_danmu.go
demo/go.mod
demo/go.sum

index ec433aa1277d6b7e14ab98a89c795e89db3eea70..f408f165371e1b719b49ed78a94a6587cd1f671d 100644 (file)
--- a/F/api.go
+++ b/F/api.go
@@ -51,24 +51,19 @@ func (i *api) Get_info() (o *api) {
        //uid
        if tmp := r.S(`"uid":`, `,`, 0, 0);tmp.Err != nil {
                // apilog.E("uid", tmp.Err)
-       } else if i,err := strconv.Atoi(tmp.RS); err != nil{
+       } else if i,err := strconv.Atoi(tmp.RS[0]); err != nil{
                apilog.E("uid", err)
        } else {
                o.Uid = i
        }
        //Title
        if e := r.S(`"title":"`, `",`, 0, 0).Err;e == nil {
-               c.Title = r.RS
+               c.Title = r.RS[0]
        }
-       //VERSION
-       if e := r.S(`player-loader-`, `.min`, 0, 0).Err;e == nil {
-               c.VERSION = r.RS
-       }
-       apilog.W("api version", c.VERSION)
        //roomid
        if tmp := r.S(`"room_id":`, `,`, 0, 0);tmp.Err != nil {
                // apilog.E("room_id", tmp.Err)
-       } else if i,err := strconv.Atoi(tmp.RS); err != nil{
+       } else if i,err := strconv.Atoi(tmp.RS[0]); err != nil{
                apilog.E("room_id", err)
        } else {
                apilog.T("ok")
@@ -154,7 +149,7 @@ func (i *api) Get_live(qn ...string) (o *api) {
                        },
                })
                if e := r.S(`"durl":[`, `]`, 0, 0).Err;e == nil {
-                       if urls := p.Json().GetArrayFrom("[" + r.RS + "]", "url");urls != nil {
+                       if urls := p.Json().GetArrayFrom("[" + r.RS[0] + "]", "url");urls != nil {
                                apilog.W("直播中")
                                c.Liveing = true
                                o.Live_status = 1
@@ -164,13 +159,9 @@ func (i *api) Get_live(qn ...string) (o *api) {
                                return
                        }
                }
-               if e := r.S(`player-loader-`, `.min`, 0, 0).Err;e == nil {
-                       c.VERSION = r.RS
-               }
                if e := r.S(`"live_time":"`, `"`, 0, 0).Err;e == nil {
-                       c.Live_Start_Time,_ = time.Parse("2006-01-02 15:04:05", r.RS)
+                       c.Live_Start_Time,_ = time.Parse("2006-01-02 15:04:05", r.RS[0])
                }
-               apilog.W("api version", c.VERSION)
        }
 
        cu_qn := "0"
@@ -513,3 +504,58 @@ func (i *api) Get_guardNum() {
        }
        return
 }
+
+func (i *api) Get_Version() {
+       Roomid := strconv.Itoa(i.Roomid)
+
+       var player_js_url string
+       {//获取player_js_url
+               r := g.Get(p.Rval{
+                       Url:"https://live.bilibili.com/" + Roomid,
+               })
+
+               if r.Err != nil {
+                       apilog.Base(1, "Get_Version").E(r.Err)
+                       return
+               }
+
+               r.S2(`<script src=`,`.js`)
+               if r.Err != nil {
+                       apilog.Base(1, "Get_Version").E(r.Err)
+                       return
+               }
+
+               for _,v := range r.RS {
+                       tmp := string(v) + `.js`
+                       if strings.Contains(tmp,`http`) {continue}
+                       tmp = `https:` + tmp
+                       if strings.Contains(tmp,`player-loader`) {
+                               player_js_url = tmp
+                               break
+                       }
+               }
+               if player_js_url == `` {
+                       apilog.Base(1, "Get_Version").E(`no found player-loader js`)
+                       return
+               }
+       }
+
+       {//获取VERSION
+               r := g.Get(p.Rval{
+                       Url:player_js_url,
+               })
+
+               if r.Err != nil {
+                       apilog.Base(1, "Get_Version").E(r.Err)
+                       return
+               }
+
+               r.S(`version={html5:{web:"`,`"`,0,0)
+               if r.Err != nil {
+                       apilog.Base(1, "Get_Version").E(r.Err)
+                       return
+               }
+               c.VERSION = r.RS[0]
+               apilog.W("api version", c.VERSION)
+       }
+}
\ No newline at end of file
index 90979d02a8b7e8cd46d1f2b076b9f4f0861e81d7..3220e6ea92511c669e32135d29079b190715260e 100644 (file)
@@ -90,6 +90,8 @@ func Demo(roomid ...int) {
                for !exit_sign {
                        //获取房间相关信息
                        api := F.New_api(c.Roomid).Get_host_Token().Get_live()
+                       //获取用户版本
+                       api.Get_Version()
                        if len(api.Url) == 0 || api.Roomid == 0 || api.Token == "" || api.Uid == 0 || api.Locked {
                                danmulog.E("some err")
                                return
index 152c5be1d4b7929dde63fc16e80ef87ad89ad2f9..230928282c41fd0581844683d4074526bc0dbdd7 100644 (file)
@@ -9,13 +9,12 @@ require (
        github.com/klauspost/compress v1.11.3 // indirect
        github.com/miekg/dns v1.1.35 // indirect
        github.com/mitchellh/mapstructure v1.4.0 // indirect
-       github.com/qydysky/bili_danmu v0.5.2
-       github.com/qydysky/part v0.3.3 // indirect
-       github.com/qydysky/part/msgq v0.0.0-20201213031129-ca3253dc72ad // indirect
+       github.com/qydysky/bili_danmu v0.5.4
+       github.com/qydysky/part v0.3.4 // indirect
        github.com/shirou/gopsutil v3.20.11+incompatible // indirect
-       golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c // indirect
-       golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb // indirect
-       golang.org/x/sys v0.0.0-20201204225414-ed752295db88 // indirect
+       golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 // indirect
+       golang.org/x/net v0.0.0-20201216054612-986b41b23924 // indirect
+       golang.org/x/sys v0.0.0-20201218084310-7d0127a74742 // indirect
 )
 
 replace (
index e415130d608eba5fd05b3400109adbc6fc880e46..f5dc0cc48512233bbf564abef6cf1ef6bf04d8bf 100644 (file)
@@ -72,8 +72,12 @@ github.com/qydysky/part v0.3.2 h1:P+OKyv2doQoXlTQev2AjSL2MvoX2PLcJBRRDlSnpm94=
 github.com/qydysky/part v0.3.2/go.mod h1:93s9ohLtzULet5ZPEUUWrT9BELC30oDZgRpgGSiDye4=
 github.com/qydysky/part v0.3.3 h1:Xbz61YzHfEbeNZ5Fz1IxS6ktkV0Nk9bDsrxGWsKD9hE=
 github.com/qydysky/part v0.3.3/go.mod h1:93s9ohLtzULet5ZPEUUWrT9BELC30oDZgRpgGSiDye4=
+github.com/qydysky/part v0.3.4 h1:LddQ0WfEAZ5Wyi8L+x6BA4hOsZV7YN01gzEhQNy/64M=
+github.com/qydysky/part v0.3.4/go.mod h1:93s9ohLtzULet5ZPEUUWrT9BELC30oDZgRpgGSiDye4=
 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=
+github.com/qydysky/part/msgq v0.0.0-20201213120821-f36e49c32bba/go.mod h1:w32TkJNVtTJd4LOS09cq+4uYG6itcN2vsqw+slp44Rg=
 github.com/shirou/gopsutil v2.20.7+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/gopsutil v2.20.8+incompatible h1:8c7Atn0FAUZJo+f4wYbN0iVpdWniCQk7IYwGtgdh1mY=
 github.com/shirou/gopsutil v2.20.8+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
@@ -106,6 +110,8 @@ golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 h1:pLI5jrR7OSLijeIDcmRxNm
 golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c h1:9HhBz5L/UjnK9XLtiZhYAdue5BVKep3PMmS2LuPDt8k=
 golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
+golang.org/x/crypto v0.0.0-20201217014255-9d1352758620 h1:3wPMTskHO3+O6jqTEXyFcsnuxMQOqYSaHsDxcbUXpqA=
+golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/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=
@@ -119,6 +125,8 @@ golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2l
 golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
 golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201216054612-986b41b23924 h1:QsnDpLLOKwHBBDa8nDws4DYNc/ryVW2vCpxCs09d4PY=
+golang.org/x/net v0.0.0-20201216054612-986b41b23924/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=
@@ -136,9 +144,13 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65 h1:Qo9oJ566/Sq7N4hrGftVXs8GI2CXBCuOd4S2wHE/e0M=
 golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201204225414-ed752295db88 h1:KmZPnMocC93w341XZp26yTJg8Za7lhb2KhkYmixoeso=
 golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201218084310-7d0127a74742 h1:+CBz4km/0KPU3RGTwARGh/noP3bEwtHcq+0YcBQM2JQ=
+golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/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=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=