release: v1.4.0 — 标签系统、操作日志扩展与文档截图更新
ci / ci (22, ubuntu-latest) (push) Canceled after 0s
GitHub Release / release (push) Canceled after 0s
Publish Docker image / build (linux/amd64, ubuntu-latest, amd64) (push) Canceled after 0s
Publish Docker image / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Canceled after 0s
Publish Docker image / merge (push) Canceled after 0s

- 每用户标签与彩色打标,图库 OR/AND 筛选与批量打标
- 操作日志记录登录、删除、设置与标签操作
- API 标签/打标接口;README 与文档站截图同步
This commit is contained in:
O96u committed 2026-09-09 14:46:52 +08:00
1 parent f17d79b236
commit 737235acff
110 files changed
+5881 -778

No files matched your search

+14 -6
View File
@@ -19,6 +19,7 @@ import {
searchImages as searchImagesFromIndex
} from './image-index'
import { DEFAULT_FOLDER, toCanonicalImageKey, validateImageKey } from './image-key'
import type { TagFilterInput } from './tags'
import {
getActiveBackend,
getBackendForKey
@@ -171,15 +172,17 @@ export async function listImageKeys(): Promise<string[]> {
export async function countImages(
userFilter?: number | 'admin',
backendId?: string
backendId?: string,
tagFilter?: TagFilterInput
): Promise<number> {
return countImagesFromIndex(userFilter, backendId)
return countImagesFromIndex(userFilter, backendId, tagFilter)
}
export async function getFolderStorageStats(
userFilter?: number | 'admin'
userFilter?: number | 'admin',
tagFilter?: TagFilterInput
): Promise<FolderStorageStat[]> {
return getFolderStorageStatsFromIndex(userFilter)
return getFolderStorageStatsFromIndex(userFilter, tagFilter)
}
export async function listFoldersForUser(
@@ -188,7 +191,10 @@ export async function listFoldersForUser(
return listFoldersForUserFromIndex(userFilter)
}
export async function getUserScopedStorageStats(userId: number): Promise<{
export async function getUserScopedStorageStats(
userId: number,
tagFilter?: TagFilterInput
): Promise<{
storedCount: number
uploadBytesTotal: number
uploadToday: number
@@ -197,7 +203,7 @@ export async function getUserScopedStorageStats(userId: number): Promise<{
uploadLastMonth: number
byFolder: FolderStorageStat[]
}> {
return getUserScopedStorageStatsFromIndex(userId)
return getUserScopedStorageStatsFromIndex(userId, tagFilter)
}
export async function listImages(options: {
@@ -207,6 +213,7 @@ export async function listImages(options: {
backendId?: string
contentType?: string
uploadSource?: 'web' | 'api'
tagFilter?: TagFilterInput
}): Promise<PaginatedResult<StoredImage>> {
return listImagesFromIndex(options)
}
@@ -219,6 +226,7 @@ export async function searchImages(options: {
backendId?: string
contentType?: string
uploadSource?: 'web' | 'api'
tagFilter?: TagFilterInput
}): Promise<PaginatedResult<StoredImage>> {
return searchImagesFromIndex(options)
}