はじめに
hkob の雑記録の第220回目は、昨日インポートしたYouTube のデータベースのリレーションなどを設定していきます。
プロパティの準備
まず、Map と Years のリレーションは作成します。Songs は SongsStr に変えた後で Songs リレーションを追加します。



また、Thumbnail を ThumbnailStr とし、File & Media property で Thumbnail を用意します。

プロパティは以下のようになりました。

Year の自動設定オートメーション
すでに作成した YouTubes ページの Map には全て all を結びつけます。チェックをつけてプルダウンで一気に設定できるので楽ですね。

今後、新しいページを作成した場合に all が設定されるように Set ‘Map’ to YouTubes オートメーションを作成しておきます。

同じように Set ‘Year’ to YouTube も作成します。ひとまずはどのプロパティが編集されても Year を設定するようにしておきます。後で、Date が編集された時だけに条件を狭めます。

設定した値はこれまでのものと同じです。

Song, Thumbnail 設定のスクリプト
ここまで準備したらあとは API で一括設定するだけです。スクリプトは以下のようになりました。
#! /usr/bin/env ruby require "notion_ruby_mapping" include NotionRubyMapping NotionRubyMapping.configure { |c| c.token = ENV["NOTION_API_KEY"] } songs_db = Database.find "235d8e4e98ab80d1a29adfc13458a29d" songs_id_hash = songs_db.query_database.each_with_object({}) do |song, hash| name = song.properties["Name"].full_text hash[name] = song.id end youtube_db = Database.find "246d8e4e98ab806cae9cd5115c53a58b" sp = youtube_db.properties["Songs"] query = sp.filter_is_empty youtube_db.query_database(query).each do |y| yp = y.properties ss = yp["SongsStr"].full_text ts = yp["ThumbnailStr"].url if !ss.empty? ids = ss.split(", ").map { |s| songs_id_hash[s] }.compact yp["Song"].relation = ids end if ts && ts.length < 100 yp["Thumbnail"].files = ts end p [ss, ts] y.save end
実行結果は以下のようになりました。
ruby relation_to_youtube.rb ["私がオバさんになっても", "https://img.youtube.com/vi/MEqN0U7Vox8/sddefault.jpg"] ["見たとおりよ私", "https://img.youtube.com/vi/MyOtj7R2O20/sddefault.jpg"] ["さよなら私の恋", "https://img.youtube.com/vi/9sdM4Z2ULM8/sddefault.jpg"] ["これっきりバイバイ", "https://img.youtube.com/vi/ymLLjMHMw7E/sddefault.jpg"] ["おもしろい [森高コネクション]", "https://img.youtube.com/vi/NDGdFd2IhVg/sddefault.jpg"] ["出たがり", "https://img.youtube.com/vi/Ny0yDSyIvc8/sddefault.jpg"] ["おしゃれ風", "https://img.youtube.com/vi/WhiZBx2Xcbo/sddefault.jpg"] ["うわさ", "https://img.youtube.com/vi/myUws5VcDU4/sddefault.jpg"] ["Hey, VODKA!", "https://img.youtube.com/vi/zM3G-nEj4eU/sddefault.jpg"] ["続・あるOLの青春 〜A子の場合〜 (森高コネクション)", "https://img.youtube.com/vi/4YxMfYAZR18/sddefault.jpg"] ["引き裂かないで二人を", "https://img.youtube.com/vi/OHiZDJzW2yc/sddefault.jpg"] ["長男と田舎もん", "https://img.youtube.com/vi/mrHG3MCOk6M/sddefault.jpg"] ["一月一日", "https://img.youtube.com/vi/yKBorkIh4b0/sddefault.jpg"]
実行中は、こんな形で Notion API で曲のリレーションが設定されたあと、遅延して画像が表示され、さらに遅延してオートメーションで年度が設定されていきます。

最終的に以下のようになりました。

最後に Set ‘Year’ to YouTube オートメーションのトリガ条件を狭めて完了です。

おわりに
なんとか二日かけて YouTube の移行も終わりました。