✨
Omeka Classicでコレクションを一括削除する方法
概要
Omeka Classicでコレクションを一括削除する方法の一例を紹介します。Omeka Classic (Version 3.1.1)では、コレクションを複数選択して削除するGUIは提供されていません。アイテムについては、同機能が提供されています。
そこで、APIを用いてコレクションの一括削除を行います。
APIキーの取得
以下を参考に、APIの有効化とAPIキーの発行を行います。
具体的には、まず以下のページにアクセスします。
/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