[Python] PythonでSHOTGUNにアクセスする (4) コメントをする・取得する

まだまだつづくSHOTGUN。
今回も、前回に続いて取得の仕方がいまいちわかりにくかったものの取得方法で
コメントの取得と、コメントの返信(Replyまわり)について。

まず、コメントの書き方。

基本はほかのEntityへのデータ登録と同様、NoteEntityにcreateをします。
コメントの記入先は「note_links」フィールドに、コメントしたいデータのIDを指定します。
このフィールドはMultEntityなので、配列で指定します。

記憶があいまいなのですが、Noteを一度作成してからそのNoteのIDを
コメントをしたいデータ側でupdateした場合、トップページのすべてやアクティビティに
コメントが表示されないという現象があったので、
Note作成時にnote_linksにEntityをセットするのが一番安心です。

基本、どのEntityに対してもコメントできるので、
前回・前々回で作っている Base クラスに対してコメントをする という
関数を追加します。

続いてNoteの取得と返信の取得まわり。

Entityのデータにコメントがあった場合、それを取得するには open_notes Fields で取得できます。
ので、Baseクラスに対して

結果はBaseEntityを継承したNoteクラスを作成して
それで取得します。

Note関係で直種なのが返信(Reply)の取得方法。
取得方法は、 find(“Reply”)したくなるものなのですが、そうではなく

shotgun_api3.Shotgun の、note_thread_read 関数を使用します。
この関数を使用することで、[Note,Reply…] の配列で、Note本体とその返信を取得することができます。

あと、基本Entityの基本になる名前は「code」であることが多いですが、ReplyとNoteは「content」となります。

Noteに関連して、例えばノートに添付されたチェックバック画像なんかをダウンロードしたい場合の書き方。

基本の書き方は

shotgun_api3.Shotgun.download_attachment(<AttachEntityのDict>,ダウンロード先)
で取得します。
Noteの場合は、 attachmentsフィールドだし、Versionのチェックムービーであれば
version[“sg_uploaded_movie”] sg_uploaded_moveフィールドにはいっているDict型をセットします。

以上、ノート周りでした。
次はBatchまわり?まだまだしばらくの間はSHOTGUNが続きます。

コメントを残す

メールアドレスが公開されることはありません。

*