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)

万能検索メソッド。指定条件のファイルを取得できます。

  • options Object - 検索条件

    • id string (オプション) - ファイル id

    • ids string[] (オプション) - ファイル id の配列

    • isSelected boolean (オプション) - 現在選択されているファイル

    • isUntagged boolean (オプション) - 未タグ付け

    • isUnfiled boolean (オプション) - 未分類

    • keywords string[] (オプション) - キーワードを含む

    • tags string[] (オプション) - タグを含む

    • folders string[] (オプション) - フォルダを含む

    • ext string (オプション) - 形式

    • annotation string (オプション) - 注釈

    • rating Integer (オプション) - 評価, 0〜5

    • url string (オプション) - ソースリンク

    • shape string (オプション) - 形状, squareportraitpanoramic-portraitlandscapepanoramic-landscape

  • 返り値 Promise<items: Item[]> - items 検索結果

let items = await eagle.item.get({
    ids: [],
    isSelected: true,
    isUnfiled: true,
    isUntagged: true,
    keywords: [""],
    ext: "",
    tags: [],
    folders: [],
    shape: "square",
    rating: 5,
    annotation: "",
    url: ""
});


let selected = await eagle.item.get({
    isSelected: true
});

let jpgs = await eagle.item.get({
    ext: "jpg"
});

getAll()

全てのファイルを返す

  • 返り値 Promise<items: Item[]> - items全てのファイル

let items = await eagle.item.getAll();
console.log(items);

🦄 ベストプラクティス: リソースリポジトリのファイル数が非常に多い場合(例:20万件以上)、無制限にこのメソッドを呼び出さないでください。アプリケーションのパフォーマンスが低下する可能性があります。

getById(itemId)

指定のIDのファイルを返す

  • itemId string

  • 返り値 Promise<item: Item> - item該当IDのファイル

let item = await eagle.item.getById('item_id');
console.log(item);

getByIds(itemIds)

指定されたIDのファイルを返す

  • itemIds string[]

  • 返り値 Promise<items: Item[]> - items 該当IDのファイル

let items = await eagle.item.getByIds(['item_id_1', 'item_id_2']);
console.log(items);

getSelected()

アプリで現在選択されているファイルを返す

  • 返り値 Promise<items: Item[]> - items選択されたファイル

let selected = await eagle.item.getSelected();
console.log(selected);

addFromUrl(url, options)

画像リンクを Eagle に追加する

  • urlstring - 追加したい画像リンク。 httphttpsbase64 に対応。

  • options Object

    • name string (オプション) - ファイル名

    • website string (オプション) - 送信元のサイト

    • tags string[] (オプション) - タグ

    • folders string[] (オプション) - 所属フォルダの IDs

    • annotation string (オプション) - 注釈

  • 返り値 Promise<itemId: string> - itemId正常に作成されたプロジェクトのID

const imgURL = 'https://cdn.dribbble.com/userupload/3885520/file/original-ee68b80a6e10edab6f192e1e542da6ed.jpg';
const itemId = await eagle.item.addFromURL(imgURL, { 
    name: 'Camping', 
    website: 'https://dribbble.com/shots/19744134-Camping-2', 
    tags: ["Dribbble", "Illustration"],
    folders: [],
    annotation: 'add from eagle api',
});

addFromBase64(base64, options)

base64 画像を Eagle に追加する

  • base64string - base64形式の画像

  • options Object

    • name string (オプション) - ファイル名

    • website string (オプション) - 送信元のサイト

    • tags string[] (オプション) - タグ

    • folders string[] (オプション) - 所属フォルダの IDs

    • annotation string (オプション) - 注釈

  • 返り値 Promise<itemId: string> - itemId正常に作成されたプロジェクトのID

