インポート時には,文字化け対策を兼ねた内容の確認表示を挟むことにした。
まず先頭100件を表示,続けて非 ASCII 文字を含む行を検出して10件ほど表示,という感じになるか。
文字交度の自動判別に単純かつ確実な方法は無いので,人間に確認してもらうのが一番手っ取り早い。どのみち,間違った内容で送信される可能性を考えれば下見機能は必須となる。
6歩では,インポート時の時印項目を編注記法で末尾に追記するとしたが,知番・公開設定とともに「インポート時無効項目」とし,冒頭に編注記法で挿入することにした。以下のようなものになるだろう(先頭は仮の項目番号)。
<!-- インポート時無効項目あり
(1) 知番 : K#XXXX/XXXX
(7) 新規描出日時 : 2023-01-01 01:01:01
(8) 再描出日時 : 2023-01-02 01:01:01
(9) 未公開設定 : 無し(公開)
-->
また,エクスポートの CSV を「両用 CSV」として,インポート時無効項目を省いた「インポート専用 CSV」の項目定義を用意することにした。
インポート機能仕様検討,エクスポート機能の CSV 対応検討で終了。
待欄の閲覧性(迷惑行為対策)や時印指定がある場合の扱いが課題となってインポート機能実装の見通しは立っていなかったが,前者は未公開状態を使うこと,後者は編注記法で末尾に追記すること(実際の時印はインポート時のものになる)を思い付き,一気に実装イメージが固まってきた。どちらの課題も待欄がある KNS 特有のものだった。
輪数上限はエクスポート機能同様10,000輪,サイズ上限は譜類添付機能同様 5MiB の CSV が適当だろう。
これに合わせてエクスポート機能でも早期の CSV 対応を決めた。oln.csv
を ZIP 書庫化することになるだろう。
インポート・エクスポート機能の対応形式は輪郭譜類と CSV で当面は十分そうだ。あれもこれもと考え出すとキリがない。