(m *ctrl.Control[*nano.Ctx], botavartarurl, botname string)
| 81 | } |
| 82 | |
| 83 | func drawstatus(m *ctrl.Control[*nano.Ctx], botavartarurl, botname string) (sendimg image.Image, err error) { |
| 84 | diskstate, err := diskstate() |
| 85 | if err != nil { |
| 86 | return |
| 87 | } |
| 88 | diskcardh := 40 + (20+50)*len(diskstate) + 40 - 20 |
| 89 | |
| 90 | moreinfo, err := moreinfo(m) |
| 91 | if err != nil { |
| 92 | return |
| 93 | } |
| 94 | moreinfocardh := 30 + (20+32*72/96)*len(moreinfo) + 30 - 20 |
| 95 | |
| 96 | basicstate, err := basicstate() |
| 97 | if err != nil { |
| 98 | return |
| 99 | } |
| 100 | |
| 101 | dldata := (*[]byte)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&bgdata)))) |
| 102 | if dldata == (*[]byte)(nil) || uintptr(time.Since(boottime).Hours()/24) >= atomic.LoadUintptr(&bgcount) { |
| 103 | pic, err1 := setu.DefaultPool.Roll("") |
| 104 | if err1 != nil { |
| 105 | return nil, err1 |
| 106 | } |
| 107 | data, err1 := os.ReadFile(pic) |
| 108 | if err1 != nil { |
| 109 | return nil, err1 |
| 110 | } |
| 111 | atomic.AddUintptr(&bgcount, 1) |
| 112 | atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&bgdata)), unsafe.Pointer(&data)) |
| 113 | dldata = &data |
| 114 | } |
| 115 | data := *dldata |
| 116 | |
| 117 | back, _, err := image.Decode(bytes.NewReader(data)) |
| 118 | if err != nil { |
| 119 | return |
| 120 | } |
| 121 | |
| 122 | data, err = web.GetData(botavartarurl) |
| 123 | if err != nil { |
| 124 | return |
| 125 | } |
| 126 | avatar, _, err := image.Decode(bytes.NewReader(data)) |
| 127 | if err != nil { |
| 128 | return |
| 129 | } |
| 130 | avatarf := imgfactory.Size(avatar, 200, 200) |
| 131 | |
| 132 | fontbyte, err := file.GetLazyData(text.GlowSansFontFile, nano.Md5File, true) |
| 133 | if err != nil { |
| 134 | return |
| 135 | } |
| 136 | |
| 137 | canvas := gg.NewContext(1280, 70+250+40+380+diskcardh+40+moreinfocardh+40+70) |
| 138 | |
| 139 | bh, bw, ch, cw := float64(back.Bounds().Dy()), float64(back.Bounds().Dx()), float64(canvas.H()), float64(canvas.W()) |
| 140 |
no test coverage detected