原画対照表 @ AboutModels

各貸手に投稿されている原画を取り込んで、自分のサイトの原画idと照らし合わせる。

参考:ProviderOriginalPicturesController

カラム

name和名typedefaultnulllimitnote
provider_id貸手idintegerfalse
providers_original_picture_id貸手側の原画idintegerfalse
demanders_original_picture_id借手側の原画idintegerfalse

検証

カラム別

provider_id

  • nullでないこと。
  • 数値であること
  • 存在する貸手であること。

providers_original_picture_id

  • nullでないこと。
  • 数値であること

demanders_original_picture_id

  • nullでないこと。
  • 数値であること
  • 存在する原画であること。

機能

対照表取得

self.get_one pid, popid

パラメータ

  • pid:貸手id
  • popid:貸手側原画id

戻り

対照表オブジェクト

解説

  • 対照表モデルにを問い合わせ、対照表を取得する。
    • 貸手idと貸手側原画idを渡す。
  • 取得した対照表を返す。
  • 例外ケース
    • 該当する対照表が存在しなかったら、新規に興した対照表オブジェクトを返す。

貸手側原画同期

modify_original_picture attr

パラメータ

  • attr:貸手側の原画カラム値

戻り

原画オブジェクト

解説

貸手側に登録されている原画の情報を取り込んで同期する。

  • 自身に原画がリンクしてないとき
    • 原画オブジェクトを新規に興す。
  • 自身に原画がリンクしているとき
    • 自身から原画を取得する。
  • 原画にカラム値をセットする。
    • 原画のカラム値を貸手側の原画カラム値からセットする。
  • 原画オブジェクトを保存する。
  • 原画オブジェクトを返す。

貸手側実素材同期

self.modify_picture attr

パラメータ

  • attr:貸手側の実素材カラム値

戻り

実素材オブジェクト

解説

貸手側に登録されている実素材の情報を取り込んで同期する。

  • 実素材に原画idRevision取得を依頼して、実素材を取得する。
    • 原画idとRevisionを渡す。
  • 実素材が取得できないとき
    • 実素材オブジェクトを新規に興す。
  • 実素材にカラム値をセットする。
  • 実素材を返す。

貸手側素材同期

self.modify_resource_picture attr

パラメータ

  • attr:貸手側の素材カラム値

戻り

素材オブジェクト

解説

貸手側に登録されている素材の情報を取り込んで同期する。

  • 素材に原画id取得を依頼して、素材を取得する。
    • 原画idを渡す。
  • 素材が取得できないとき
    • 素材オブジェクトを新規に興す。
  • 素材にカラム値をセットする。
  • 素材を返す。

絵師id置換

self.replace_artist pid, attr

パラメータ

  • pid:貸手id
  • attr:貸手側のカラム値

戻り

真偽

  • 変換の成否を返す。

解説

絵師対照表を使って、貸手側の絵師idを借手側の絵師idに変換して返す。パラメータのカラム値を破壊する。

  • 絵師対照表に対照表取得を依頼して、絵師対照表オブジェクトを取得する。
    • 貸手idと(貸手側のカラム値から取り出した)絵師idを渡す。
  • 絵師対照表オブジェクトから、借手側の絵師を取得する。
  • カラム値の絵師idを借手側の絵師のidで置き換える。
  • trueを返す。
  • 例外ケース
    • 借手側の絵師がなかったとき、falseを返す。

ライセンス置換

self.replace_license pid, attr

パラメータ

  • pid:貸手id
  • attr:貸手側のカラム値

戻り

真偽

  • 変換の成否を返す。

解説

ライセンス対照表を使って、貸手側のライセンスidを借手側のライセンスidに変換して返す。パラメータのカラム値を破壊する。

  • ライセンス対照表に対照表取得を依頼して、ライセンス対照表オブジェクトを取得する。
    • 貸手idと(貸手側のカラム値から取り出した)ライセンスidを渡す。
  • ライセンス対照表オブジェクトから、借手側のライセンスを取得する。
  • カラム値のライセンスidを借手側のライセンスのidで置き換える。
  • trueを返す。
  • 例外ケース
    • 借手側のライセンスがなかったとき、falseを返す。

実素材id置換

self.replace_picture pid, attr

パラメータ

  • pid:貸手id
  • attr:貸手側のカラム値

戻り

真偽

  • 変換の成否を返す。

解説

