Some checks failed
Go Build & Release / build (amd64, imagehost-linux-amd64, linux) (push) Has been cancelled
Go Build & Release / build (amd64, imagehost-macos-amd64, darwin) (push) Has been cancelled
Go Build & Release / build (amd64, imagehost-windows-amd64.exe, windows) (push) Has been cancelled
Go Build & Release / build (arm64, imagehost-linux-arm64, linux) (push) Has been cancelled
Go Build & Release / build (arm64, imagehost-macos-arm64, darwin) (push) Has been cancelled
Go Build & Release / docker (push) Has been cancelled
- go.mod: fix version 1.25.0 -> 1.19, use real dependency versions - go.sum: regenerate from resolved real dependencies - static/js/main.js: eliminate innerHTML XSS in renderGallery/uploadFile; add error toast for non-403 responses; created_at fallback - internal/handler/upload.go: add MIME magic validation and 50MB file limit - internal/pan123/model.go: unify FileListReq JSON tags (parentFileID/lastFileID) - internal/service/image_service.go: TrimRight -> TrimSuffix - internal/service/upload_service.go: TrimRight -> TrimSuffix; implement multi-slice upload using io.SectionReader
45 lines
944 B
Go
45 lines
944 B
Go
package service
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"imagehost/internal/pan123"
|
|
)
|
|
|
|
type ImageService struct {
|
|
client *pan123.Client
|
|
parentFileID string
|
|
customDomain string
|
|
}
|
|
|
|
func NewImageService(client *pan123.Client, parentFileID, customDomain string) *ImageService {
|
|
return &ImageService{
|
|
client: client,
|
|
parentFileID: parentFileID,
|
|
customDomain: strings.TrimSuffix(customDomain, "/"),
|
|
}
|
|
}
|
|
|
|
func (s *ImageService) GetImageItems() ([]pan123.FileItem, error) {
|
|
items, _, err := s.client.GetFileList(s.parentFileID, 100, "")
|
|
if err != nil {
|
|
return nil, fmt.Errorf("获取列表失败: %w", err)
|
|
}
|
|
|
|
for i := range items {
|
|
if items[i].UserSelfURL == "" && s.customDomain != "" {
|
|
items[i].UserSelfURL = fmt.Sprintf("%s/%s", s.customDomain, items[i].Filename)
|
|
}
|
|
}
|
|
|
|
return items, nil
|
|
}
|
|
|
|
func (s *ImageService) DeleteImages(ids []string) error {
|
|
if len(ids) == 0 {
|
|
return nil
|
|
}
|
|
return s.client.DeleteFiles(ids)
|
|
}
|