const base64 = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNDAgMjM0IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNDAgMjM0Ij48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzI2MTMwMCIgZD0iTTEwIDEwaDIyMHYyMTMuOTk5aC0yMjB6Ii8+PHBhdGggZD0iTTAgMHYyMzRoMjQwLjAwMXYtMjM0aC0yNDAuMDAxem0xMCAxMGgyMjAuMDAxdjIxNGgtMjIwLjAwMXYtMjE0em03My4yNTIgMTIyLjUwMWwtNy45MiAyOS45ODJjLS4xNjUuODI0LS40OTUgMS4wMTgtMS40ODUgMS4wMThoLTE0LjY4N2MtLjk4OCAwLTEuMTUyLS4zMy0uOTg4LTEuNDg1bDI4LjM4LTk5LjQ0OGMuNDk1LTEuODE1LjgyNS0zLjM3Ny45OS04LjMyOCAwLS42Ni4zMy0uOTkuODI1LS45OWgyMC45NTVjLjY2IDAgLjk5LjE2NSAxLjE1NS45OWwzMS44NDUgMTA3Ljk0Yy4xNjUuODI0IDAgMS4zMi0uODI1IDEuMzJoLTE2LjVjLS44MjQgMC0xLjMxOS0uMTkzLTEuNDg0LS44NTRsLTguMjUtMzAuMTQ2aC0zMi4wMTF6bTI3Ljg4NS0xNi4yNWMtMi44MDUtMTEuMDU2LTkuNDA1LTM1LjI4Ni0xMS44OC00N2gtLjE2NWMtMi4xNDYgMTEuNzE1LTcuNDI1IDMxLjQ5LTExLjU1IDQ3aDIzLjU5NXptNDQuOTkzLTU1LjU3OGMwLTYuNDM1IDQuNDU1LTEwLjIzIDEwLjIzLTEwLjIzIDYuMTA1IDAgMTAuMjMgNC4xMjUgMTAuMjMgMTAuMjMgMCA2LjYtNC4yOSAxMC4yMy0xMC4zOTUgMTAuMjMtNS45NCAwLTEwLjA2NS0zLjYzLTEwLjA2NS0xMC4yM3ptMS4xMiAyMi43MzJjMC0uODI1LjMzLTEuMTU1IDEuMTU1LTEuMTU1aDE1LjY4OWMuODI1IDAgMS4xNTUuMzMgMS4xNTUgMS4xNTV2NzguOTM5YzAgLjgyNi0uMTY1IDEuMTU2LTEuMTU1IDEuMTU2aC0xNS41MjRjLS45OSAwLTEuMzItLjQ5Ni0xLjMyLTEuMzJ2LTc4Ljc3NXoiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBmaWxsPSIjRkY3QzAwIi8+PC9zdmc+';
const itemId = await eagle.item.addFromBase64(base64, { 
    name: 'Illustation Logo', 
    website: 'https://www.eagle.cool/', 
    tags: ["Adobe", "Logo"],
    folders: [],
    annotation: 'ai logo form api',
});

addFromPath(path, options)

从本地文件路径添加文件至 Eagle

  • pathstring - 欲添加文件路径

  • options Object

    • name string (可选) - 文件名

    • website string (可选) - 来源网址

    • tags string[] (可选) - 标签

    • folders string[] (可选) - 所属文件夹 IDs

    • annotation string (可选) - 注释

  • 返回 Promise<itemId: string> - itemId成功创建的项目 ID

const filePath = 'C:\\Users\\User\\Downloads\\ai.svg';
const itemId = await eagle.item.addFromPath(filePath, { 
    name: 'Illustation Logo', 
    website: 'https://www.eagle.cool/', 
    tags: ["Adobe", "Logo"],
    folders: [],
    annotation: 'ai logo form api',
});

addBookmark(url, options)

添加书签链接至 Eagle

  • urlstring - 欲添加书签链接

  • options Object

    • name string (可选) - 书签名

    • base64 string (可选) - 自订缩图 base64 格式

    • tags string[] (可选) - 标签

    • folders string[] (可选) - 所属文件夹 IDs

    • annotation string (可选) - 注释

  • 返回 Promise<itemId: string> - itemId成功创建的项目 ID

const bookmarkURL = 'https://www.google.com/';
const itemId = await eagle.item.addBookmark(bookmarkURL, { 
    name: 'Eagle', 
    tags: ["Eagle", "Site"],
    folders: [],
    annotation: 'bookmark form api',
});
const bookmarkURL = 'https://www.google.com/';
const base64 = 'data:image/png;base64,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';
const itemId = await eagle.item.addBookmark(bookmarkURL, { 
    name: 'Eagle', 
    base64: base64,
    tags: ["Eagle", "Site"],
    folders: [],
    annotation: 'bookmark form api',
});

open(itemId)

