"strconv"
"strings"
"sync"
+ "sync/atomic"
"time"
c "github.com/qydysky/bili_danmu/CV"
type GetFunc struct {
*c.Common
- l sync.RWMutex
+ count atomic.Int32
+ l sync.RWMutex
}
type cacheItem struct {
func (c *GetFunc) Get(key string) {
apilog := apilog.Base_add(`Get`)
+ current := c.count.Add(1)
+ defer c.count.Add(-1)
+
+ if current > 10 {
+ apilog.L(`E: `, `max loop`)
+ return
+ }
+
if api_limit.TO() {
return
} //超额请求阻塞,超时将取消
}
)
- if fList, ok := api_can_get[key]; ok {
+ if fList, ok := api_can_get[key]; !ok {
+ apilog.L(`E: `, `no api`, key)
+ } else {
for _, fItem := range fList {
apilog.Log_show_control(false).L(`T: `, `Get`, key)
continue
}
}
+
if checkf, ok := check[key]; ok {
c.l.RLock()
if checkf() {
c.l.RUnlock()
break
+ } else {
+ c.l.RUnlock()
+ apilog.L(`W: `, `check fail`, key)
+ c.Get(key)
}
- c.l.RUnlock()
}
}
}
require (
github.com/gotk3/gotk3 v0.6.3
github.com/mdp/qrterminal/v3 v3.2.0
- github.com/qydysky/part v0.28.20240325172911
+ github.com/qydysky/part v0.28.20240331120148
github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
golang.org/x/text v0.14.0
github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/qydysky/part v0.28.20240325172911 h1:2wu7BIpfsxvoXYZjzd79NQCU4B4ZY61Iu97NwxvupRQ=
-github.com/qydysky/part v0.28.20240325172911/go.mod h1:XytV5dI1Y7+qvjhsa2TMvi55RBZQQf0LCDYQ1kUCYqM=
+github.com/qydysky/part v0.28.20240331120148 h1:LiZsVm+U50+Lf+L6b+MaGZcytoQCnWVWZ35axOeyebs=
+github.com/qydysky/part v0.28.20240331120148/go.mod h1:XytV5dI1Y7+qvjhsa2TMvi55RBZQQf0LCDYQ1kUCYqM=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=