//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")
},
})
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
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"
}
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
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
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 (
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=
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=
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=
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=