🐡
ResourceSyncのPythonライブラリを試す
概要
ResourceSyncのPythonライブラリである「py-resourcesync」を試したので、その備忘録です。
セットアップ
git clone https://github.com/resourcesync/py-resourcesync
cd py-resourcesync
python setup install
実行
resourcelist
まず、出力用のresource_dir
ディレクトリを作成します。カレントディレクトリにex_resource_dir
フォルダが作成されます。
resource_dir = "ex_resource_dir"
!mkdir -p $resource_dir
次に以下を実行します。適宜generatorを変更して使用するようですが、以下ではEgGenerator
というサンプルのものを使用しています。
from resourcesync.resourcesync import ResourceSync
# from my_generator import MyGenerator
from resourcesync.generators.eg_generator import EgGenerator
my_generator = EgGenerator()
metadata_dir = "ex_metadata_dir" # 適宜変更してください。
rs = ResourceSync(strategy=0,
resource_dir=resource_dir,
metadata_dir=metadata_dir)
rs.generator = my_generator
rs.execute()
結果、ex_resource_dir/ex_metadata_dir
に、.well_known
、capabilitylist.xml
、resourcelist_0000.xml
が作成されます。
capabilitylist.xml
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:rs="http://www.openarchives.org/rs/terms/">
<rs:ln href="http://www.example.com/.well-known/resourcesync" rel="up" />
<rs:md capability="capabilitylist" />
<url>
<loc>http://www.example.com/metadata_dir/resourcelist_0000.xml</loc>
<rs:md capability="resourcelist" />
</url>
</urlset>
resourcelist_0000.xml
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:rs="http://www.openarchives.org/rs/terms/">
<rs:ln href="http://www.example.com/metadata_dir/capabilitylist.xml" rel="up" />
<rs:md at="2022-11-21T00:13:46Z" capability="resourcelist" completed="2022-11-21T00:13:46Z" />
<url>
<loc>http://www.resourcesync.org</loc>
<lastmod>2016-10-01T00:00:00Z</lastmod>
<rs:md hash="md5:cc9895a21e335bbe66d61f2b62ce3a8e" length="20" type="application/xml" />
</url>
</urlset>
changelist
strategy
を1
に変更することでnew_changelist
、2
に変更することでinc_changelist
を作成することができました。
Resourcedump と Changedump
strategy
を3
に変更することでresourcedump
、4
に変更することでchangedump
を作成できるようですが、これらについては設定方法を十分に理解することができず、未検証です。
まとめ
ResourceSyncの実装方法を調査する上で参考になりました。
他の方の参考にもなりましたら幸いです。
Discussion