すべてのリストに itemId に対応するファイルを表示する

  • itemIdstring - 表示するファイルID

  • 戻り値 Promise<result:boolean>

await eagle.item.open("item_id");

ヒント:ファイルを開くために、itemインスタンスの open() メソッドを直接呼び出すこともできます。

クラス:Item

Eagle API getによって返されるObjectタイプで、変更および保存機能を提供します。

🦄 ベストプラクティス: データの安全性を確保するために、Itemインスタンスが提供する save() メソッドを使用してデータの読み書きと変更を行ってください。Eagle リソースリポジトリの下の metadata.json や任意のファイルを直接変更しないでください。

インスタンスメソッド

save()

すべての変更を保存

  • 戻り値 Promise<result:boolean> - result変更が成功したかどうか

let item = await eagle.item.getById('item_id');
item.name = 'New Name';
item.tags = ['tag_1', 'tag_2'];

// 変更を保存
await item.save();

replaceFile(filePath)

指定されたファイルで元のファイルを置き換えます。サムネイルが自動的に更新されるため、refreshThumbnail()を再度呼び出す必要はありません。

🦄 ベストプラクティス: 直接変更するファイルに対して操作を行うことはリスクが伴います。エラーや例外が発生した場合、ファイルが破損して復元不可能になる可能性があります。したがって、新しいバージョンのファイルをコンピュータの他のパスに保存し、確認が取れた後で replaceFile() メソッドを使用して置き換えることが、より確実な方法です。

  • filePathstring - 履歴置換ファイルのパス

  • 戻り値 Promise<result:boolean> - result置換が成功したかどうか

let item = await eagle.item.getById('item_id');
let result = await item.replaceFile('new_file_path');

console.log(result);

refreshThumbnail()

ファイルのサムネイルを更新し、ファイルサイズ、色分析、寸法などの属性も再取得します。

  • 戻り値 Promise<result:boolean> - result成功したかどうか

let item = await eagle.item.getById('item_id');
let result = await item.refreshThumbnail();

console.log(result);

setCustomThumbnail(thumbnailPath)

ファイルにカスタムサムネイルを設定します。

  • thumbnailPathstring - サムネイルのパスを設定します。

  • 戻り値 Promise<result:boolean> - result置換が成功したかどうか

let item = await eagle.item.getById('item_id');
let result = await item.setCustomThumbnail('thumbnail_path');

console.log(result);

open()

このファイルをすべてのリストに表示する

  • 戻り値 Promise<void>

ヒント:ファイルを開くために、eagle.item.open(itemId) メソッドを直接呼び出すこともできます。

let item = await eagle.item.getById('item_id');
await item.open();

// 等価
await eagle.item.open('item_id');

インスタンス属性

id string

読み取り専用、ファイルID。

name string

ファイル名。

ext string

読み取り専用、ファイル拡張子。

width Interger

画像の幅。

height Interger

画像の高さ。

url string

出典リンク。

isDeleted boolean

読み取り専用、ファイルがゴミ箱に入っているかどうか。

annotation string

ファイルの注釈。

tags string[]

ファイルのタグ。

folders string[]

所属フォルダの ids。

palettes Object[]

読み取り専用、カラーパレット情報。

size Interger

読み取り専用、ファイルサイズ。

star Interger

評価情報、0 ~ 5

importedAt Interger

読み取り専用、追加された時間。

let date = new Date(item.importedAt);

noThumbnail boolean

読み取り専用、ファイルにサムネイルがないかどうか。サムネイルがないファイルは、元のファイルでのプレビューになります。

noPreview boolean

読み取り専用、ファイルがダブルクリックでプレビューに対応しているかどうか。

filePath string

読み取り専用、ファイルのパスを返します。

fileURL string

読み取り専用、ファイルのパスのリンク(file:///)を返します。

thumbnailPath string

読み取り専用、サムネイルのパスを返します。

thumbnailURL string

読み取り専用、サムネイルのリンク(file:///)を返します。HTMLでこのファイルを表示するには、この属性を使用します。

metadataFilePathstring

読み取り専用、このファイルの metadata.json の場所。

🦄 ベストプラクティス: データの安全性を確保するために、item APIが提供する save() メソッドを使用してデータの読み書きと変更を行ってください。metadata.jsonを直接変更しないでください。

最后更新于