原画を使って、貸手側の実素材idを借手側の実素材idに変換して返す。パラメータのカラム値を破壊する。

  • 実素材にhead取得を依頼して、実素材を取得する。
    • 貸手側のカラム値から取り出した原画idを渡す。
  • カラム値の実素材idを借手側の実素材のidで置き換える。
  • trueを返す。
  • 例外ケース
    • 借手側の実素材がなかったとき、falseを返す。

原画id置換

self.replace_original_picture pid, attr

パラメータ

  • pid:貸手id
  • attr:貸手側のカラム値

戻り

真偽

  • 変換の成否を返す。

解説

原画対照表を使って、貸手側の原画idを借手側の原画idに変換して返す。パラメータのカラム値を破壊する。

  • 原画対照表に対照表取得を依頼して、原画対照表オブジェクトを取得する。
    • 貸手idと(貸手側のカラム値から取り出した)原画idを渡す。
  • 原画対照表オブジェクトから、借手側の原画を取得する。
  • カラム値の原画idを借手側の原画のidで置き換える。
  • trueを返す。
  • 例外ケース
    • 借手側の原画がなかったとき、falseを返す。

インポート

self.import pid, original_pictures, pictures

パラメータ

  • pid:貸手id
  • original_pictures:貸手側の原画リスト
    • 原画のカラム値(画像を含んだ素材を含む)
  • pictures:貸手側の実素材リスト
    • 実素材のカラム値(画像データを含む)

戻り

Hash

  • インポートに失敗した結果をHashで返す。
    • original_pictures:失敗した原画のカラム値を配列で
    • pictures:失敗した実素材のカラム値を配列で
    • resource_pictures:失敗した素材のカラム値を配列で

解説

  • トランザクションは全件単位となる。
  • 自身に原画インポートを依頼して、インポートに失敗した原画のカラム値を取得する。
    • 貸手idと貸手側原画リストを渡す。
  • 自身に実素材インポートを依頼して、インポートに失敗した実素材のカラム値を取得する。
    • 貸手idと貸手側実素材リストを渡す。
  • 自身に素材インポートを依頼して、インポートに失敗した素材のカラム値を取得する。
    • 貸手idと貸手側原画リストを渡す。
  • 各失敗したカラム値をHashで返す。
  • 例外ケース
    • いずれかのインポートが失敗したとき、処理をロールバックして中断して返す。

素材停止

self.unpublish_resource_picture provider_original_picture, providers_original_picture_attr

パラメータ

  • provider_original_picture:対照表
  • providers_original_picture_attr:貸手側原画のカラム値

戻り

真偽

解説

  • 貸手側原画のカラム値の停止日時が設定されているときは、対照表から原画を取得して、さらに素材を取得して、素材に停止を依頼して、結果を返す。
  • 素材が取得できないときは、無視する。

原画インポート

self.import_original_picture pid, original_pictures

パラメータ

  • pid:貸手id
  • original_pictures:貸手側の原画リスト
    • 原画のカラム値(画像を含んだ素材を含む)

戻り

配列

  • インポートに失敗した原画のカラム値を配列で返す。

解説

原画のインポートだけでなく、停止された素材の削除もする。素材の停止は、原画の時刻更新も同時に行うので、原画データ保存よりも前に停止しなければならない。

  • 貸手側の原画リストを繰り返し処理して、各貸手側原画の対照表を作成する。
    • 対照表取得を問い合わせ、対照表を取得する。
      • 貸手idと貸手側原画のidを渡す。
    • 貸手側原画から貸手側の原画idを取得して、借手側原画idとして、貸手側原画から貸手側の原画idを削除する。
    • 対照表に絵師id置換を依頼して、貸手の絵師idから借手の絵師idに変換する。
      • 貸手idと貸手側原画のカラム値を渡す。
    • 素材停止を依頼する。
      • 対照表と貸手側原画のカラム値を渡す。
    • 対照表に原画同期を依頼して、インポートした原画を取得する。
      • 貸手側原画のカラム値から素材データを取り除いたものを渡す。
    • 対照表にカラム値をセットする。
      • 貸手側原画から貸手側の原画idを、借手側原画idを、パラメータの貸手idから貸手idをセットする。
    • 対照表オブジェクトを保存する。
  • 結果を配列で返す。
  • 警告ケース
    • 対照表オブジェクトの保存に失敗したなら、結果に原画のカラム値を追加する。
    • 絵師id置換に失敗したなら、結果に原画のカラム値を追加する。
    • 素材の停止に失敗したなら、結果に原画のカラム値を追加する。
    • 原画オブジェクトの保存に失敗したなら、結果に原画のカラム値を追加する。

実素材インポート

self.import_pictures pid, pictures

