item(項目)
透過 eagle.item API 可以方便的查詢當前資源庫內容或新增新的內容到資源庫中。
eagle.onPluginCreate(async (plugin) => {
// 取得 Eagle 應用當前被選中的檔案
let items = await eagle.item.getSelected();
let item = items[0];
// 修改屬性
item.name = 'New Name';
item.tags = ['tag1', 'tag2'];
// 儲存修改
await item.save();
});🦄 最佳實踐: 為了確保數據安全性,請使用 item API 提供的 save() 方法進行數據的存取與修改,應避免直接修改 Eagle 資源庫底下的 metadata.json 或任意檔案。
方法
get(options)
萬用搜尋方法,可獲取指定條件的檔案。
optionsObject - 查詢條件idstring (可選) - 檔案 ididsstring[] (可選) - 檔案 id 數組isSelectedboolean (可選) - 正在被選中的檔案isUntaggedboolean (可選) - 尚未標籤isUnfiledboolean (可選) - 尚未分類keywordsstring[] (可選) - 包含關鍵字tagsstring[] (可選) - 包含標籤foldersstring[] (可選) - 包含資料夾extstring (可選) - 格式annotationstring (可選) - 註解ratingInterger (可選) - 評分,0 ~ 5urlstring (可選) - 來源連結shapestring (可選) - 形狀,square、portrait、panoramic-portrait、landscape、panoramic-landscapefieldsstring[] (可選) - 指定返回的欄位,僅返回需要的資料以提升效能
返回
Promise<items: Item[]>-items查詢結果
getAll()
返回所有檔案
返回
Promise<items: Item[]>-items所有檔案
🦄 最佳實踐: 如果資源庫檔案數量非常多(例:20W+),避免無限制的呼叫此方法,避免造成應用效能的降低。
getById(itemId)
返回指定 ID 之檔案
itemIdstring返回
Promise<item: Item>-item對應 ID 的檔案
getByIds(itemIds)
返回指定 IDs 之檔案
itemIdsstring[]返回
Promise<items: Item[]>-items對應 IDs 的檔案
getIdsWithModifiedAt()
快速獲取所有檔案的 ID 和最後修改時間
返回
Promise<items: Object[]>-items包含id和modifiedAt的物件陣列
getSelected()
返回應用當前選中的檔案
返回
Promise<items: Item[]>-items選中之檔案
count(options)
計算符合條件的檔案數量,支援與 get() 方法相同的查詢條件。
optionsObject - 查詢條件(與get()方法相同)idstring (可選) - 檔案 ididsstring[] (可選) - 檔案 id 陣列isSelectedboolean (可選) - 正在被選中的檔案isUntaggedboolean (可選) - 尚未標籤isUnfiledboolean (可選) - 尚未分類keywordsstring[] (可選) - 包含關鍵字tagsstring[] (可選) - 包含標籤foldersstring[] (可選) - 包含資料夾extstring (可選) - 格式annotationstring (可選) - 註解ratingInterger (可選) - 評分,0 ~ 5urlstring (可選) - 來源連結shapestring (可選) - 形狀,square、portrait、panoramic-portrait、landscape、panoramic-landscape
返回
Promise<count: number>-count符合條件的檔案數量
countAll()
快速返回資源庫中所有檔案的總數
返回
Promise<count: number>-count所有檔案數量
countSelected()
返回應用當前選中的檔案數量
返回
Promise<count: number>-count選中的檔案數量
select(itemIds)
選中指定的檔案
itemIdsstring[] - 要選中的檔案 ID 陣列返回
Promise<result: boolean>-result是否選中成功
addFromURL(url, options)
將圖片連結新增至 Eagle
urlstring - 欲新增圖片連結,支援http、https、base64optionsObjectnamestring (可選) - 檔案名websitestring (可選) - 來源網址tagsstring[] (可選) - 標籤foldersstring[] (可選) - 所屬資料夾 IDsannotationstring (可選) - 註解
返回
Promise<itemId: string>-itemId成功新增的項目 ID
addFromBase64(base64, options)
新增 base64 圖片至 Eagle
base64string - base64 格式圖片optionsObjectnamestring (可選) - 檔案名websitestring (可選) - 來源網址tagsstring[] (可選) - 標籤foldersstring[] (可選) - 所屬資料夾 IDsannotationstring (可選) - 註解
返回
Promise<itemId: string>-itemId成功新增的項目 ID
addFromPath(path, options)
從本機檔案路徑新增檔案至 Eagle
pathstring - 欲新增檔案路徑optionsObjectnamestring (可選) - 檔案名websitestring (可選) - 來源網址tagsstring[] (可選) - 標籤foldersstring[] (可選) - 所屬資料夾 IDsannotationstring (可選) - 註解
返回
Promise<itemId: string>-itemId成功新增的項目 ID
addBookmark(url, options)
新增書籤連結至 Eagle
urlstring - 欲新增書籤連結optionsObjectnamestring (可選) - 書籤名base64string (可選) - 自訂縮圖 base64 格式tagsstring[] (可選) - 標籤foldersstring[] (可選) - 所屬資料夾 IDsannotationstring (可選) - 註解
返回
Promise<itemId: string>-itemId成功新增的項目 ID
open(itemId, options)
在全部列表顯示 itemId 對應的檔案
itemIdstring - 欲顯示檔案 IDoptionsObject (可選) - 開啟選項windowboolean (可選) - 是否在新視窗中開啟檔案,預設為false
返回
Promise<result: boolean>
類:Item
由 Eagle API get返回的 Object 類型,提供修改、儲存功能。
🦄 最佳實踐: 為了確保數據安全性,請使用 Item 實例提供的 save() 方法進行數據的存取與修改,應避免直接修改 Eagle 資源庫底下的 metadata.json 或任意檔案。
實例方法
save()
儲存所有修改
返回
Promise<result: boolean>-result是否修改成功
moveToTrash()
將檔案丟到垃圾桶
返回
Promise<result: boolean>-result是否成功刪除
replaceFile(filePath)
使用指定檔案替換原檔案,將自動重新整理縮圖,無須再次呼叫 refreshThumbnail()。
🦄 最佳實踐: 直接對要更改的檔案進行操作是具有風險的,若過程中出現錯誤或異常,都有可能造成檔案損毀且無法復原。因此,先將新版本檔案儲存在電腦其它路徑,確定無誤後,再使用 replaceFile()方法來替換是更穩健的作法。
filePathstring - 欲替換檔案之路徑返回
Promise<result: boolean>-result是否替換成功
refreshThumbnail()
重新重新整理檔案縮圖,同時也會重新獲取檔案大小、顏色分析、尺寸等屬性。
返回
Promise<result: boolean>-result是否成功
setCustomThumbnail(thumbnailPath)
為檔案設定自定縮圖。
thumbnailPathstring - 欲設定縮圖的路徑返回
Promise<result: boolean>-result是否替換成功
open(options)
在全部列表顯示此檔案
optionsObject (可選) - 開啟選項windowboolean (可選) - 是否在新視窗中開啟檔案,預設為false
返回
Promise<void>
select()
選中此檔案
返回
Promise<result: boolean>-result是否選中成功
實例屬性
id string
id string唯讀,檔案 ID。
name string
name string檔案名。
ext string
ext string唯讀,檔案副檔名。
width Interger
width Interger圖片寬度。
height Interger
height Interger圖片高度。
url string
url string來源連結。
isDeleted boolean
isDeleted boolean唯讀,檔案是否在垃圾桶。
annotation string
annotation string檔案註解。
tags string[]
tags string[]檔案標籤。
folders string[]
folders string[]所屬資料夾 ids。
palettes Object[]
palettes Object[]唯讀,色票資訊。
size Interger
size Interger唯讀,檔案大小。
star Interger
star Interger評分資訊,0 ~ 5。
importedAt Interger
importedAt Interger唯讀,新增時間。
modifiedAt Interger
modifiedAt Interger唯讀,最後修改時間。
noThumbnail boolean
noThumbnail boolean唯讀,檔案是否有縮圖,無縮圖檔案將以原始檔案進行預覽。
noPreview boolean
noPreview boolean唯讀,檔案是否支援雙擊預覽。
filePath string
filePath string唯讀,返回檔案所在路徑。
fileURL string
fileURL string唯讀,返回檔案所在路徑之連結(file:///)。
thumbnailPath string
thumbnailPath string唯讀,返回縮圖路徑。
thumbnailURL string
thumbnailURL string唯讀,返回縮圖連結(file:///),如需在 HTML 顯示該檔案,可以使用這個屬性。
metadataFilePathstring
metadataFilePathstring唯讀,該檔案 metadata.json 所在位置。
🦄 最佳實踐: 為了確保數據安全性,請使用 item API 提供的 save() 方法進行數據的存取與修改,應避免直接 metadata.json。
Last updated