Omeka Classicでコレクションを一括削除する方法

2023/06/27に公開

概要

Omeka Classicでコレクションを一括削除する方法の一例を紹介します。Omeka Classic (Version 3.1.1)では、コレクションを複数選択して削除するGUIは提供されていません。アイテムについては、同機能が提供されています。

そこで、APIを用いてコレクションの一括削除を行います。

APIキーの取得

以下を参考に、APIの有効化とAPIキーの発行を行います。

https://omeka.org/classic/docs/Admin/Settings/API_Settings/

具体的には、まず以下のページにアクセスします。

/admin/settings/edit-api

そして、ユーザ毎のページにアクセスして、「API Keys」のタブを選択します。「New key label」からAPIキーを発行します。

/admin/users/api-keys/1

Pythonスクリプト

以下のようなPythonスクリプトにより、コレクションの一括削除を行うことができます。以下では、アイテム数が0のコレクションのみを削除するように設定しています。

import requests

api_key = "<取得したAPIキー>" # 要変更
endpoint = "https://example.org/omeka/api" # 要変更

params = {
    "key": api_key
}

# コレクション一覧の取得
url = f"{endpoint}/collections"
collections = requests.get(url, params=params).json()

for collection in collections:

  # コレクションに含まれるアイテム数を取得
  items_count = collection["items"]["count"]

    # アイテム数が0の場合
  if items_count == 0:
      url_collection = collection["url"]
    requests.delete(f"{url_collection}", params=params)

まとめ

Omeka Classicでコレクションを一括削除する際の参考になりましたら幸いです。

Discussion