パラメータ

  • pid:貸手id
  • pictures:貸手側の実素材リスト
    • 実素材のカラム値(画像データを含む)

戻り

配列

  • インポートに失敗した貸手側実素材のカラム値を配列で返す。

解説

  • 貸手側の実素材リストを繰り返し処理して、各実素材を作成する。
    • 貸手側実原画から貸手側のidを取得して、借手側実素材idとして、貸手側実素材から貸手側のidを削除する。
    • 原画id置換を依頼して、実素材のカラム値の原画idを借手側に変換する。
      • 貸手idと実素材のカラム値を渡す。
    • 絵師id置換を依頼して、実素材のカラム値の絵師idを借手側に変換する。
      • 貸手idと実素材のカラム値を渡す。
    • ライセンスid置換を依頼して、実素材のカラム値のライセンスidを借手側に変換する。
      • 貸手idと実素材のカラム値を渡す。
    • 実素材のカラム値から画像データを取り出して、画像データを取得する。
    • 画像データをデコードする。
    • 画像ライブラリにロードを依頼して、画像ライブラリを取得する。
      • 画像データを渡す。
    • 対照表モデルに貸手側実素材同期を依頼して、実素材を取得する。
      • 実素材のカラム値を渡す。
    • 実素材を保存する。
      • 画像ライブラリを渡す。
  • 結果を配列で返す。
  • 警告ケース
    • 原画id置換に失敗したなら、結果に実素材のカラム値を追加する。
    • 絵師id置換に失敗したなら、結果に実素材のカラム値を追加する。
    • ライセンスid置換に失敗したなら、結果に実素材のカラム値を追加する。
    • 画像ライブラリのロードに失敗したなら、結果に実素材のカラム値を追加する。
    • 実素材の保存に失敗したなら、結果に実素材のカラム値を追加する。

素材インポート

self.import_resource_picture pid, original_picture

パラメータ

  • pid:貸手id
  • original_pictures:貸手側の素材
    • 素材のカラム値(画像を含む)

戻り

nil(エラーのときは、Hash)

  • インポートに失敗した貸手側素材のカラム値を返す。

解説

  • 原画id置換を依頼して、素材のカラム値の原画idを借手側に変換する。
    • 貸手idと素材のカラム値を渡す。
  • 絵師id置換を依頼して、素材のカラム値の絵師idを借手側に変換する。
    • 貸手idと素材のカラム値を渡す。
  • ライセンスid置換を依頼して、素材のカラム値のライセンスidを借手側に変換する。
    • 貸手idと素材のカラム値を渡す。
  • 実素材id置換を依頼して、素材のカラム値の実素材idを借手側に変換する。
    • 貸手idと素材のカラム値を渡す。
  • 素材のカラム値からidを取得して、借手側素材idとして、素材のカラム値からidを削除する。
  • 素材のカラム値から画像データを取り出して、画像データを取得する。
  • 画像ライブラリにロードを依頼して、画像ライブラリを取得する。
    • 画像データを渡す。
  • 対照表モデルに貸手側素材同期を依頼して、素材を取得する。
    • 素材のカラム値を渡す。
  • 素材を保存する。
  • 素材にgif付き画像ファイルの作成・更新を依頼して、画像を保存する。
    • 画像ライブラリを渡す。
  • nilを返す。
  • 警告ケース
    • 原画id置換に失敗したなら、素材のカラム値を返す。
    • 絵師id置換に失敗したなら、素材のカラム値を返す。
    • ライセンスid置換に失敗したなら、素材のカラム値を返す。
    • 画像ライブラリのロードに失敗したなら、素材のカラム値を返す。
    • 素材の保存に失敗したなら、素材のカラム値を返す。
    • gif付き画像ファイルの作成・更新に失敗したなら、素材のカラム値を返す。

素材リストインポート

self.import_resource_pictures pid, original_pictures

パラメータ

  • pid:貸手id
  • original_pictures:貸手側の原画リスト
    • 原画のカラム値(画像を含んだ素材を含む)

戻り

配列

  • インポートに失敗した貸手側素材のカラム値を配列で返す。

解説

  • 貸手側の原画リストを繰り返し処理して、各貸手側原画の素材を作成する。
    • 原画のカラム値から素材のカラム値を取得する。
    • 素材のカラム値を取得できないときは、次の素材に進む。
    • 素材のカラム値をバックアップして、インポート用カラム値を用意する。
    • 素材インポートを依頼して、結果を取得する。
      • インポート用カラム値を渡す。
  • 結果を配列で返す。
  • 警告ケース
    • 素材インポートに失敗したとき、結果に素材のカラム値を追加する。